Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-25 11:01 UTC

zhangsen540445123 / claw-manager

TypeScript · JavaNo license detected★ 0 stars⑂ 0 forkssince Jun 2026View on GitHub ↗

zhangsen540445123/claw-manager holds a health index of 41 out of 100, placing it in the At risk band. It scores highest on AI Readiness (74/100) and lowest on Community & Adoption (26/100). It was last updated 3 days ago.

41
overall / 100
At risk

Software health index

Metrics are grouped into weighted categories on one standardized 1–100 scale. Overall starts as their weighted mean; when public evidence triggers the High-Risk Jurisdiction Policy, the rating is adjusted and receives an At risk ceiling of 49. AI Readiness sits outside the overall score.

41
Excellent85-100Exemplary; meets essentially all checked criteria
Good70-84Healthy; minor gaps
Moderate50-69Acceptable with notable gaps; review recommended
At risk30-49Significant weaknesses; adoption warrants caution
Critical1-29Severe problems (abandoned, single-maintainer, no hygiene)
VitalityCommunity &AdoptionSustainability &GovernanceEngineeringQualitySecurityAI Readiness

Score profile

Each axis is a category. The shape matters more than the average — a healthy subject fills the whole shape, while a spike-and-crater profile means strength in one dimension is masking risk in another.

Ownership

zhangsen540445123Personal account
0 followers63 public repossince Jun 2019

This repository is owned by a personal account. A single-owner project carries more continuity risk than an organization-backed one.

Package ecosystems

RegistryPackageVersionDownloads / moVersionsLast publishTags
npm@claw-manager/miniapp-bridge-plugin2026.7.201,01397 days ago
npm@claw-manager/workspace-file-plugin2026.7.230826 days ago
npm@claw-manager/openclaw-weixin2026.6.3078065 days ago
npm@claw-manager/openviking-openclaw-plugin2026.6.381,945125 days agoopenclawopenvikingplugincontext-enginememoryremote-memoryragsemantic-retrievalcontext-databaselong-term-memoryauto-recallauto-capture
npm@claw-manager/openclaw-api-channel2026.6.545,162285 days ago

Metrics by category

Vitality

Is the project alive — is code being written and are releases shipping?

35At risk · 22% of overall
How it's scored
36/36Push recency — last push 3 days ago
4.2/36Commit cadence — 6/52 weeks with commits
16.5/18Commit volume — 68 commits in the last year
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Inputs used
commits_last_year68
human_commit_share1
days_since_last_push3
active_weeks_last_year6
How it's scored
0/27Ships releases — no releases published
0/36Release recency — no releases
0/27Release cadence — no releases
0/10OpenSSF Scorecard: Signed-Releases — no data
Inputs used
releases_count0
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.

Community & Adoption

Does the project have users, downloads, attention, and a welcoming setup for contributors?

26Critical · 18% of overall
How it's scored
0/60Stars — 0 stars
0/25Forks — 0 forks
0/15Watchers — 0 watchers
Inputs used
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
0/22.5License — no license file detected
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseno
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno
How it's scored
52.9/80Monthly downloads — 9,208 downloads/month across npm
0/20Registry dependents — not reported by this ecosystem
Inputs used
packages@claw-manager/miniapp-bridge-plugin, @claw-manager/workspace-file-plugin, @claw-manager/openclaw-weixin, @claw-manager/openviking-openclaw-plugin, @claw-manager/openclaw-api-channel
dependents
ecosystemsnpm
total_downloads
monthly_downloads9,208
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?

45At risk · 24% of overall
How it's scored
0/46.8Issue resolution — no issues or no data
0/38.3PR acceptance — no decided pull requests or no data
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Inputs used
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
0/25Owner reach — 0 followers of zhangsen540445123
25/25Track record — 63 public repos, account ~7 yr old
Inputs used
followers0
owner_typeUser
is_verified
owner_loginzhangsen540445123
public_repos63
account_age_days2,604
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 5 package(s) on npm
35/35Publish recency — latest publish 5 days ago
20/20Version history — 28 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packages@claw-manager/miniapp-bridge-plugin, @claw-manager/workspace-file-plugin, @claw-manager/openclaw-weixin, @claw-manager/openviking-openclaw-plugin, @claw-manager/openclaw-api-channel
ecosystemsnpm
any_deprecatedno
min_days_since_publish5

Engineering Quality

Are baseline engineering and documentation practices in place?

58Moderate · 20% of overall
How it's scored
24/24CI workflows — 2 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — no data
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configno
has_precommit_configno
Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.

Documentation

55Moderate
How it's scored
30/30README
25/25Documentation directory
0/15Documentation / homepage site
0/10Repository description
0/10Topics
0/10Wiki
Inputs used
topics
has_wikino
homepage
has_readmeyes
has_docs_diryes
has_descriptionno

Security

Are visible security and supply-chain practices strong, without unresolved high-risk jurisdiction exposure?

39At risk · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
0/2.5CI-Tests — no data
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5License — license file not detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
5/5Packaging — packaging workflow detected
0.5/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — no data
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 65 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate2.4
Excluded from scoring (no data or not applicable): ci_tests, signed_releases. Remaining weights renormalized.
How it's scored
35/35Direct dependencies free of known advisories — no direct dependency carries a known advisory
25/25Indirect dependencies free of known advisories — no indirect dependency carries a known advisory
0/40No advisories left outstanding — no advisory carries a publication date
Inputs used
sourceosv
advisories0
affected_packages0
assessed_packages1
unassessed_packages0
affected_by_severitynone
direct_affected_packages0
Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 runtime dependency closure — what installing the published package pulls in — 1 packages. Reachability is not analyzed.

AI Readiness

How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score.

74Good · 0% of overall
How it's scored
45/45Agent instructions — AGENTS.md
0/15Machine-readable docs (llms.txt)
39.2/40Legible commit history — 50 of 68 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.735
agent_instruction_filesAGENTS.md
agent_instruction_max_bytes4,414
How it's scored
12.6/18One-command bootstrap — backend/pom.xml (toolchain convention, no task runner)
22/22Automated tests
0/11Lint / format config
11/11Static type checking — frontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json
10/10Reproducible environment — Dockerfile, lockfile
0/10Demonstrated agent practice — no agent-authored commits among the last 68
0/8Automated maintenance — no automated dependency updates observed
1/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 1
Inputs used
has_nixno
has_testsyes
lockfilespackage-lock.json
has_dockerfileyes
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configsfrontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json
agent_commit_share0
toolchain_manifestsbackend/pom.xml
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — TypeScript (statically typed)
54.8/55Manageable file sizes — 2/481 source files over 60KB
Inputs used
primary_languageTypeScript
largest_source_bytes105,528
source_files_sampled481
oversized_source_files2

