Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-24 13:26 UTC

StringKe / std-agent

One .stdai/ source of truth, fanned out to 22 AI coding tools: Claude Code, Codex, Cursor, Copilot, Gemini CLI, Windsurf/Devin, Amp, Warp and more. Native formats, Agent Skills, MCP, context budgets, drift detection.

GoMIT★ 8 Sterne⑂ 1 Forkseit Mai 2026Auf GitHub ansehen ↗

StringKe/std-agent erreicht einen Gesundheitsindex von 53 von 100 und liegt damit im Bereich Mittel. Am stärksten schneidet es bei Engineering Quality (86/100) ab, am schwächsten bei Security (26/100). Zuletzt vor 7 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

53
gesamt / 100
Mittel

Software-Gesundheitsindex

Metriken werden auf einer Skala von 1–100 in gewichtete Kategorien gruppiert. Der Gesamtwert beginnt als ihr Mittel; sobald öffentliche Evidenz die Richtlinie für Hochrisikojurisdiktionen auslöst, wird die Bewertung angepasst und erhält die Obergrenze 49 (Gefährdet). AI Readiness liegt außerhalb.

53
Exzellent85-100Vorbildlich; erfüllt im Wesentlichen alle geprüften Kriterien
Gut70-84Gesund; geringfügige Lücken
Mittel50-69Akzeptabel mit deutlichen Lücken; Überprüfung empfohlen
Gefährdet30-49Erhebliche Schwächen; eine Übernahme erfordert Vorsicht
Kritisch1-29Schwerwiegende Probleme (aufgegeben, nur ein Maintainer, keine Hygiene)
VitalitätCommunity &VerbreitungNachhaltigkeit &GovernanceEngineering-QualitätSicherheitAI Readiness

Bewertungsprofil

Jede Achse ist eine Kategorie. Die Form zählt mehr als der Durchschnitt — ein gesundes Projekt füllt die gesamte Fläche, während ein Profil aus Spitzen und Kratern bedeutet, dass Stärke in einer Dimension Risiken in einer anderen verdeckt.

Eigentümerschaft

stringkePersönliches Konto
54 Follower100 öffentliche Reposseit Aug. 2017

Dieses Repository gehört einem persönlichen Konto. Ein Projekt mit nur einem Eigentümer trägt ein höheres Kontinuitätsrisiko als ein organisationsgetragenes.

Paket-Ökosysteme

RegistryPaketVersionDownloads / MonatVersionenZuletzt veröffentlicht
Gogithub.com/StringKe/std-agentv0.0.10-10vor 7 Tagen

Metriken nach Kategorie

Vitalität

Lebt das Projekt — wird Code geschrieben und werden Releases ausgeliefert?

68Mittel · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 7 Tagen
4.8/36Commit-Rhythmus — 7/52 Wochen mit Commits
13.5/18Commit-Volumen — 31 Commits im letzten Jahr
0/10OpenSSF Scorecard: Maintained — project was created within the last 90 days. Please review its contents carefully
Verwendete Eingangsdaten
commits_last_year31
human_commit_share1
days_since_last_push7
active_weeks_last_year7
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 10 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 7 Tagen
27/27Release-Rhythmus — ein Release etwa alle 7,7 Tage
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Verwendete Eingangsdaten
releases_count10
latest_release_tagv0.0.10
releases_from_tagsnein
days_since_latest_release7
mean_days_between_releases7,7

Community & Verbreitung

Hat das Projekt Nutzer, Downloads, Aufmerksamkeit und ein einladendes Umfeld für Beitragende?

31Gefährdet · 18 % des Gesamtindex
Wie die Bewertung erfolgt
13.7/60Stars — 8 Stars
0/25Forks — 1 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks1
stars8
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
22.5/22.5Lizenz — anerkannte Lizenz (MIT)
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licenseja
has_contributingnein
has_issue_templatenein
has_code_of_conductnein
has_pull_request_templatenein

Nachhaltigkeit & Governance

Überdauert das Projekt die Menschen, die es tragen — Bus-Faktor, Reaktionsfähigkeit, Trägerschaft und Paketpflege?

47Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0.7/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 97 % der Commits
2.7/13.5Breite der Beitragenden — 2 Beitragende
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Verwendete Eingangsdaten
bus_factor1
contributors_sampled2
top_contributor_share0,968
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
19.1/38.3PR-Annahme — 1/2 entschiedene PRs gemergt
0/15OpenSSF Scorecard: Code-Review — Found 1/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs1
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs1
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
10/30Organisatorische Trägerschaft — persönliches (Nutzer-)Konto
0/20Verifizierte Domain — für Nutzerkonten nicht anwendbar
12.5/25Reichweite des Inhabers — 54 Follower von StringKe
25/25Kontohistorie — 100 öffentliche Repos, Kontoalter ca. 8 Jahre
Verwendete Eingangsdaten
followers54
owner_typeUser
is_verified
owner_loginStringKe
public_repos100
account_age_days3.263
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Verifizierte Domain. Die verbleibenden Gewichte wurden renormalisiert.

Paketpflege

100Exzellent
Wie die Bewertung erfolgt
25/25Veröffentlicht & auflösbar — 1 Paket(e) auf go
35/35Veröffentlichungsaktualität — letzte Veröffentlichung vor 7 Tagen
20/20Versionshistorie — 10 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesgithub.com/StringKe/std-agent
ecosystemsgo
any_deprecatednein
min_days_since_publish7

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

86Exzellent · 20 % des Gesamtindex
Wie die Bewertung erfolgt
24/24CI-Workflows — 2 Workflow(s)
24/24Tests vorhanden
16/16Linter-Konfiguration — .golangci.yml
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 1 out of 1 merged PRs checked by a CI test -- score normalized to 10
Verwendete Eingangsdaten
has_cija
has_testsja
has_editorconfignein
has_linter_configja
has_precommit_confignein

Dokumentation

90Exzellent
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
15/15Dokumentations-/Homepage-Site — https://github.com/StringKe/std-agent
10/10Repository-Beschreibung
10/10Topics — 19 Topics
0/10Wiki
Verwendete Eingangsdaten
topicsagents-md, ai, ai-agents, ai-cli, ai-tools, claude, codex, copilot, cursor, developer-tools, gemini, golang, mcp, agent-skills, agents, ai-configuration, cli, windsurf, stdagent
has_wikinein
homepagehttps://github.com/StringKe/std-agent
has_readmeja
has_docs_dirja
has_descriptionja

Sicherheit

Sind die sichtbaren Sicherheits- und Lieferkettenpraktiken belastbar, ohne ungeklärte Exposition gegenüber Hochrisikojurisdiktionen?

26Kritisch · 16 % des Gesamtindex

Sicherheitslage

26Kritisch
Wie die Bewertung erfolgt
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 1 out of 1 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 1/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
2.5/2.5Lizenz — license file detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
0/7.5Vulnerabilities — 25 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate2,6

AI Readiness

Wie gut ist das Repository dafür ausgestattet, mit KI-Coding-Agenten entwickelt und gepflegt zu werden? Ein unabhängiges, experimentelles Badge — Gewicht 0,0, es wird eigenständig ausgewiesen und verändert den Gesamt-Gesundheitswert nicht.

82Gut · 0 % des Gesamtindex
Wie die Bewertung erfolgt
45/45Agentenanweisungen — .cursor/rules/commit-style.mdc, .cursor/rules/glossary.md, .cursor/rules/no-history-rewrite.mdc, .cursor/rules/references/transformer-design.md, .cursor/rules/root.mdc, .cursor/rules/test-requirements.mdc, .github/copilot-instructions.md, .github/instructions/references/transformer-design.instructions.md, .github/instructions/test-requirements.instructions.md, AGENTS.md, CLAUDE.md, GEMINI.md, internal/transformer/testdata/golden/claude-code/CLAUDE.md, internal/transformer/testdata/golden/codex/AGENTS.md, internal/transformer/testdata/golden/gemini/GEMINI.md
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 31 von 31 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_files.cursor/rules/commit-style.mdc, .cursor/rules/glossary.md, .cursor/rules/no-history-rewrite.mdc, .cursor/rules/references/transformer-design.md, .cursor/rules/root.mdc, .cursor/rules/test-requirements.mdc, .github/copilot-instructions.md, .github/instructions/references/transformer-design.instructions.md, .github/instructions/test-requirements.instructions.md, AGENTS.md, CLAUDE.md, GEMINI.md, internal/transformer/testdata/golden/claude-code/CLAUDE.md, internal/transformer/testdata/golden/codex/AGENTS.md, internal/transformer/testdata/golden/gemini/GEMINI.md
agent_instruction_max_bytes6.850
Wie die Bewertung erfolgt
18/18Bootstrap mit einem Befehl — mise.toml
22/22Automatisierte Tests
11/11Lint-/Format-Konfiguration — .golangci.yml
11/11Statische Typprüfung — Go (statisch typisiert)
10/10Reproduzierbare Umgebung — lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 31
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesgo.sum
has_dockerfilenein
typed_languageja
bootstrap_filesmise.toml
has_devcontainernein
has_linter_configja
typecheck_configs
agent_commit_share0
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Wie die Bewertung erfolgt
45/45Typprüfbarer Code — Go (statisch typisiert)
55/55Handhabbare Dateigrößen — 0/133 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageGo
largest_source_bytes21.657
source_files_sampled133
oversized_source_files0

Eckdaten

8GitHub-Sterne
2Mitwirkende
31Commits, letzte 12 Monate
7Tage seit letztem Push
10Releases
1Bus-Faktor
0offene Issues
GoPaket-Ökosysteme

Warnungen zur Datenerhebung

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

OpenSSF Scorecard 2.6 / 10
2.6Gesamtwert

Unabhängige, werkzeugneutrale Sicherheitsbewertung durch das quelloffene OpenSSF Scorecard. Jede Prüfung honoriert eine Sicherheits-Praxis, nicht das Werkzeug eines bestimmten Anbieters. Prüfungen, die Scorecard nicht ermitteln konnte, sind mit k. A. markiert und vom Sicherheitswert ausgeschlossen (nie als null gezählt).Scorecard v5.5.0 · 2026-07-24 13:26 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests1 out of 1 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 1/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
10Licenselicense file detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
0Security-Policysecurity policy file not detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
0Vulnerabilities25 existing vulnerabilities detected
Direkte Abhängigkeiten 6
RegistryPaketVersionsvorgabeManifest
Gogithub.com/bmatcuk/doublestar/v4v4.10.0go.mod
Gogithub.com/go-git/go-git/v5v5.19.0go.mod
Gogithub.com/inconshreveable/go-updatev0.0.0-20160112193335-8152e7eb6ccfgo.mod
Gogithub.com/pelletier/go-toml/v2v2.3.1go.mod
Gogithub.com/spf13/cobrav1.10.2go.mod
Gogopkg.in/yaml.v3v3.0.1go.mod
Alle Abhängigkeiten nicht erhoben

Der aufgelöste Abhängigkeitssatz konnte für diesen Bericht nicht erhoben werden: GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