Key facts

0GitHub stars
-contributors
68commits, last 12 months
3days since last push
0releases
-bus factor
0open issues
Maven, npmpackage ecosystems

Data collection warnings

  • Contributor list unavailable
  • Could not fetch maven package 'com.clawbotforall:claw-manager-api' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

More detail

OpenSSF Scorecard 2.4 / 10
2.4aggregate

Independent, tool-agnostic security assessment from the open-source OpenSSF Scorecard. Each check rewards a security practice, not a specific vendor's tool. Checks Scorecard could not determine are marked n/a and excluded from the security score (never counted as zero).Scorecard v5.5.0 · 2026-07-25 11:01 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
n/aCI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
10Packagingpackaging workflow detected
1Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 1
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
n/aSigned-Releasesno releases found
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities65 existing vulnerabilities detected
Direct dependencies 30
RegistryPackageVersion constraintManifest
Mavenorg.springframework.boot:spring-boot-starter-actuatorbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-data-redisbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-securitybackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-validationbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-webbackend/pom.xml
Mavenorg.springframework.boot:spring-boot-starter-websocketbackend/pom.xml
Mavenorg.mybatis.spring.boot:mybatis-spring-boot-starter${mybatis-spring-boot.version}backend/pom.xml
Mavencom.mysql:mysql-connector-jbackend/pom.xml
Mavenorg.flywaydb:flyway-corebackend/pom.xml
Mavenorg.flywaydb:flyway-mysqlbackend/pom.xml
Mavencom.github.docker-java:docker-java${docker-java.version}backend/pom.xml
Mavencom.github.docker-java:docker-java-core${docker-java.version}backend/pom.xml
Mavencom.github.docker-java:docker-java-transport-httpclient5${docker-java.version}backend/pom.xml
Mavenorg.springdoc:springdoc-openapi-starter-webmvc-ui${springdoc.version}backend/pom.xml
Mavenorg.bouncycastle:bcprov-jdk18on${bouncycastle.version}backend/pom.xml
Mavenorg.eclipse.jgit:org.eclipse.jgit${jgit.version}backend/pom.xml
npm@stomp/stompjs^7.1.1frontend/package.json
npm@tanstack/vue-query^5.80.7frontend/package.json
npmelement-plus^2.9.11frontend/package.json
npmlucide-vue-next^0.468.0frontend/package.json
npmpinia^2.3.0frontend/package.json
npmqrcode^1.5.4frontend/package.json
npmvue^3.5.13frontend/package.json
npmvue-router^4.5.0frontend/package.json
npm@sinclair/typebox^0.34.33plugins/miniapp-bridge-plugin/package.json
npmqrcode-terminal0.12.0plugins/openclaw-weixin-plugin/package.json
npmzod^4.3.6plugins/openclaw-weixin-plugin/package.json
npm@sinclair/typebox0.34.48plugins/openviking-openclaw-plugin/package.json
npmfflate^0.8.2plugins/openviking-openclaw-plugin/package.json
npm@sinclair/typebox^0.34.33plugins/workspace-file-plugin/package.json
All dependencies not collected

The resolved dependency set could not be collected for this report: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Dependency advisories 0

Installing npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 pulls in 1 packages, direct and transitive: 0 carry known advisories, of which 0 are direct dependencies.

No known advisories affect the assessed dependencies.

An advisory means the version recorded in the dependency graph falls inside an advisory’s affected range. Reachability is not analysed, and the graph includes development and test pins — a finding may concern tooling rather than shipped software.

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 3387,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "CSS": 19977,
        "Vue": 194601,
        "HTML": 370,
        "Java": 1266490,
        "Shell": 39303,
        "Python": 285330,
        "Batchfile": 9070,
        "Dockerfile": 1741,
        "JavaScript": 133809,
        "PowerShell": 18053,
        "TypeScript": 1671932
      },
      "pushed_at": "2026-07-21T15:32:25Z",
      "created_at": "2026-06-18T17:01:30Z",
      "owner_type": "User",
      "updated_at": "2026-07-21T15:33:31Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": null,
      "primary_language": "TypeScript",
      "significant_languages": [
        "TypeScript",
        "Java"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "User",
      "login": "zhangsen540445123",
      "company": null,
      "location": null,
      "followers": 0,
      "avatar_url": "https://avatars.githubusercontent.com/u/51502818?v=4",
      "created_at": "2019-06-08T05:59:59Z",
      "is_verified": null,
      "public_repos": 63,
      "account_age_days": 2604
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [],
      "recent_commits": [
        {
          "oid": "7e3ab2709cfd9ab15a0f0330f459a0f65496dabf",
          "body": null,
          "is_bot": false,
          "headline": "fix: share synced openclaw skills across agents",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-21T15:29:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c111b9e680d69114c4bb04beb584196af47ada6",
          "body": "- 使用模块级 Runtime 管理器获取实时 OpenClaw 配置\n- 对齐微信插件的 config-runtime 实现\n- 移除 globalThis Symbol 配置共享方案\n- 保留严格的 Agent 与 API binding 校验\n- 增加动态配置路由回归测试\n- 升级 API Channel 至 2026.6.54",
          "is_bot": false,
          "headline": "fix: 修复 API Channel 动态绑定后的路由配置读取",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T13:49:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "48a3b6c60ade95bcec56fd2d31386c1dff69dd99",
          "body": "- 使用模块级配置 Runtime 管理器读取实时 OpenClaw 配置\n- 对齐微信插件的 config-runtime setter/getter 实现\n- 移除不可靠的 globalThis Symbol 共享方式\n- 保留 API binding 严格校验和默认 Agent 禁用策略\n- 增加动态绑定后路由回归测试\n- 同步插件清单版本并升级至 2026.6.54",
          "is_bot": false,
          "headline": "fix: 修复 API Channel 动态绑定后仍误报未就绪",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T13:35:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "33c2c25498f2b93160af674370e9ec421d171802",
          "body": "- 使用 Gateway Runtime 实时配置校验 API Agent binding\n- 避免队列 Monitor 使用启动时配置快照\n- 保留 API_BINDING_NOT_READY 严格校验\n- 增加动态配置更新后的路由回归测试\n- 升级 API Channel 至 2026.6.53",
          "is_bot": false,
          "headline": "fix: 修复 API Channel 动态绑定后聊天路由失败",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T13:23:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c5ee734581298f15275278d85eb4b01f5f9ed1c6",
          "body": "- 扫码后同步创建用户 Agent、微信 Binding 和 API Binding\n- 增加 Agent 初始化失败状态及手动重试能力\n- 禁止聊天阶段补写配置及回退到默认 Agent\n- 通过 Gateway RPC 持久化并校验 Agent 与 Binding\n- 为 API 和微信 Turn 显式传播 OpenViking 用户身份\n- 使用 channel 与 requestId/runId 严格隔离并发 Turn\n- 禁止缺少 Turn 上下文时猜测渠道或降级读取身份\n- 避免显式 memory_store 与 afterTurn 重复保存\n- 完善 OpenViking 日志及身份信息脱敏\n- 将小程序 AI 输入上限调整为 10000 字符\n- 升级 API Channel、微信和 OpenViking 插件版本",
          "is_bot": false,
          "headline": "feat: 完善统一用户 Agent 与 OpenViking 严格身份链路",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T12:27:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0fecb410f8a22221611e93b6a9e9fd07d3dc03a4",
          "body": "- 新增持久化用户 Agent 与 OpenViking 身份映射\n- 支持小程序和微信共享 Agent、工作区与记忆\n- 扫码完成后自动创建用户 Agent\n- 升级 API Channel 和微信插件身份路由\n- 修复微信消息重试、身份解析超时和异步任务饱和问题\n- 合并 V1-V6 为全新环境数据库基线",
          "is_bot": false,
          "headline": "feat: 实现跨渠道统一用户 Agent 与全新数据库基线",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-19T05:35:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d04fa55641d0b78224a2e81c8a3853a75db5127",
          "body": "模型未提供 expectedSha256 时可能传入空字符串,工作区文件插件应将其视为未启用乐观锁,避免首次写入被错误拒绝。",
          "is_bot": false,
          "headline": "fix: 兼容工作区文件工具空哈希参数",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T19:17:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "057775bb67897e41d0eb399e406620d816fabe1b",
          "body": "新增微信用户动态Agent和独立工作区,允许通过workspace_file安全管理工作区文件;接入后台插件管理的检测、安装、升级、重装、卸载及批量操作,并增加工作区预设配置。",
          "is_bot": false,
          "headline": "feat: 支持微信用户独立Agent与开放工作区文件插件",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T18:13:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49bcc425ec37c5fbabdb97175962a2c013aa45b0",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增 OpenClaw 工作区文件工具插件",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T17:25:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a844e4c1beb417c545af7089c6252bdb155b6f5e",
          "body": null,
          "is_bot": false,
          "headline": "feat: 支持微信用户动态 Agent 与独立工作区",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T17:25:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "30b152d7dc94bb206eb73a0b545419b6d2b33c5e",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复API链路超时、Artifact跳转与生图诊断",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T12:16:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad511b595c51388edf15dfef8d0a9676300cad41",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复 SSE 控制器构造器注入导致的 CI 启动失败",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T05:16:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "17ce63b94e44eda05e5515d7927d2edb044fef4c",
          "body": null,
          "is_bot": false,
          "headline": "修复api",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-18T05:04:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2b5f0264b23cc088cd8e9a43eb7386c0cd22d9e3",
          "body": "…范feat: 调整管理后台导航分组与预设配置命名",
          "is_bot": false,
          "headline": "fix: 修复链路状态诊断与图片 Artifact 安全发布fix: 统一多模态 Skill 的 generatedImageId 发布规…",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-17T17:46:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8e839940e1b37e22da568400ffae734ee79441b",
          "body": null,
          "is_bot": false,
          "headline": "fix package",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T23:46:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "be322e167b305799831c169a37dd80d9103023e4",
          "body": null,
          "is_bot": false,
          "headline": "ui",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T23:31:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e570fc3f610f7c49c5f26457f86acb5a01b5f1c3",
          "body": null,
          "is_bot": false,
          "headline": "修复UI",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T14:52:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "101c8482c08d30afaa520f2a5d05aa99b9620b51",
          "body": "- 新增统一 cmTraceId 链路事件记录与后台追踪页面\n- 接入微信、API Channel、Miniapp Bridge 工具生命周期追踪\n- 增加图片生成、Artifact 上传和微信媒体发送阶段诊断\n- 补充 Time Manager Open API 鉴权、图片和 HTML Trace 日志\n- 发布新版微信、API Channel 与 Miniapp Bridge 插件",
          "is_bot": false,
          "headline": "Media failedfeat: 新增微信生图全链路追踪与自动诊断",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-16T13:47:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "24f47d824f33e6628f625e794a6d27b00481e719",
          "body": null,
          "is_bot": false,
          "headline": "fix 生图",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-15T16:12:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "28f2a89fb2a99b451c5e14d8339b85e221635e6b",
          "body": null,
          "is_bot": false,
          "headline": "feat: 实现小程序多模态 Artifact 发布与图片生成",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-15T15:27:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4db12328ded1e7bdfb6ba450a6e7ddf833df2905",
          "body": null,
          "is_bot": false,
          "headline": "fix: 对齐小程序 Bridge 插件版本管理与升级交互",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T15:31:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6db88570ccea171d435e8cec96f3c7bc02e992b1",
          "body": null,
          "is_bot": false,
          "headline": "fix: 修复目标创建工具Schema嵌套导致模型无法调用的问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T14:46:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fd513f76581cc7b28b207911cac26ae138572e8b",
          "body": null,
          "is_bot": false,
          "headline": "feat: 将小程序 Bridge 改造为五域强类型工具并完善目标语义推断",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T11:31:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3062465b853222d1517a3ca265ad79a2170f4d89",
          "body": null,
          "is_bot": false,
          "headline": "更新测试域名",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T07:50:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18ed9db62670d83283d6a55d4ed276ba242ef2fa",
          "body": null,
          "is_bot": false,
          "headline": "更新.env.example",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T02:38:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "768017499be51250de6b6cb43b54bf6a61bfc7e3",
          "body": null,
          "is_bot": false,
          "headline": "修复修复yaml",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T02:35:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63064403c5d11c02f604098cae13d792cb5ecd2f",
          "body": null,
          "is_bot": false,
          "headline": "feat: 新增小程序Bridge插件及用户身份代理调用",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-12T02:28:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc53fccbf0078b387c989cac1922d69b0082985f",
          "body": null,
          "is_bot": false,
          "headline": "修复CI",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T17:40:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "482094d57b1cd4abed4240299a3fa34b033a1b14",
          "body": null,
          "is_bot": false,
          "headline": "脚本修复",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T17:30:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "353d3d0baaa6b08e0f79303974d1108cd5aa1a0c",
          "body": "- 新增 Skill 仓库、Skill 定义和实例同步记录表\n- 支持通过 JGit 拉取 GitHub 仓库及 HTTPS Token 私库\n- 扫描包含 SKILL.md 的目录并支持后台修改 Skill 名称\n- 支持勾选多个 Skill 同步到多个 OpenClaw 实例\n- 同名 Skill 同步时覆盖目标 workspace/skills 目录\n- 新增 Skill 管理后台页面和相关 API/store/types\n- 补充扫描、拉取、同步和名称保留相关测试",
          "is_bot": false,
          "headline": "新增后台 Skill 管理与实例同步能力",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T17:15:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d4b41c05fe866f4159f4b661828d62796d0527d",
          "body": null,
          "is_bot": false,
          "headline": "前端改造",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T10:46:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "550c66c94dc78b5c66323659dcef09884298c261",
          "body": "- 微信扫码链接新增 scanned、initializing 中间状态,便于小程序轮询展示进度\n- 保持小程序 user key 生成时机不变,仅 connected 后允许生成\n- 后台微信绑定状态展示补充新状态文案\n- 更新小程序接入与排障文档,明确 connected 后再生成 key\n- 增加测试覆盖扫码中间状态与 initializing 阶段禁止生成 key",
          "is_bot": false,
          "headline": "优化微信扫码绑定中间状态展示",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-05T09:54:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fa9895460551e19b1324b320ed094fff63b2b3fa",
          "body": "- 将后台 API 接入调整为小程序 AK/SK 管理\n- 移除旧全局 API key 和旧纯 API openid 路由能力\n- 支持小程序 openid 扫码绑定微信后复用 wx_<hash> OpenViking 记忆身份\n- 为外部小程序接口和聊天 SSE 增加 X-CM-Request-Id 与安全联调日志\n- 用户中心补充小程序/API 绑定字段,并支持手机号为空和后补编辑\n- 更新小程序接入文档,补充 Java 21 + Spring Boot + fastjson2 接入 Demo",
          "is_bot": false,
          "headline": "feat: 完成小程序统一身份接入与共享记忆联调",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T14:41:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63ef191da3d406da2bf791a04cc1fa7c590f4f25",
          "body": "- 新增小程序接入文档,说明 openid、微信扫码绑定、cm_user key 与 API 聊天流程\n- 补充 HMAC 鉴权规则、接口定义、二次扫码和双向记忆验证流程\n- 增加 miniapp 相关数据库表和字段说明\n- 更新 README、架构、OpenViking、插件和排障文档中的当前事实\n- 明确 API Channel 使用后端传入的 wx_<hash>,不再自行派生 API 身份",
          "is_bot": false,
          "headline": "docs: 补充小程序接入与共享记忆说明",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T10:53:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4e05288c920a2b5e882b02e2570a1fe35ab0a4c",
          "body": "- 移除 OpenViking 插件从 raw senderId/requesterSenderId 派生 wx_/api_ 身份的逻辑\n- 改为只接受显式 openVikingUserId 或 sender-handoff 映射作为用户身份来源\n- 收紧工具路径身份解析,避免 raw sender 被用于租户 header 或 role_id\n- 调整 sender-handoff 写入,要求显式 openVikingUserId 和 senderHash\n- 修复“请记住”等短句记忆意图强制 commit 时仍保留最近消息导致不归档的问题\n- 记忆意图强制 commit 使用 keepRecentCount=0,确保触发 OpenViking 异步抽取\n- 更新相关单测,覆盖身份不派生、handoff 显式映射、短句记忆抽取等行为\n- 发布 @claw-manager/openviking-openclaw-plugin@2026.6.37",
          "is_bot": false,
          "headline": "修复 OpenViking 身份映射与短句记忆抽取",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T10:24:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0f22597dea97cb8257e4ab59f05413bc3c631840",
          "body": "- 为 API Channel 生成带 queueMonitor 标记的 channel 配置,确保 OpenClaw Gateway 启动时识别并加载 claw-manager-api\n- API 插件注册流程对齐微信插件,只注册 channel,不在 register 阶段自动启动队列 monitor\n- 避免 Gateway channel 生命周期与插件 register 双路径重复启动 monitor\n- 增加后端配置生成测试和 API 插件入口测试\n- 发布 @claw-manager/openclaw-api-channel@2026.6.45",
          "is_bot": false,
          "headline": "修复 API Channel Gateway 启动与队列监控注册",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-04T06:57:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8710c59b9134987423114c8a7ef07c3035c1e92",
          "body": null,
          "is_bot": false,
          "headline": "模型预设需指定maxTokens和contentWindow",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-07-03T14:27:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ea242ebd4d3f1c542e38e448399fa5e0f9816eb4",
          "body": "- 为 API 用户首次路由增加数据库事务锁,避免并发绑定时集中落到同一实例\n- 调整 API SSE 队列等待逻辑,支持首包、空闲和总时长分级超时\n- 优化 API Channel 插件的 assistant delta 归属判断,避免并发串流\n- 移除 deliver 尾块流式兜底,避免固定字符响应重复输出\n- 串行化动态 agent 绑定配置写入,防止并发创建 agent 时配置覆盖\n- 补充 API 队列、路由分配和插件并发流式相关测试\n- 发布 @claw-manager/openclaw-api-channel@2026.6.44",
          "is_bot": false,
          "headline": "修复 API 通道并发路由与流式输出稳定性",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-30T17:03:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a397044aaf16bb53f82e86a5aef80f70a0eed19f",
          "body": null,
          "is_bot": false,
          "headline": "修复并发分配api问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-28T09:12:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "93aa0414e2fc9acd4e7d145aefddf381a96b08e7",
          "body": null,
          "is_bot": false,
          "headline": "api渠道派生agent,流式响应",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-28T08:24:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d6235431c9c0bd903165aa27eb76943028f1032b",
          "body": null,
          "is_bot": false,
          "headline": "召回超时时间修改为30s",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-27T18:14:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "288bba12aea15aba8b3383828448595b3644a6d5",
          "body": "- 新增外部 API 接入配置、openid 路由绑定和 API Channel 插件管理\n- 新增 @claw-manager/openclaw-api-channel 插件,支持按 openid 派发到 OpenClaw\n- 修复 OpenViking afterTurn 消息捕获,支持从 sessionFile 兜底写入本轮消息\n- 增加长期记忆意图强制异步 commit,短句“请记住/我叫/我喜欢”等也会触发抽取\n- 修复 API senderId=api:<hash> 被误派生为 wx_<hash> 的问题,正确映射为 api_<hash>\n- 更新 OpenViking 插件默认版\n[…]\n版本到 2026.6.32\n- 补充 API 用户隔离、afterTurn 写入、插件版本和路由相关测试\n\n验证:\n- OpenViking 插件目标测试 91 个通过\n- API Channel 插件测试 8 个通过\n- 后端 mvn test 145 个通过\n- 前端 npm run build 通过\n- 本地 API 端到端验证 api_f9db... 已生成 profile.md 并可召回",
          "is_bot": false,
          "headline": "feat: 新增 API 通道并修复 OpenViking API 用户记忆写入",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-27T17:49:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "58480638b0cd3c467d9c8d294c51efa4aa295702",
          "body": "- 将自动召回前置健康检查改为可配置超时、健康缓存和短暂失败降级\n- 新增召回健康检查配置项与单元测试\n- 后台 OpenViking 插件版本查询支持强制刷新 npm registry\n- 更新 OpenViking 插件默认版本至 2026.6.34\n- 发布 @claw-manager/openviking-openclaw-plugin@2026.6.34",
          "is_bot": false,
          "headline": "优化 OpenViking 自动召回健康检查与后台插件升级",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-26T16:57:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c4c4b4585cd681b6a33d45d6eee17df48bbf51e9",
          "body": "- 精简根目录 README 为项目入口和文档导航\n- 新增 docs 文档中心及架构、部署、开发、OpenViking、插件、CI/CD、排障专题文档\n- 将历史迁移和插件二开记录归档到 docs/history\n- 更新 AGENTS 中的历史文档引用",
          "is_bot": false,
          "headline": "重整项目文档体系",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-25T17:11:29Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1fc3d2a8a85632c07c7ab66b2cc48981ce5c74a0",
          "body": "- 在身份类问题中优先读取当前用户 profile.md,避免低语义分数导致“我是谁”无法召回\n- 调整新 OV session 不存在时的 assemble 流程,确保仍可注入用户级记忆\n- 增加召回候选被阈值过滤的诊断日志\n- 将默认 OpenViking 插件版本升级到 2026.6.30\n- 补充 context engine assemble 相关单元测试",
          "is_bot": false,
          "headline": "修复 OpenViking 新会话身份记忆召回",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-25T16:16:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1c8c6c16ee550f487974337975a7ee6d23e82de",
          "body": "- 将后台 OpenViking 导航调整为 OpenViking预设,并优化菜单顺序\n- 新增 OpenViking 身份盐值配置,替代 identity secret 展示文案\n- 默认开启 Trusted Mode,并在修改盐值时提示记忆映射风险\n- 用户中心展示微信用户对应的 OpenViking 用户ID\n- 增加微信插件与 OpenViking 插件同实例串行操作保护\n- 调整 GitHub Actions 镜像发布触发规则,按 api/web/runner 变更分别构建\n- 补充 OpenViking 设置、身份派生、插件并发保护相关测试",
          "is_bot": false,
          "headline": "feat: 完善 OpenViking 预设与插件串行管理",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-25T14:32:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cd86a21583e231e723844ae7aa349e94ffd0f018",
          "body": "- 二开微信插件,透传微信 sender 身份给 OpenClaw/OpenViking\n- 二开 OpenViking 插件,按 sender 派生稳定 wx_ 用户身份\n- 新增 OpenViking 后台配置、root key 代管与 user key 托管\n- 新增 broker 接口,首次自动注册用户并缓存 user key\n- runner 注入 OpenViking broker、account、identity secret 等配置\n- 后台插件管理支持安装 Claw Manager 版微信与 OpenViking 插件\n- 合并 OpenViking 配置和 user key 表到 V1 初始化脚本\n- 将 OpenViking 插件默认版本更新为 2026.6.28\n- 验证 OpenViking 0.4.5 下用户记忆写入、commit 与召回链路",
          "is_bot": false,
          "headline": "feat: 接入微信用户级 OpenViking 记忆隔离",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-24T18:19:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af90119e3e124cf8d61e46e29c09b97996a9f9bf",
          "body": null,
          "is_bot": false,
          "headline": "v1.0.3",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T18:32:57Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c3e677040f6b28e36a6302a2a3ff972f1d510b2e",
          "body": null,
          "is_bot": false,
          "headline": "2026.6.8 openclaw",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T18:29:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4b34429a6159c5612b823885d0a77a7407580be",
          "body": "- 取消 claw-manager.version 变更触发 Runner 镜像构建\n- 保留 Runner Dockerfile 和 entrypoint 变更触发构建\n- 版本文件变更仍用于触发 API/Web 镜像发布",
          "is_bot": false,
          "headline": "ci: 调整 Runner 镜像构建触发条件",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T18:06:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "775031a830a94178a3cd61121de7d606e6574d08",
          "body": null,
          "is_bot": false,
          "headline": "v1.0.2",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:54:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8364485c504df27e94716ec2f9b79f696ac11e09",
          "body": "- 新增用户中心页面,集中展示微信用户和通道状态\n- 支持按用户维度筛选、备注维护、解绑和批量重启微信通道\n- 将微信通道重启能力从实例管理迁移到用户中心\n- 实例管理页移除微信账号展开区,保留实例与 Gateway 运维操作\n- 左侧导航新增用户中心入口",
          "is_bot": false,
          "headline": "feat: 新增微信用户中心并精简实例管理页",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:52:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4db4bd76db9f4919409fa63f060433cca6110318",
          "body": "- 使用 claw-manager.png 统一标签页、后台侧边栏和登录页 Logo\n- 更新页面标题为 Claw Manager,并移除 OpenClaw Console 文案\n- claw-manager.version 变更时同步触发 API、Web、Runner 镜像发布\n- CI 增加 compose.local 配置校验\n- 审计 Redis 当前仅用于依赖、编排和集成测试环境",
          "is_bot": false,
          "headline": "chore: 统一品牌图标并完善镜像发布流程",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:38:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9adcde35f9ce6c6e5b5e5bfc91f30171c2b5d245",
          "body": "- 支持微信插件指定版本安装、升级、重新安装和官方版本列表\n- 将批量检测改为本地快路径,避免同步请求 npm registry\n- 增加官方版本缓存、失败兜底和检测耗时日志\n- 优化插件版本目录读取与批量实例查询\n- 前端插件管理页异步刷新版本并合并可升级状态\n- 配置服务日志滚动并优化日志尾部读取",
          "is_bot": false,
          "headline": "feat: 优化微信插件版本管理与检测性能",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T17:19:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "623f7a93957a705b89f9a1a3a21fa6d02fe007c7",
          "body": "- 保持 wechat_user_id 作为微信账号唯一身份判断依据\n- 已绑定微信扫描新用户二维码时拒绝重复绑定\n- 将本次扫码产生的新凭证迁回原绑定账号\n- 清理旧 sync/context 状态并重启原微信通道\n- 避免拒绝重复绑定后原账号无法继续连接 OpenClaw\n- 补充重复扫码凭证迁移相关回归测试",
          "is_bot": false,
          "headline": "修复重复微信扫码导致原通道失效问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T16:26:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "39ca9a767ba3dbf78f79ba72463131c5d54c024d",
          "body": "- 改为从微信插件扫码登录结果获取实际 accountId 和 wechat_user_id\n- 移除扫描 accounts.json 兜底接纳逻辑,缺少 wechat_user_id 时拒绝绑定\n- 使用 wechat_user_id 作为微信用户全局唯一判定依据\n- 新增微信账号通道状态关系,支持实例下多微信账号状态展示\n- 优化新老用户扫码绑定、重复微信拒绝和原通道激活逻辑\n- 补充微信通道重启、二维码过期展示及相关回归测试",
          "is_bot": false,
          "headline": "修复微信多账号绑定与扫码登录归属识别",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T15:46:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "936ea700f95105256ee6d2c3d319e9b03d42fce5",
          "body": "- 调整后台导航顺序,将实例管理放到扫码链接上方\n- 从扫码链接页移除微信插件安装入口\n- 新增插件管理页,支持多实例检测、安装、卸载、升级\n- 新增微信插件单实例和批量管理接口\n- 插件任务按实例去重,并通过 WebSocket 推送进度\n- 卸载插件时保留微信账号状态和绑定历史",
          "is_bot": false,
          "headline": "新增微信插件独立管理页与批量操作",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T06:42:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74ff17fcf7b8366044fa1263f71fc91c80b1a6cc",
          "body": "- 改为在 runner 容器内复用 OpenClaw backend callGateway 调用 channels.start\n- 扫码完成后读取微信插件真实落盘 accountId,再热启动对应微信账号\n- 避免使用外部 Gateway 设备身份触发 operator.admin 权限问题\n- 修正集成测试中扫码命令完成时序,匹配真实等待扫码流程",
          "is_bot": false,
          "headline": "修复微信扫码后通道热加载延迟问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-20T03:02:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e05fb51184b6ea49f6b492b1a0290d7d64d740b8",
          "body": null,
          "is_bot": false,
          "headline": "feat: 拆分 Admin 后台路由,优化 Control UI 域名逻辑并新增扫码链接历史与失效管理",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-19T14:00:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1ace0cdce26eb5e07df3e614cf902760c05a2559",
          "body": "- 实例操作列改为图标按钮并增加悬浮提示\n- 实例列表新增容器名称列\n- 启用后端文件日志并支持后台单独刷新服务日志\n- 微信扫码链接模块前移并拆分新/老用户出码区域\n- 新增老用户手机号片段搜索接口与前端远程搜索\n- 补充微信绑定手机号搜索相关测试",
          "is_bot": false,
          "headline": "优化后台实例管理与微信扫码链接体验",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-19T10:09:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6098610c5744df004c9e42abd24c95c9e14d2a3d",
          "body": "- 实例操作列改为图标按钮并增加悬浮提示\n- 实例列表新增容器名称列\n- 启用后端文件日志并支持后台单独刷新服务日志\n- 微信扫码链接模块前移并拆分新/老用户出码区域\n- 新增老用户手机号片段搜索接口与前端远程搜索\n- 补充微信绑定手机号搜索相关测试",
          "is_bot": false,
          "headline": "优化后台实例管理与微信扫码链接体验",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-19T10:08:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c0e2735e2ca089c43d27e54fbe877962a0736bb8",
          "body": "- 为 OpenClaw 实例创建、启动、停止和 Gateway 就绪流程补充关键日志\n- 为 runner 镜像检查、拉取和刷新流程补充状态日志\n- 为微信扫码绑定、扫码链接生成、绑定完成和失败场景补充日志\n- 为模型预设更新同步和实例模型配置变更补充日志\n- 避免记录密钥、手机号、二维码内容等敏感信息",
          "is_bot": false,
          "headline": "补充后端核心业务日志",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T19:14:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4945e4e49399d418a49f3e99970e9700ce80cb96",
          "body": "- 移除默认 compose.yaml 中 api/web 的本地 build 配置\n- 新增 compose.local.yaml 用于本地源码构建\n- 更新 README 中部署与本地构建命令说明\n- 避免 docker compose up -d 在镜像拉取失败后自动构建",
          "is_bot": false,
          "headline": "调整 Compose 默认启动为仅拉取镜像",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:44:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e2783f425ba676b2a1ecc7d780f13024dcd6a6b3",
          "body": "- 删除全部微信账号时返回是否实际存在已绑定账号\n- 仅在确实删除账号后才触发 Gateway 重启\n- 避免空解绑引发异步状态回写,导致扫码链接创建返回 409\n- 补充空解绑和有账号解绑的返回值测试",
          "is_bot": false,
          "headline": "fix: 修复后端集成测试中空解绑触发重启的问题",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:35:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0c97f2283f8401fdeb173c03a595e1f680be6bfe",
          "body": null,
          "is_bot": false,
          "headline": "ci: 修复前后端镜像构建的 Dockerfile 路径",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:19:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4375c169e4fdd2e0f46bbc5a0d342829b1545ac2",
          "body": null,
          "is_bot": false,
          "headline": "ci: 修复前后端镜像构建的 Dockerfile 路径",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:13:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "79fde60ab331dffc8929f09ba31faa4c600da28e",
          "body": null,
          "is_bot": false,
          "headline": "ci: 修复前后端镜像构建的 Dockerfile 路径",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T18:11:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9672c42943f335277c236e75b9b275332e6b718f",
          "body": "- 合并 Flyway 初始化 SQL,仅保留 V1 基线脚本\n- 更新项目、Compose、镜像命名为 claw-manager\n- 配置 GitHub Actions 发布 API、Web 和 Runner 镜像\n- 排除本地脚本、构建产物和敏感配置",
          "is_bot": false,
          "headline": "chore: 初始化 claw-manager 仓库并接入镜像发布",
          "author_name": "13737732278@163.com",
          "author_login": null,
          "committed_at": "2026-06-18T17:57:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 0,
      "commits_last_year": 68,
      "latest_release_at": null,
      "latest_release_tag": null,
      "releases_from_tags": false,
      "days_since_last_push": 3,
      "active_weeks_last_year": 6,
      "days_since_latest_release": null,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": 14,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "@claw-manager/miniapp-bridge-plugin",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/miniapp-bridge-plugin",
          "is_deprecated": false,
          "latest_version": "2026.7.20",
          "repository_url": null,
          "versions_count": 9,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 1013,
          "first_published_at": "2026-07-11T18:21:44.994000Z",
          "latest_published_at": "2026-07-17T17:34:35.371000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        },
        {
          "name": "@claw-manager/workspace-file-plugin",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": null,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/workspace-file-plugin",
          "is_deprecated": false,
          "latest_version": "2026.7.2",
          "repository_url": null,
          "versions_count": 2,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 308,
          "first_published_at": "2026-07-18T18:11:17.882000Z",
          "latest_published_at": "2026-07-18T19:16:50.749000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 6
        },
        {
          "name": "@claw-manager/openclaw-weixin",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/openclaw-weixin",
          "is_deprecated": false,
          "latest_version": "2026.6.30",
          "repository_url": "https://github.com/zhangsen540445123/claw-manager",
          "versions_count": 6,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 780,
          "first_published_at": "2026-06-24T15:59:14.251000Z",
          "latest_published_at": "2026-07-19T12:23:00.406000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@claw-manager/openviking-openclaw-plugin",
          "exists": true,
          "license": "MIT",
          "keywords": [
            "openclaw",
            "openviking",
            "plugin",
            "context-engine",
            "memory",
            "remote-memory",
            "RAG",
            "semantic-retrieval",
            "context-database",
            "long-term-memory",
            "auto-recall",
            "auto-capture"
          ],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/openviking-openclaw-plugin",
          "is_deprecated": false,
          "latest_version": "2026.6.38",
          "repository_url": "https://github.com/zhangsen540445123/claw-manager",
          "versions_count": 12,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 1945,
          "first_published_at": "2026-06-23T16:19:41.398000Z",
          "latest_published_at": "2026-07-19T12:23:25.756000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        },
        {
          "name": "@claw-manager/openclaw-api-channel",
          "exists": true,
          "license": "MIT",
          "keywords": [],
          "ecosystem": "npm",
          "matches_repo": true,
          "registry_url": "https://www.npmjs.com/package/@claw-manager/openclaw-api-channel",
          "is_deprecated": false,
          "latest_version": "2026.6.54",
          "repository_url": "https://github.com/zhangsen540445123/claw-manager",
          "versions_count": 28,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": 1,
          "monthly_downloads": 5162,
          "first_published_at": "2026-06-27T11:21:45.211000Z",
          "latest_published_at": "2026-07-19T13:34:29.919000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [
        "frontend/tsconfig.json",
        "plugins/miniapp-bridge-plugin/tsconfig.json",
        "plugins/openclaw-api-channel-plugin/tsconfig.json",
        "plugins/openclaw-weixin-plugin/tsconfig.json",
        "plugins/openviking-openclaw-plugin/tsconfig.json",
        "plugins/workspace-file-plugin/tsconfig.json"
      ],
      "toolchain_manifests": [
        "backend/pom.xml"
      ],
      "largest_source_bytes": 105528,
      "source_files_sampled": 481,
      "oversized_source_files": 2,
      "agent_instruction_files": [
        "AGENTS.md"
      ],
      "agent_instruction_max_bytes": 4414
    },
    "dependencies": {
      "manifests": [
        "backend/pom.xml",
        "frontend/package.json",
        "package.json"
      ],
      "advisories": {
        "error": null,
        "scope": "published_package",
        "source": "osv",
        "findings": [],
        "collected": true,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 1,
        "malicious_count": 0,
        "assessed_package": "npm:@claw-manager/miniapp-bridge-plugin@2026.7.20",
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "maven",
        "npm"
      ],
      "dependencies": [
        {
          "name": "org.springframework.boot:spring-boot-starter-actuator",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-data-redis",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-security",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-validation",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-web",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.springframework.boot:spring-boot-starter-websocket",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.mybatis.spring.boot:mybatis-spring-boot-starter",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${mybatis-spring-boot.version}"
        },
        {
          "name": "com.mysql:mysql-connector-j",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.flywaydb:flyway-core",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "org.flywaydb:flyway-mysql",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": null
        },
        {
          "name": "com.github.docker-java:docker-java",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${docker-java.version}"
        },
        {
          "name": "com.github.docker-java:docker-java-core",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${docker-java.version}"
        },
        {
          "name": "com.github.docker-java:docker-java-transport-httpclient5",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${docker-java.version}"
        },
        {
          "name": "org.springdoc:springdoc-openapi-starter-webmvc-ui",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${springdoc.version}"
        },
        {
          "name": "org.bouncycastle:bcprov-jdk18on",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${bouncycastle.version}"
        },
        {
          "name": "org.eclipse.jgit:org.eclipse.jgit",
          "manifest": "backend/pom.xml",
          "ecosystem": "maven",
          "version_constraint": "${jgit.version}"
        },
        {
          "name": "@stomp/stompjs",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^7.1.1"
        },
        {
          "name": "@tanstack/vue-query",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^5.80.7"
        },
        {
          "name": "element-plus",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.9.11"
        },
        {
          "name": "lucide-vue-next",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.468.0"
        },
        {
          "name": "pinia",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^2.3.0"
        },
        {
          "name": "qrcode",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^1.5.4"
        },
        {
          "name": "vue",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^3.5.13"
        },
        {
          "name": "vue-router",
          "manifest": "frontend/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.5.0"
        },
        {
          "name": "@sinclair/typebox",
          "manifest": "plugins/miniapp-bridge-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.34.33"
        },
        {
          "name": "qrcode-terminal",
          "manifest": "plugins/openclaw-weixin-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.12.0"
        },
        {
          "name": "zod",
          "manifest": "plugins/openclaw-weixin-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^4.3.6"
        },
        {
          "name": "@sinclair/typebox",
          "manifest": "plugins/openviking-openclaw-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "0.34.48"
        },
        {
          "name": "fflate",
          "manifest": "plugins/openviking-openclaw-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.8.2"
        },
        {
          "name": "@sinclair/typebox",
          "manifest": "plugins/workspace-file-plugin/package.json",
          "ecosystem": "npm",
          "version_constraint": "^0.34.33"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": null,
      "bot_contributors": 0,
      "top_contributors": [],
      "contributors_sampled": null,
      "top_contributor_share": null
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "publish-images.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "package-lock.json"
      ],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 1,
            "reason": "dependency not pinned by hash detected -- score normalized to 1",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 0,
            "reason": "65 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "7e3ab2709cfd9ab15a0f0330f459a0f65496dabf",
        "ran_at": "2026-07-25T11:01:27Z",
        "aggregate_score": 2.4,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": false,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-21T15:33:48Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/zhangsen540445123/claw-manager",
    "host": "github.com",
    "name": "claw-manager",
    "owner": "zhangsen540445123"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 41,
      "inputs": {
        "security": 39,
        "vitality": 35,
        "community": 26,
        "governance": 45,
        "engineering": 58
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "at_risk",
        "name": "Vitality",
        "value": 35,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "commits_last_year": 68,
              "human_commit_share": 1,
              "days_since_last_push": 3,
              "active_weeks_last_year": 6
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 3 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 3
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "6/52 weeks with commits",
                "points": 4.2,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "68 commits in the last year",
                "points": 16.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 68
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "critical",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "releases_count": 0
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "no releases published",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases_published",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "no releases",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_releases",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 26,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "moderate",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 66,
            "inputs": {
              "packages": [
                "@claw-manager/miniapp-bridge-plugin",
                "@claw-manager/workspace-file-plugin",
                "@claw-manager/openclaw-weixin",
                "@claw-manager/openviking-openclaw-plugin",
                "@claw-manager/openclaw-api-channel"
              ],
              "dependents": null,
              "ecosystems": "npm",
              "total_downloads": null,
              "monthly_downloads": 9208
            },
            "components": [
              {
                "key": "monthly_downloads",
                "name": "Monthly downloads",
                "detail": "9,208 downloads/month across npm",
                "points": 52.9,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_monthly",
                    "params": {
                      "count": 9208,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 45,
        "weight": 0.24,
        "metrics": [
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 44,
            "inputs": {
              "followers": 0,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "zhangsen540445123",
              "public_repos": 63,
              "account_age_days": 2604
            },
            "components": [
              {
                "key": "ownership_backing",
                "name": "Ownership backing",
                "detail": "personal (user) account",
                "points": 10,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_personal",
                    "params": {}
                  }
                ],
                "max_points": 30
              },
              {
                "key": "verified_domain",
                "name": "Verified domain",
                "detail": "not applicable to user accounts",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_applicable_to_user_accounts",
                    "params": {}
                  }
                ],
                "max_points": 20
              },
              {
                "key": "owner_reach",
                "name": "Owner reach",
                "detail": "0 followers of zhangsen540445123",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 0,
                      "login": "zhangsen540445123"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "63 public repos, account ~7 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 63
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 7
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "@claw-manager/miniapp-bridge-plugin",
                "@claw-manager/workspace-file-plugin",
                "@claw-manager/openclaw-weixin",
                "@claw-manager/openviking-openclaw-plugin",
                "@claw-manager/openclaw-api-channel"
              ],
              "ecosystems": "npm",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "5 package(s) on npm",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 5,
                      "ecosystems": "npm"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "28 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 28
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 58,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 60,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "2 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 39,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 24,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 2.4
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 0.5,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "65 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "dependency_advisories",
            "band": "excellent",
            "name": "Dependency advisories",
            "note": "Excluded from scoring (no data or not applicable): No advisories left outstanding. Remaining weights renormalized. Matched the npm:@claw-manager/miniapp-bridge-plugin@2026.7.20 runtime dependency closure — what installing the published package pulls in — 1 packages. Reachability is not analyzed.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "no_advisories_left_outstanding"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              },
              {
                "code": "advisories_scope_published",
                "params": {
                  "package": "npm:@claw-manager/miniapp-bridge-plugin@2026.7.20",
                  "assessed": 1
                }
              },
              {
                "code": "advisories_reachability",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "source": "osv",
              "advisories": 0,
              "affected_packages": 0,
              "assessed_packages": 1,
              "unassessed_packages": 0,
              "affected_by_severity": "none",
              "direct_affected_packages": 0
            },
            "components": [
              {
                "key": "direct_dependencies_free_of_known_advisories",
                "name": "Direct dependencies free of known advisories",
                "detail": "no direct dependency carries a known advisory",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "no_direct_advisories",
                    "params": {}
                  }
                ],
                "max_points": 35
              },
              {
                "key": "indirect_dependencies_free_of_known_advisories",
                "name": "Indirect dependencies free of known advisories",
                "detail": "no indirect dependency carries a known advisory",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "no_indirect_advisories",
                    "params": {}
                  }
                ],
                "max_points": 25
              },
              {
                "key": "no_advisories_left_outstanding",
                "name": "No advisories left outstanding",
                "detail": "no advisory carries a publication date",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "advisories_no_publication_date",
                    "params": {}
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "malicious_dependencies",
            "band": "excellent",
            "name": "Malicious dependencies",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "source": "osv",
              "meaning": "reported as a malicious package by the OpenSSF corpus; the remedy is removal or moving off the compromised name, never an upgrade of the same artifact. Versions the registry has since pulled are listed but not scored",
              "packages": [],
              "red_flag": false,
              "assessed_packages": 1,
              "malicious_packages": 0,
              "direct_malicious_packages": 0,
              "withdrawn_malicious_packages": 0,
              "installable_malicious_packages": 0
            },
            "components": [
              {
                "key": "no_dependency_reported_as_a_malicious_package",
                "name": "No dependency reported as a malicious package",
                "detail": "no dependency is reported as a malicious package",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "no_malicious_dependencies",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 74,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "good",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.735,
              "agent_instruction_files": [
                "AGENTS.md"
              ],
              "agent_instruction_max_bytes": 4414
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "AGENTS.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "AGENTS.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "50 of 68 human commits state their intent (structured subject or explanatory body)",
                "points": 39.2,
                "status": "partial",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 50,
                      "sampled": 68
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 57,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "package-lock.json"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [
                "frontend/tsconfig.json",
                "plugins/miniapp-bridge-plugin/tsconfig.json",
                "plugins/openclaw-api-channel-plugin/tsconfig.json",
                "plugins/openclaw-weixin-plugin/tsconfig.json",
                "plugins/openviking-openclaw-plugin/tsconfig.json",
                "plugins/workspace-file-plugin/tsconfig.json"
              ],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "backend/pom.xml"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "backend/pom.xml (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "backend/pom.xml"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "frontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "frontend/tsconfig.json, plugins/miniapp-bridge-plugin/tsconfig.json, plugins/openclaw-api-channel-plugin/tsconfig.json, plugins/openclaw-weixin-plugin/tsconfig.json, plugins/openviking-openclaw-plugin/tsconfig.json, plugins/workspace-file-plugin/tsconfig.json"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 68",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 68
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 1",
                "points": 1,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "TypeScript",
              "largest_source_bytes": 105528,
              "source_files_sampled": 481,
              "oversized_source_files": 2
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "TypeScript (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "TypeScript"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "2/481 source files over 60KB",
                "points": 54.8,
                "status": "partial",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 481,
                      "oversized": 2
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Contributor list unavailable",
    "Could not fetch maven package 'com.clawbotforall:claw-manager-api' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-25T11:01:33.574884Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/z/zhangsen540445123/claw-manager.svg",
  "full_name": "zhangsen540445123/claw-manager",
  "license_state": "absent",
  "license_spdx": null
}

Scores are signals, not warranties. They reflect publicly visible practices on GitHub — not a code audit, and not a security guarantee.

Missing data is excluded and weights renormalized, never scored as zero. Methodology is versioned and open: metrics v1.13.0, schema v0.27.0 — full methodology · metrics wiki.

How one result sits in the wider record: aggregate statisticsnpm.