JSON-Rohbericht maschinenlesbar
{
  "data": {
    "repo": {
      "topics": [
        "agents-md",
        "ai",
        "ai-agents",
        "ai-cli",
        "ai-tools",
        "claude",
        "codex",
        "copilot",
        "cursor",
        "developer-tools",
        "gemini",
        "golang",
        "mcp",
        "agent-skills",
        "agents",
        "ai-configuration",
        "cli",
        "windsurf",
        "stdagent"
      ],
      "is_fork": false,
      "size_kb": 2266,
      "has_wiki": false,
      "homepage": "https://github.com/StringKe/std-agent",
      "languages": {
        "Go": 550319,
        "Shell": 3059,
        "Batchfile": 1008,
        "PowerShell": 4173
      },
      "pushed_at": "2026-07-17T07:34:11Z",
      "created_at": "2026-05-07T17:21:02Z",
      "owner_type": "User",
      "updated_at": "2026-07-21T13:16:54Z",
      "description": "One .stdai/ source of truth, fanned out to 22 AI coding tools: Claude Code, Codex, Cursor, Copilot, Gemini CLI, Windsurf/Devin, Amp, Warp and more. Native formats, Agent Skills, MCP, context budgets, drift detection.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "Go",
      "significant_languages": [
        "Go"
      ]
    },
    "owner": {
      "blog": "https://qingmu.me/",
      "name": "stringke",
      "type": "User",
      "login": "StringKe",
      "company": null,
      "location": "UAE",
      "followers": 54,
      "avatar_url": "https://avatars.githubusercontent.com/u/31089228?v=4",
      "created_at": "2017-08-17T04:50:14Z",
      "is_verified": null,
      "public_repos": 100,
      "account_age_days": 3263
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.0.10",
          "kind": "patch",
          "published_at": "2026-07-17T07:36:00Z"
        },
        {
          "tag": "v0.0.9",
          "kind": "patch",
          "published_at": "2026-07-10T18:35:10Z"
        },
        {
          "tag": "v0.0.8",
          "kind": "patch",
          "published_at": "2026-06-11T07:40:48Z"
        },
        {
          "tag": "v0.0.7",
          "kind": "patch",
          "published_at": "2026-06-02T10:00:41Z"
        },
        {
          "tag": "v0.0.6",
          "kind": "patch",
          "published_at": "2026-05-26T13:06:16Z"
        },
        {
          "tag": "v0.0.5",
          "kind": "patch",
          "published_at": "2026-05-17T16:02:02Z"
        },
        {
          "tag": "v0.0.4",
          "kind": "patch",
          "published_at": "2026-05-17T15:05:08Z"
        },
        {
          "tag": "v0.0.3",
          "kind": "patch",
          "published_at": "2026-05-12T09:39:50Z"
        },
        {
          "tag": "v0.0.2",
          "kind": "patch",
          "published_at": "2026-05-08T15:39:45Z"
        },
        {
          "tag": "v0.0.1",
          "kind": "patch",
          "published_at": "2026-05-08T14:36:51Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "ea33ddf170bd74c2b9410f6f351e8f4c12e99f88",
          "body": "Kimi Code CLI(MoonshotAI/kimi-code,kimi-cli 继任产品):\n- rules:root 进 AGENTS.md(层级发现原生消费),nonRoot inline\n- skills / commands:共享 .agents/skills/ 落点,与 codex / amp / warp /\n  antigravity 字节一致去重(铁律扩到五家,新增\n  TestKimiCodeCodexSkillByteIdentical 防回归)\n- references / subagents:降级私有 .kimi-code/rules/(explainer 含\n\n[…]\nnts/)\n- budget:root-file SOFT 8000 / HARD 32768 + agents-md-total 32768\n  (官方 32KiB 层级预算)\n- 登记:schema / smoke / intro / explain / 10 语言 README /\n  docs(含修复 docs/README.md 过期的调研清单)/ 自举 config + sync 产物",
          "is_bot": false,
          "headline": "feat(kimi-code): 新增 Kimi Code CLI target(第 23 个)",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-07-17T07:31:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "87873164b77c7e55a322b0267d6442801af05c0c",
          "body": "- docs/targets/*.md:按 2026-07 官方文档核查结论逐篇修正(skills/commands/\n  subagents 落点、root 发现链、嵌套语义、limit 全集、UNKNOWN 回填),\n  与 transformer 实际实现对照一致\n- README x10 语言:以新英文版为源全量重写,22 target 表格、Release /\n  Go Report Card 徽章、Spec-accurate 卖点、Grok Build 更名\n- 源文档 11 个工具计数全部更新为 22",
          "is_bot": false,
          "headline": "docs: 22 篇 target 调研文档刷新至 2026-07-10 + 10 语言 README 全量重写",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-07-10T18:30:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6dca4a3bb5c820939433316ba8fb702db38d5c84",
          "body": "…n 双写\n\n- parser: Document 新增 user_invocable / disallowed_tools / readonly /\n  background 四个 frontmatter 字段\n- codex: subagents 追加原生 .codex/agents/<n>.toml\n  (name/description/model/developer_instructions),过渡期保留\n  .agents/subagents/*.md 降级产物\n- claude-code: command 复用 skill 全字段集(官方已合并 commands 与 skills\n[…]\nndsurf: rules 产物镜像双写 .devin/rules/(Windsurf 并入 Cognition,\n  .devin/rules/ 成为首选目录,.windsurf/rules/ 仍被读取)\n- continue-dev: NestedPath 文档写 <path>/rules.md(continue 只认固定文件名\n  colocated rule,不读嵌套 AGENTS.md)",
          "is_bot": false,
          "headline": "feat(transformer): 2026-07 规范对齐 P1——subagents TOML / schema 扩展 / devi…",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-07-10T18:16:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "efef6f0e2cf968a05f05d86d5a5bb8e5e5ce0ce0",
          "body": "- 删假数字:claude-code / gemini root-file 无官方硬上限(Claude 官方明确\n  全量加载不截断),Hard 归 0 只留软警戒;copilot 4000/8000 截断规则已于\n  2026-06-12 官方移除,改纯软建议\n- 改语义:codex 32768 标注为链累计口径 + 文件粒度停止 + config.toml 可调\n  默认值;windsurf 12000 标注 per-file 且超限行为官方未定义\n- 新增官方硬上限:cursor rule/root-file 100000(截断)、copilot subagent\n  30000、ant\n[…]\nkills 规范 skill-name 64 / skill-description 1024\n  (硬拒载)、claude-code skill-listing 1536(listing 截断)\n- CheckDocument 新增 skill frontmatter 字段长度检查与 subagent body 检查;\n  CheckTotalRules 支持 rules-total 类总量上限",
          "is_bot": false,
          "headline": "feat(budget): Limits 表按 2026-07 官方文档重写",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-07-10T18:10:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0d5e71fd4cc025868b71e1c269024575c3978be1",
          "body": "对照 22 个 target 官方文档核实(docs/sdlc/2026-07-10/spec-refresh/spec.md):\n\n- claude-code: SKILL.md 工具字段 tools -> allowed-tools(官方字段名,写错被静默忽略)\n- copilot: skills 已 GA,从 WARN 降级改为原生 .github/skills/<n>/SKILL.md\n- cursor: subagents 原生 .cursor/agents/<n>.md(不再降级到 rules 子目录)\n- gemini/qwen/roo/kilo/continue/augment\n[…]\nileOp.JSONMerge 深合并(object 递归/array 并集/scalar 保留用户值,\n  JSONC 解析失败跳过 WARN 不破坏用户配置,永不 prune)\n- runner: WARN 收集移到 Apply 之后,覆盖 JSONMerge 阶段告警\n\nBREAKING CHANGE: 10 个 target 的 skills 输出路径变更,旧路径由 prune 自动清理。",
          "is_bot": false,
          "headline": "feat(transformer)!: 2026-07 规范对齐 P0——skills 原生路径全面迁移",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-07-10T18:07:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5fb9dd4299dfbb591390bb19dc71de07e5f418e6",
          "body": "BREAKING CHANGE: module path 改为 github.com/StringKe/std-agent,goreleaser\nproject_name 与 release 归档前缀改为 std-agent,旧版本二进制 self-upgrade\n断链(需用 install.sh 重装);安装脚本环境变量 STD_AI_* 更名 STD_AGENT_*;\n生成产物的 std-agent-type 字段与类型速查标题随项目更名。.stdai/ 配置目录\n与 .stdaiignore 保持不变。",
          "is_bot": false,
          "headline": "feat(release)!: 项目重命名 std-ai -> std-agent",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-07-10T17:41:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3aaaf253f7f02243aa39700fd3a4f81aa81d069d",
          "body": "Codex 复核结论:memories 是 ~/.codex/memories/ 用户级自动记忆系统\n(mem v2 起单根,无项目级目录),项目级 .codex/ 是官方 Team Config\n配置目录(config.toml / rules/*.rules execpolicy / skills/),均不承载\nmarkdown 指令。.codex/memories/ 不被任何 Codex 机制读取。\n\n- codex adapter:RulesDir 置空(rules inline,amp/warp 同风格),\n  FallbackDir 改 .agents/(references/su\n[…]\nphans 去重修复重复计数\n- budget:codex 限额文案不再引导依赖 spill\n- docs:codex 调研结论更新,conversion-rules 旧方案删除\n\nBREAKING CHANGE: codex target 不再产 .codex/memories/,已有产物在\n下次 sync 时自动 prune;references 迁移到 .agents/references/",
          "is_bot": false,
          "headline": "fix(codex)!: 废弃 .codex/memories,rules 全文 inline 到 AGENTS.md",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-06-11T07:35:57Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a471294090db3dd7fd4bc2e531112070223edda3",
          "body": "Codex scans all .agents/skills/**/SKILL.md; stale cmd-<name>/ dirs left\nby the commands/ subdir migration (and never recorded in state) kept\nloading formatter-broken files. Also add Codex SKILL frontmatter regression\ntests.",
          "is_bot": false,
          "headline": "fix(runner): prune legacy cmd-* Codex skill paths after v3 migration",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-06-02T09:56:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "909663fd66cac9e4b767401075e0816b1e58dd96",
          "body": "YAML frontmatter 仅从文件首行起才合法。原先 BuildMarkdownFile 把 header HTML\n注释写在 frontmatter --- 之前,导致 --- 非首行,下游 markdown formatter(oxfmt)\n把它当 thematic break、把 description 行重排成 heading,破坏所有带 frontmatter\n的产物(skills SKILL.md / cursor rules / windsurf rules / github instructions)。\n\n改为:frontmatter 非空时 header marker 落在 --- 闭合之后、body 之前;无\nfrontmatter 时仍在文件最前。补 BuildMarkdownFile 首行/marker 位置防回归单测。",
          "is_bot": false,
          "headline": "fix(transformer): frontmatter 占文件首行,header marker 移到 --- 之后",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-26T11:06:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f0fa6246f73c731b670a3e77c5209818b9187820",
          "body": "两项 v0.0.4 设计错误修复,准备 v0.0.5 发版。\n\n## 1. references 路径重构(不再借 SkillsDir)\n\nv0.0.4 把 references fallback 走 BuildDegradedSkillPackage 落到\n<SkillsDir>/<name>/SKILL.md(Agent Skills 标准路径),意图是让多 AGENTS.md 工具共\n享。但这是**语义错位**:把 references 装成 SKILL.md 等于把 references 当 skill 用,\nAI 会按 skill 触发逻辑(description 匹配主动调用)加载\n[…]\n-cli -> grok-build\n- intro_prompt.md Tier 2 列表更新\n- docs/targets/grok-cli.md -> docs/targets/grok-build.md 内容重写(含官方 URL、\n  v0.0.4 -> v0.0.5 修订说明、UNKNOWN 清单)\n\nself-bootstrap idempotent OK,mise check 全绿。",
          "is_bot": false,
          "headline": "fix(transformer): references 走独立子目录 + grok-cli rename 为 grok-build",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T15:57:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "14eb264a1c0def64c04ccaf7d3a0fb5f044ce315",
          "body": "… cmd-)\n\n清理 v0.0.4 残留的 std-ai 私有前缀(违反 v3 \"不造私有前缀,用子目录隔离\" 原则):\n\n1. antigravity adapter SkillsAsRule: true -> false\n   - 原产物 .agents/rules/skill-add-target.md 含 std-ai 私有 skill- 前缀\n   - 改走 BuildDegradedSkillPackage 标准 Agent Skills fallback:\n     .agents/rules/skills/add-target/SKILL.md\n   - 同名测试断言更新\n\n\n[…]\nmmand 不是 skill)\n   - 同名测试断言(agents_md_test / codex_smoke_test)+ help/what-is-commands.md 更新\n\n清理后 grep -E \"skill-|cmd-\" 工作树(除 .stdai/backups/ 历史快照)零私有前缀。\nsync prune 自动删除旧违规文件。所有现有测试 PASS,mise check 全绿。",
          "is_bot": false,
          "headline": "refactor(transformer): remove v3 violation private prefixes (skill- /…",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T15:18:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "48de899f65de440ce83eb759ac6e585fb0300e0d",
          "body": "… protocol)\n\n最小可发版文档更新(其他 9 份多语言 README / docs/targets 详细修订 /\nconversion-rules / format-spec 大改留 v0.0.5):\n\n- README.md (英文):\n  * 标题段 \"11 AI CLI tools\" -> \"22 AI CLI tools\"\n  * Tier 1 表 9 -> 14 行(加 roo-code / crush / amp / warp / factory)\n  * Tier 2 表 2 -> 8 行(加 qwen-code / pi / kilo-code / augment-c\n[…]\nul degradation\n\n- internal/cli/intro_prompt.md:\n  * 顶部说明改为 22 个 AI CLI 工具 + Tier 1/2 工具清单\n  * 加 graceful degradation 简介(子目录隔离 + std-ai-type frontmatter,无 std-ai-private 前缀)\n  * 命令速查表加 stdagent explain",
          "is_bot": false,
          "headline": "docs: update README + intro_prompt for v0.0.4 (22 targets / explain /…",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T15:00:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c927fc8a0b3cf69aaf56cf713cf8fd08a131edbe",
          "body": "… supported tools\n\nPhase 5 完成。新增 11 个 AI CLI 工具支持,stdagent 现在覆盖 22 个 target。\n\nHIGH(Tier 1,~25-50 行 adapter):\n- roo-code  Cline fork,18k stars,Clinerules protocol\n- crush     Charmbracelet,5k+ stars,AgentsMD + CRUSH.md\n- amp       Sourcegraph,AGENTS.md 标准原推动者\n- warp      Warp 终端,2026 已默认 AGENTS.md\n- \n[…]\n / jules / qwen / grok 同模式\n\nself-bootstrap:22 target sync 跑通,内容稳定。\n(已知 minor:多 transformer 写同一 AGENTS.md 时 writer 计数虚高 3 written,\n内容 git diff 空,不影响功能;待后续 writer 去重优化)\nmise run check 全绿(lint 0 issues)。",
          "is_bot": false,
          "headline": "feat(transformer): add 11 new targets (HIGH 5 + MEDIUM 6) totaling 22…",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T14:56:12Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "989d43118d2fe93568dec65052bb94fcb38f98d3",
          "body": "…in command\n\nPhase 4 完成。Phase 3 已落地的部分:\n- 4.1 references 全 11 target fallback(子目录隔离,无私有前缀)\n- 4.3 type glossary 自动注入根文件 + 无根 target 的 <RulesDir>/glossary.md\n\n本 commit 补 4.2 / 4.4:\n\n4.2 subagent CLI 调用降级形态 B:\n- copilot adapter 加 SubagentInvokeCmd=\"claude --agent {name}\"\n- copilot 原生支持 subagents,但当 Sub\n[…]\nmd 后\n\n用法:\n  stdagent explain                # 全部 5 种 type 速查\n  stdagent explain rules          # 单查 rules\n  stdagent explain --json         # AI / 自动化集成\n\nself-bootstrap idempotent + mise run check 全绿。",
          "is_bot": false,
          "headline": "feat(degradation,cli): copilot subagent CLI fallback + stdagent expla…",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T14:43:34Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "08246db373a7973c5daa5e38ae28f5b6bafcf229",
          "body": "Phase 3 完成。11 个 transformer 全部委托给 protocol,行 1201 -> 415 行:\n\n- claude-code 200 -> 49(ClaudeMD protocol,含 50 行私有字段 helper 在 protocol 内部)\n- codex 196 -> 38(AgentsMD + InjectCommandsToRoot + CommandsAsSkillPrefix=cmd-)\n- copilot 138 -> 53(Copilot + .vscode/mcp.json servers 顶级键)\n- antigravity 115 -> 42(\n[…]\nglobs(v3 trigger 推断更准确,applyTo 有 glob 时 trigger=glob 而非 alwaysApply=true)\n\nself-bootstrap idempotent:sync 跑两次第二次 0 written 0 pruned。\nmise run check:lint 0 issues,transformer 包覆盖率 97.6%,protocol 89.4%。",
          "is_bot": false,
          "headline": "refactor(transformer): migrate 11 existing transformers to adapter form",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T14:38:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c8a3bdb76f3bf13cb31c81541bba1f4e04b62620",
          "body": "…util\n\n为 v0.0.4 引入三层架构(Transformer + Protocol + Adapter)。本 commit 不切换 11 个现有 transformer 的实现(Phase 3 才委托),仅引入抽象层,行为完全不变。\n\n新增 internal/transformer/transformerutil/:\n- 把 util.go 中 non-target-specific 工具下沉为独立包,避免后续 protocol/ 与\n  transformer/ 双向 import 形成循环。\n- 含 FmBuilder / BuildMarkdownFile / SkillDir \n[…]\nag\ninject_type_glossary,默认 true)。\n\ninternal/transformer/transformer_test.go / filter_test.go:smoke 测试拆分残余\n+ FilterDocs / targetApplies 单测。\n\n全部现有 22 个 smoke test 保持 PASS(lint 0 issues、race + cover 全绿)。",
          "is_bot": false,
          "headline": "feat(transformer): protocol/adapter layer + 6 protocols + transformer…",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T14:27:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a6b9a362b01ef6037b4073d1547d9bd0ac4c411d",
          "body": "为 v0.0.4 protocol 抽象重构准备测试基础设施:\n\n- 拆 internal/transformer/smoke_test.go(526 行 22 个测试函数)为\n  11 个 per-target *_smoke_test.go + smoke_helpers_test.go +\n  5 个跨 target 测试保留在 smoke_test.go。行为完全一致。\n- 建立 golden file 基线 internal/transformer/testdata/golden/\n  含 9 个 target 共 19 个代表文件(CLAUDE.md / AGENTS.md /\n \n[…]\nsync 取得。Phase 3 transformer 迁移以此作 byte-equivalent 对照。\n- internal/parser/references_smoke_test.go 端到端验证 references\n  类型现有 parser 行为符合 v0.0.4 需求(PASS:Type==references\n  Name + ApplyTo 全正确,无需 schema 扩展)。",
          "is_bot": false,
          "headline": "chore(test): split smoke_test.go per-target + establish golden baseline",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T14:00:49Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7b133f24554b6fd484f967b774035c2d2479e71a",
          "body": null,
          "is_bot": false,
          "headline": "chore: ignore docs/sdlc/ (local SDLC workflow artifacts)",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T13:51:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c38066456c4ca66470be068990875a3765ba0833",
          "body": "补齐本仓 .stdai/standards/ 的另外 3 种 type,让仓库覆盖全部 5 种 std-ai type:\n\n- skills/add-target/SKILL.md       加新 target transformer 的工作流(applyTo 限定 internal/transformer/**)\n- commands/release-patch.md        slash 命令 /release-patch,patch 发版流程\n- references/transformer-design.md transformer 包设计参考(interface / FileO\n[…]\nws/ .clinerules/workflows/ .gemini/commands/*.toml .opencode/\n.continue/prompts/ .github/prompts/ .github/agents/ .agents/skills/ .agents/workflows/\n\n让其他开发者直接看到 std-ai 5 种 type 在 11 个 target 上的完整扩散形态。",
          "is_bot": false,
          "headline": "chore(stdai): add skill / command / reference demo sources",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T12:52:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cc0579d4cde099b8b3a6c4429d2f7926bc6e1e72",
          "body": "把仓库自己的 .stdai/config.toml 11 个 target 全部 enable,让其他开发者直接看到\nstdagent sync 在各家 AI CLI 工具下的产物形态。\n\n生成的扩散文件:\n- .claude/rules/ (Claude Code)         已存在\n- .codex/memories/ (Codex)             已存在\n- .cursor/rules/*.mdc (Cursor)         新\n- .windsurf/rules/ (Windsurf)          新\n- .clinerules/ (Cline)      \n[…]\nMINI.md (Gemini CLI)               新\n- .github/copilot-instructions.md      新\n- .github/instructions/                新(Copilot scoped instructions)\n\nconfig.toml 加注释说明这是 demo 用,提醒用户在自己项目里只开用得到的 target。",
          "is_bot": false,
          "headline": "chore(stdai): enable all 11 targets for demo",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T12:47:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f01dab3554bc0602a2072f790785d7691f128d18",
          "body": "新增 which 命令:给定文件路径,扫 .stdai/standards/ 下所有 docs 的 frontmatter\napplyTo glob,返回应当为该文件加载的 rules / references / subagents。设计目的\n是让 AI 助手按需加载上下文(编辑某文件前 query which,针对性 Read 相关 docs),\n而不是预加载全部 .claude/rules/。\n\n输出格式:\n- 默认人类可读表格(含 type / name / priority / source / matched glob / description)\n- --json 给 AI / \n[…]\n--paths 只输出源路径,方便 pipe(cat $(stdagent which --paths ...))\n- --type=rules,references 按 type 过滤\n- --include-global 也列出无 applyTo 的全局 docs\n\nintro_prompt.md 加\"按需加载上下文\"章节说明该工作流。\n10 份 README 命令清单同步加 which 行。",
          "is_bot": false,
          "headline": "feat(cli): add stdagent which <path> for on-demand context routing",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T12:44:04Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0d790690076c4f78f024f9c46e7963783c880f7c",
          "body": "让本仓库自举:用 stdagent 管理自己的 AI 助手规则。\n\n- .stdai/config.toml 启用 claude-code + codex 两个 target\n- .stdai/standards/root.md 项目总览(模块结构 / 技术栈 / 铁律 / 维护流程)\n- .stdai/standards/rules/ 3 条核心规则:test-requirements / no-history-rewrite / commit-style\n- 跑 stdagent sync 生成 CLAUDE.md / AGENTS.md / .claude/rules/ / .codex/memories/\n- .gitignore 排除 .stdai/{backups,cache,state.json} 运行时产物\n- 顺手删除 .claude/scheduled_tasks.lock 旧产物",
          "is_bot": false,
          "headline": "chore(stdai): bootstrap repo with .stdai/ + sync artifacts",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T12:35:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "31b105697a5f4c005fd1bc03e7813c457f73c23c",
          "body": "- 4 份现存 README 头部用 docs/assets/hero.png banner 替换标语行\n- 加\"从已有项目迁移到 std-ai\"章节,含可直接复制给 AI 的提示词块\n- 新增 6 份语言版本:ko / ru / fr / de / es / pt-BR\n- 统一 10 份 README 的 language switcher",
          "is_bot": false,
          "headline": "docs(readme): hero banner + migration prompt + 6 new languages",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T12:34:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4dbef74b4a98df762fe102b24c311a877d31cedd",
          "body": "sync 现在默认会删除\"上次写过但本次不再产出\"的孤儿文件,解决\"规则从 30 个减到 15 个\"\n场景下的残留问题。新增 --no-prune flag 兜底;DryRun 模式只汇报、不真删;submodule\n边界 path 永远跳过。\n\n同时修复一个预存 bug:unchanged skip 的 path 现在也会写入 state.Outputs,否则\n下次 sync 无从识别孤儿。\n\n补 4 个测试:TestSyncPrunesOrphans / TestSyncNoPruneKeepsOrphans /\nTestSyncDryRunReportsPrune / TestSyncUnchangedStillTrackedInState。",
          "is_bot": false,
          "headline": "feat(sync): prune orphans on sync + --no-prune flag",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T12:34:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "45cded50197aaf9424ad8d12b2f883b241d1791f",
          "body": "writer_test.go:93 两侧 HeaderComment(opts) 调用完全相同,\nstaticcheck SA4000 判为笔误导致 CI lint 失败。改为与 83 行\n已有的 h 变量比较,保持确定性验证语义不变。",
          "is_bot": false,
          "headline": "fix(writer): 复用 h 变量比较,消除 staticcheck SA4000",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-17T11:27:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4424da297920fd3fc0abdbda22f82d8758194e0",
          "body": "HeaderComment 不再渲染 `at <RFC3339>`,删除 stripGeneratedMarker 与\nwriter.Apply 二次归一化分支。生成时间在 .stdai/state.json 已有记录。\n\n迁移:含旧 marker 的目标文件下次 sync 会重写一次,之后 byte-identical。\n\n- 删 FooterOptions.GeneratedAt 与 transformer time.Now()\n- 删 stripGeneratedMarker、writer.Apply 二次判等\n- 合并 marker-timestamp 相关测试为单一 determinism 用例\n- spec.md / conversion-rules.md marker 样例对齐",
          "is_bot": false,
          "headline": "refactor(writer): marker 移除 timestamp,输出 deterministic",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-12T09:37:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e5df1a4adc1a2e43d70ca1267bc157b445a6f46c",
          "body": "…s (#1)\n\nHeaderComment injects time.Now() as 'at <RFC3339>' on every sync, so\nbytes.Equal between the existing file and the new content was always\nfalse. Every inject=true output got rewritten by atomicWrite, refreshing\nthe mtime and producing a noisy git diff even when the underlying source\ndocs ha\n[…]\nmestamp.\n\nAdds tests covering: timestamp-only change is skipped, mtime is\npreserved, body change still writes through, and stripGeneratedMarker\nitself.\n\nCo-authored-by: joestea <joeshao1993@gmail.com>",
          "is_bot": false,
          "headline": "fix(writer): skip rewrite when only generated marker timestamp differ…",
          "author_name": "nin39six",
          "author_login": "nin39six",
          "committed_at": "2026-05-11T06:57:27Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cacc857750420079425e5501a1dcdc04889679bb",
          "body": "Claude Code 官方仅支持 .claude/rules/<n>.md frontmatter `paths` 字段触发条件加载。\n之前写 `applyTo:` 是抄 GitHub Copilot 字段名,Claude Code 不识别会无条件加载所有 rule\n导致 session 启动 context 浪费。\n\n- claude-code transformer: applyTo -> paths\n- 删 alwaysApply 输出(Cursor 私有字段,Claude Code 忽略)\n- 保留 description 作为人类可读 metadata(Claude Code 把整\n[…]\net 字段已对:\n- Cursor: globs (CSV) + description + alwaysApply ✓\n- Cline: paths ✓\n- Continue.dev: globs + description + alwaysApply ✓\n- Copilot: applyTo (CSV) ✓\n- Windsurf: trigger + globs + description ✓",
          "is_bot": false,
          "headline": "fix(claude-code): 用 paths 字段而非 applyTo(官方文档要求)",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-08T15:34:46Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6f211ac216d6fe129b70335e9afafd75887cc9fb",
          "body": null,
          "is_bot": false,
          "headline": "fix(release): ignore CHANGELOG_LATEST.md so goreleaser sees clean tree",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-08T14:32:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "019f5e7b9c81c852cbfebf666632fc82d2865a98",
          "body": "核心设计转向:stdagent 是 AI 调用的发布器,不是静态工具\n\n- 删除 hooks 注入(apply-hooks / install-hook 命令、hooks.json 加载、stdagent-hooks 中间文件)\n- 删除 frontmatter root: true 字段,改路径模式:.stdai/standards/root.md 自动识别为根文件主体\n- 嵌套机制:.stdai/standards/nested/<sub-path>/root.md 输出到 <sub-path>/CLAUDE.md / AGENTS.md(无 manifest,纯说明文档)\n- 同 git\n[…]\n\n实战验证(真实多仓 igx-9nice 工作区,主仓 + 8 submodule):\n- 第一次迁移:codex 自主完成 100 rule + 14 嵌套 root(含 igx-cloud 5 + igx-platform 8)\n- 第二次维护:仅动 .stdai/standards/,sync 增量更新产物\n- 嵌套产物 14 对 CLAUDE.md+AGENTS.md 全部正确生成到深路径",
          "is_bot": false,
          "headline": "feat: AI-driven workflow + 嵌套 CLAUDE.md + submodule 边界保护",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-08T14:27:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "6b2ad39ec73b97c65dd86a28f7ae62dd016dde07",
          "body": null,
          "is_bot": false,
          "headline": "chore: initial commit",
          "author_name": "StringKE",
          "author_login": "StringKe",
          "committed_at": "2026-05-08T08:36:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 10,
      "commits_last_year": 31,
      "latest_release_at": "2026-07-17T07:36:00Z",
      "latest_release_tag": "v0.0.10",
      "releases_from_tags": false,
      "days_since_last_push": 7,
      "active_weeks_last_year": 7,
      "days_since_latest_release": 7,
      "mean_days_between_releases": 7.7
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 42,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/StringKe/std-agent",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/StringKe/std-agent",
          "is_deprecated": false,
          "latest_version": "v0.0.10",
          "repository_url": "https://github.com/StringKe/std-agent",
          "versions_count": 10,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-17T07:31:26Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 7
        }
      ]
    },
    "popularity": {
      "forks": 1,
      "stars": 8,
      "watchers": 0,
      "fork_history": {
        "days": [
          {
            "date": "2026-05-10",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_forks": 1
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "mise.toml"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 21657,
      "source_files_sampled": 133,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        ".cursor/rules/commit-style.mdc",
        ".cursor/rules/glossary.md",
        ".cursor/rules/no-history-rewrite.mdc",
        ".cursor/rules/references/transformer-design.md",
        ".cursor/rules/root.mdc",
        ".cursor/rules/test-requirements.mdc",
        ".github/copilot-instructions.md",
        ".github/instructions/references/transformer-design.instructions.md",
        ".github/instructions/test-requirements.instructions.md",
        "AGENTS.md",
        "CLAUDE.md",
        "GEMINI.md",
        "internal/transformer/testdata/golden/claude-code/CLAUDE.md",
        "internal/transformer/testdata/golden/codex/AGENTS.md",
        "internal/transformer/testdata/golden/gemini/GEMINI.md"
      ],
      "agent_instruction_max_bytes": 6850
    },
    "dependencies": {
      "manifests": [
        "go.mod"
      ],
      "advisories": {
        "error": null,
        "scope": null,
        "source": null,
        "findings": [],
        "collected": false,
        "malicious": [],
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "malicious_count": 0,
        "assessed_package": null,
        "unassessed_count": 0,
        "direct_affected_count": 0
      },
      "ecosystems": [
        "go"
      ],
      "dependencies": [
        {
          "name": "github.com/bmatcuk/doublestar/v4",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v4.10.0"
        },
        {
          "name": "github.com/go-git/go-git/v5",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v5.19.0"
        },
        {
          "name": "github.com/inconshreveable/go-update",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.0.0-20160112193335-8152e7eb6ccf"
        },
        {
          "name": "github.com/pelletier/go-toml/v2",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v2.3.1"
        },
        {
          "name": "github.com/spf13/cobra",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v1.10.2"
        },
        {
          "name": "gopkg.in/yaml.v3",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v3.0.1"
        }
      ],
      "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": 1,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 1
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "StringKe",
          "commits": 30,
          "avatar_url": "https://avatars.githubusercontent.com/u/31089228?v=4"
        },
        {
          "type": "User",
          "login": "nin39six",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/219800733?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.968
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "release.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [
        ".golangci.yml"
      ],
      "has_editorconfig": false,
      "has_linter_config": true,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [
        "go.sum"
      ],
      "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": 10,
            "reason": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
            "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 1/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": 10,
            "reason": "license file 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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "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": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "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": "25 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "ea33ddf170bd74c2b9410f6f351e8f4c12e99f88",
        "ran_at": "2026-07-24T13:26:06Z",
        "aggregate_score": 2.6,
        "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-17T07:36:04Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-05-11T06:57:28Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/StringKe/std-agent",
    "host": "github.com",
    "name": "std-agent",
    "owner": "StringKe"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 53,
      "inputs": {
        "security": 26,
        "vitality": 68,
        "community": 31,
        "governance": 47,
        "engineering": 86
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 68,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 54,
            "inputs": {
              "commits_last_year": 31,
              "human_commit_share": 1,
              "days_since_last_push": 7,
              "active_weeks_last_year": 7
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "7/52 weeks with commits",
                "points": 4.8,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "31 commits in the last year",
                "points": 13.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 31
                    }
                  }
                ],
                "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": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 10,
              "latest_release_tag": "v0.0.10",
              "releases_from_tags": false,
              "days_since_latest_release": 7,
              "mean_days_between_releases": 7.7
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "10 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 7 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~7.7 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 7.7
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "at_risk",
        "name": "Community & Adoption",
        "value": 31,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 14,
            "inputs": {
              "forks": 1,
              "stars": 8,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "8 stars",
                "points": 13.7,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 8
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "1 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "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": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "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": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "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
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 47,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 12,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.968
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 97% of commits",
                "points": 0.7,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 97
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "2 contributors",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "at_risk",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 36,
            "inputs": {
              "merged_prs": 1,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 1
            },
            "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": "1/2 decided PRs merged",
                "points": 19.1,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 1,
                      "decided": 2
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 1/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "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": 59,
            "inputs": {
              "followers": 54,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "StringKe",
              "public_repos": 100,
              "account_age_days": 3263
            },
            "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": "54 followers of StringKe",
                "points": 12.5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 54,
                      "login": "StringKe"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "100 public repos, account ~8 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 100
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 8
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/StringKe/std-agent"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 7
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "1 package(s) on go",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 1,
                      "ecosystems": "go"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 7 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 7
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "10 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "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": "excellent",
        "name": "Engineering Quality",
        "value": 86,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 84,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": true,
              "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": ".golangci.yml",
                "points": 16,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "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": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "topics": [
                "agents-md",
                "ai",
                "ai-agents",
                "ai-cli",
                "ai-tools",
                "claude",
                "codex",
                "copilot",
                "cursor",
                "developer-tools",
                "gemini",
                "golang",
                "mcp",
                "agent-skills",
                "agents",
                "ai-configuration",
                "cli",
                "windsurf",
                "stdagent"
              ],
              "has_wiki": false,
              "homepage": "https://github.com/StringKe/std-agent",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "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": "https://github.com/StringKe/std-agent",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "19 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 19
                    }
                  }
                ],
                "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": "critical",
        "name": "Security",
        "value": 26,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 26,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 2.6
            },
            "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": "1 out of 1 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "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 1/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 detected",
                "points": 2.5,
                "status": "met",
                "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "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": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "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": "25 existing vulnerabilities detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 2
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "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": 82,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [
                ".cursor/rules/commit-style.mdc",
                ".cursor/rules/glossary.md",
                ".cursor/rules/no-history-rewrite.mdc",
                ".cursor/rules/references/transformer-design.md",
                ".cursor/rules/root.mdc",
                ".cursor/rules/test-requirements.mdc",
                ".github/copilot-instructions.md",
                ".github/instructions/references/transformer-design.instructions.md",
                ".github/instructions/test-requirements.instructions.md",
                "AGENTS.md",
                "CLAUDE.md",
                "GEMINI.md",
                "internal/transformer/testdata/golden/claude-code/CLAUDE.md",
                "internal/transformer/testdata/golden/codex/AGENTS.md",
                "internal/transformer/testdata/golden/gemini/GEMINI.md"
              ],
              "agent_instruction_max_bytes": 6850
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": ".cursor/rules/commit-style.mdc, .cursor/rules/glossary.md, .cursor/rules/no-history-rewrite.mdc, .cursor/rules/references/transformer-design.md, .cursor/rules/root.mdc, .cursor/rules/test-requirements.mdc, .github/copilot-instructions.md, .github/instructions/references/transformer-design.instructions.md, .github/instructions/test-requirements.instructions.md, AGENTS.md, CLAUDE.md, GEMINI.md, internal/transformer/testdata/golden/claude-code/CLAUDE.md, internal/transformer/testdata/golden/codex/AGENTS.md, internal/transformer/testdata/golden/gemini/GEMINI.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".cursor/rules/commit-style.mdc, .cursor/rules/glossary.md, .cursor/rules/no-history-rewrite.mdc, .cursor/rules/references/transformer-design.md, .cursor/rules/root.mdc, .cursor/rules/test-requirements.mdc, .github/copilot-instructions.md, .github/instructions/references/transformer-design.instructions.md, .github/instructions/test-requirements.instructions.md, AGENTS.md, CLAUDE.md, GEMINI.md, internal/transformer/testdata/golden/claude-code/CLAUDE.md, internal/transformer/testdata/golden/codex/AGENTS.md, internal/transformer/testdata/golden/gemini/GEMINI.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": "31 of 31 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 31,
                      "sampled": 31
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 72,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [
                "mise.toml"
              ],
              "has_devcontainer": false,
              "has_linter_config": true,
              "typecheck_configs": [],
              "agent_commit_share": 0,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "mise.toml",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "mise.toml"
                    }
                  }
                ],
                "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": ".golangci.yml",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": ".golangci.yml"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "no agent-authored commits among the last 31",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 31
                    }
                  }
                ],
                "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 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 21657,
              "source_files_sampled": 133,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/133 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 133,
                      "oversized": 0
                    }
                  }
                ],
                "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": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-24T13:26:13.147201Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/s/StringKe/std-agent.svg",
  "full_name": "StringKe/std-agent",
  "license_state": "standard",
  "license_spdx": "MIT"
}

Bewertungen sind Signale, keine Garantien. Sie spiegeln öffentlich sichtbare Praxis auf GitHub wider — kein Code-Audit und keine Sicherheitsgarantie.

Fehlende Daten werden ausgeschlossen und die Gewichte neu normiert, nie als null bewertet. Die Methodik ist versioniert und offen: Metriken v1.13.0, Schema v0.27.0 — vollständige Methodik · Metriken-Wiki.

Wie ein einzelnes Ergebnis im Gesamtregister steht: aggregierte StatistikenGo.