Öffentliches Register
Software-GesundheitsberichtSchema 0.27.0 · Metriken 1.13.0 · 2026-07-27 18:11 UTC

rachmanzz / dcd

Shell · GoKeine Lizenz erkannt★ 0 Sterne⑂ 0 Forksseit Juni 2026Auf GitHub ansehen ↗

rachmanzz/dcd erreicht einen Gesundheitsindex von 38 von 100 und liegt damit im Bereich Gefährdet. Am stärksten schneidet es bei Vitality (67/100) ab, am schwächsten bei Community & Adoption (12/100). Zuletzt vor 4 Tagen aktualisiert. Ein einzelner Mitwirkender trägt den Großteil der jüngsten Arbeit.

38
gesamt / 100
Gefährdet

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.

38
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

RahmanPersönliches Konto
8 Follower118 öffentliche Reposseit Juli 2014

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/rachmanzz/dcdv0.2.6-12vor 5 Tagen

Metriken nach Kategorie

Vitalität

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

67Mittel · 22 % des Gesamtindex
Wie die Bewertung erfolgt
36/36Push-Aktualität — letzter Push vor 4 Tagen
3.5/36Commit-Rhythmus — 5/52 Wochen mit Commits
15.7/18Commit-Volumen — 55 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_year55
human_commit_share1
days_since_last_push4
active_weeks_last_year5
Wie die Bewertung erfolgt
27/27Liefert Releases aus — 1 Releases veröffentlicht
36/36Release-Aktualität — letztes Release vor 13 Tagen
12.6/27Release-Rhythmus — Rhythmus unbekannt (nur ein Release)
0/10OpenSSF Scorecard: Signed-Releases — keine Daten
Verwendete Eingangsdaten
releases_count1
latest_release_tagv0.2.4
releases_from_tagsnein
days_since_latest_release13
mean_days_between_releases
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Signed-Releases. Die verbleibenden Gewichte wurden renormalisiert.

Community & Verbreitung

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

12Kritisch · 18 % des Gesamtindex
Wie die Bewertung erfolgt
0/60Stars — 0 Stars
0/25Forks — 0 Forks
0/15Watcher — 0 Watcher
Verwendete Eingangsdaten
forks0
stars0
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
Wie die Bewertung erfolgt
22.5/22.5README
0/22.5Lizenz — keine Lizenzdatei erkannt
0/18CONTRIBUTING-Leitfaden
0/13.5Verhaltenskodex
0/7.2Issue-Vorlage
0/6.3PR-Vorlage
Verwendete Eingangsdaten
has_readmeja
has_licensenein
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?

37Gefährdet · 24 % des Gesamtindex
Wie die Bewertung erfolgt
9/54Bus-Faktor — 1 Beitragende decken die Hälfte aller Commits ab
0/22.5Commit-Verteilung — wichtigste beitragende Person verfasste 100 % der Commits
1.4/13.5Breite der Beitragenden — 1 Beitragende
3/10OpenSSF Scorecard: Contributors — project has 1 contributing companies or organizations -- score normalized to 3
Verwendete Eingangsdaten
bus_factor1
contributors_sampled1
top_contributor_share1
Wie die Bewertung erfolgt
0/46.8Issue-Lösungsquote — keine Issues oder keine Daten
0/38.3PR-Annahme — keine entschiedenen Pull Requests oder keine Daten
0/15OpenSSF Scorecard: Code-Review — Found 0/30 approved changesets -- score normalized to 0
Verwendete Eingangsdaten
merged_prs0
open_issues0
closed_issues0
issue_closed_ratio
closed_unmerged_prs0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): Issue-Lösungsquote, PR-Annahme. 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
6.9/25Reichweite des Inhabers — 8 Follower von rachmanzz
25/25Kontohistorie — 118 öffentliche Repos, Kontoalter ca. 12 Jahre
Verwendete Eingangsdaten
followers8
owner_typeUser
is_verified
owner_loginrachmanzz
public_repos118
account_age_days4.400
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 5 Tagen
20/20Versionshistorie — 12 veröffentlichte Versionen
20/20Nicht veraltet — aktiv, nicht veraltet oder zurückgezogen
Verwendete Eingangsdaten
packagesgithub.com/rachmanzz/dcd
ecosystemsgo
any_deprecatednein
min_days_since_publish5

Engineering-Qualität

Sind grundlegende Engineering- und Dokumentationspraktiken vorhanden?

44Gefährdet · 20 % des Gesamtindex
Wie die Bewertung erfolgt
0/24CI-Workflows
24/24Tests vorhanden
0/16Linter-Konfiguration
0/9.6Pre-Commit-Hooks
0/6.4.editorconfig
0/20OpenSSF Scorecard: CI-Tests — keine Daten
Verwendete Eingangsdaten
has_cinein
has_testsja
has_editorconfignein
has_linter_confignein
has_precommit_confignein
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: CI-Tests. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
30/30README
25/25Dokumentationsverzeichnis
0/15Dokumentations-/Homepage-Site
0/10Repository-Beschreibung
0/10Topics
10/10Wiki
Verwendete Eingangsdaten
topics
has_wikija
homepage
has_readmeja
has_docs_dirja
has_descriptionnein

Sicherheit

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

23Kritisch · 16 % des Gesamtindex

Sicherheitslage

23Kritisch
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
0/2.5CI-Tests — keine Daten
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/30 approved changesets -- score normalized to 0
0.8/2.5Contributors — project has 1 contributing companies or organizations -- score normalized to 3
0/10Dangerous-Workflow — keine Daten
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
0/2.5Lizenz — license file not detected
0/7.5Maintained — project was created within the last 90 days. Please review its contents carefully
0/5Packaging — keine Daten
0/5Pinned-Dependencies — keine Daten
0/5SAST — no SAST tool detected
0/5Security-Policy — security policy file not detected
0/7.5Signed-Releases — keine Daten
0/7.5Token-Permissions — keine Daten
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Verwendete Eingangsdaten
sourceopenssf_scorecard
checks_evaluated12
scorecard_versionv5.5.0
checks_inconclusive6
scorecard_aggregate2,3
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): ci_tests, dangerous_workflow, packaging, pinned_dependencies, signed_releases, token_permissions. Die verbleibenden Gewichte wurden renormalisiert.

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.

46Gefährdet · 0 % des Gesamtindex
Wie die Bewertung erfolgt
0/45Agentenanweisungen — keine CLAUDE.md / AGENTS.md / Editor-Regeln
0/15Maschinenlesbare Doku (llms.txt)
40/40Lesbare Commit-Historie — 55 von 55 menschlichen Commits benennen ihre Absicht (strukturierter Betreff oder erläuternder Text)
Verwendete Eingangsdaten
has_llms_txtnein
legible_history_share1
agent_instruction_files
agent_instruction_max_bytes
Wie die Bewertung erfolgt
12.6/18Bootstrap mit einem Befehl — go.mod (Toolchain-Konvention, kein Task-Runner)
22/22Automatisierte Tests
0/11Lint-/Format-Konfiguration
0/11Statische Typprüfung
10/10Reproduzierbare Umgebung — lockfile
0/10Belegte Agentenpraxis — keine von Agenten verfassten Commits unter den letzten 55
0/8Automatisierte Wartung — keine automatisierten Abhängigkeits-Updates beobachtet
0/10OpenSSF Scorecard: Pinned-Dependencies — keine Daten
Verwendete Eingangsdaten
has_nixnein
has_testsja
lockfilesgo.sum
has_dockerfilenein
typed_languagenein
bootstrap_files
has_devcontainernein
has_linter_confignein
typecheck_configs
agent_commit_share0
toolchain_manifestsgo.mod
dependency_bot_commit_share0
Von der Bewertung ausgeschlossen (keine Daten oder nicht anwendbar): OpenSSF Scorecard: Pinned-Dependencies. Die verbleibenden Gewichte wurden renormalisiert.
Wie die Bewertung erfolgt
0/45Typprüfbarer Code — Shell ohne Typprüfungs-Konfiguration
55/55Handhabbare Dateigrößen — 0/25 Quelldateien über 60 KB
Verwendete Eingangsdaten
primary_languageShell
largest_source_bytes14.042
source_files_sampled25
oversized_source_files0
Wie die Bewertung erfolgt
0/40API-Schema (OpenAPI/GraphQL/proto)
0/20MCP-Server
40/40Lauffähige Beispiele — examples
Verwendete Eingangsdaten
example_dirsexamples
has_mcp_signalnein
api_schema_files

Eckdaten

0GitHub-Sterne
1Mitwirkende
55Commits, letzte 12 Monate
4Tage seit letztem Push
1Releases
1Bus-Faktor
0offene Issues
GoPaket-Ökosysteme

Warnungen zur Datenerhebung

  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

Weitere Details

OpenSSF Scorecard 2.3 / 10
2.3Gesamtwert

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-27 18:11 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
k. A.CI-Testsno pull request found
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/30 approved changesets -- score normalized to 0
3Contributorsproject has 1 contributing companies or organizations -- score normalized to 3
k. A.Dangerous-Workflowno workflows found
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
0Licenselicense file not detected
0Maintainedproject was created within the last 90 days. Please review its contents carefully
k. A.Packagingpackaging workflow not detected
k. A.Pinned-Dependenciesno dependencies found
0SASTno SAST tool detected
0Security-Policysecurity policy file not detected
k. A.Signed-Releasesno releases found
k. A.Token-PermissionsNo tokens found
10Vulnerabilities0 existing vulnerabilities detected
Direkte Abhängigkeiten 1
RegistryPaketVersionsvorgabeManifest
Gogithub.com/gomutex/godocxv0.1.5go.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": [],
      "is_fork": false,
      "size_kb": 219,
      "has_wiki": true,
      "homepage": null,
      "languages": {
        "Go": 94302,
        "Shell": 98613
      },
      "pushed_at": "2026-07-23T07:04:26Z",
      "created_at": "2026-06-24T04:02:30Z",
      "owner_type": "User",
      "updated_at": "2026-07-23T07:05:38Z",
      "description": null,
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": null,
      "default_branch": "main",
      "license_spdx_raw": null,
      "primary_language": "Shell",
      "significant_languages": [
        "Shell",
        "Go"
      ]
    },
    "owner": {
      "blog": null,
      "name": "Rahman",
      "type": "User",
      "login": "rachmanzz",
      "company": null,
      "location": null,
      "followers": 8,
      "avatar_url": "https://avatars.githubusercontent.com/u/8124995?v=4",
      "created_at": "2014-07-10T13:34:07Z",
      "is_verified": null,
      "public_repos": 118,
      "account_age_days": 4400
    },
    "license": {
      "state": "absent",
      "spdx_id": null,
      "raw_spdx": null,
      "file_present": false,
      "scorecard_found": false,
      "profile_has_license": false
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.2.4",
          "kind": "patch",
          "published_at": "2026-07-14T08:30:49Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "1212ee3b61be7101b8ade3097146e970cb8654fb",
          "body": "OOXML spec requires all w:abstractNum before all w:num. Our injection\nwas interleaving them (abstractNum, num, abstractNum, num...) which\ncauses Office 365 to reject the numbering definitions and continue\nnumbering across sections. Added fixNumberingOrder() post-processor.",
          "is_bot": false,
          "headline": "fix: reorder numbering.xml so all abstractNum precede all num entries",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-23T07:04:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f9b33d6f005e0cd9c6464e7d051571b8e308e59a",
          "body": "- Add <w:nsid> unique ID to each abstractNum definition\n- Add <w:tabs><w:tab w:val='num' w:pos='...'/> for number alignment\n- Add <w:pStyle> inside lvl for style linkage\n- These elements are required by Office 365 for proper list rendering",
          "is_bot": false,
          "headline": "fix: Office 365 numbering compatibility",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-23T06:24:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6614b59abea54c1235716269eccaacc9036387a0",
          "body": null,
          "is_bot": false,
          "headline": "chore: remove unused functions (DataSet.Set, numFmtBaseID, numFmtName)",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-23T04:45:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6345d27d783a0a90c7f7e6dfda06d857b1043e98",
          "body": "…per OL\n\n- Add start=N attribute support for <ol> tags (e.g. <ol start=5>, <ol type=a start=3>)\n- Fix {{index}} not resolving in loops (was falling through to else branch)\n- Each <ol> now gets unique numId (100+) so numbering restarts per section\n- Add parseListStart() to extract start attribute from <ol> tags\n- Emit <w:lvlOverride>/<w:startOverride> in OOXML when start > 1\n- Update pendiri example with new template and data files",
          "is_bot": false,
          "headline": "feat: add OL start attribute, fix {{index}} resolution, unique numId …",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-23T04:43:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "68a6ecae00b1cfe850f5b665b1c2382b8054e7e9",
          "body": null,
          "is_bot": false,
          "headline": "feat: add indexType attribute for <loop> — supports a/A/i/I/1 formats",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-22T08:02:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c65d32136c81ee478eddc662bc2d9d5f4f38275c",
          "body": null,
          "is_bot": false,
          "headline": "fix: strip <p> tags inside <li> to prevent literal text in output",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-22T07:49:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "077f099d61b411824bcc137c467ea049da514dac",
          "body": "…ILL.md docs",
          "is_bot": false,
          "headline": "feat: add {{loop.index}} support in loops + pendirian-pt example + SK…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-22T06:56:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "63745426478efd309d45594aee6803d7660e36fc",
          "body": "- parsePageSize() now accepts unit param, applies unitScale() for custom layout\n- Fixes bug where unit=inch with layout=custom treated dimensions as mm (25.4x too small)\n- computeMargins() now supports m-t/m-b/m-l/m-r keys with dash (in addition to mt/mb/ml/mr)",
          "is_bot": false,
          "headline": "fix: custom page size unit conversion + m-t/m-b/m-l/m-r margin keys",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-22T05:08:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "38c7fd9ae90e29a1a795ffacc49e9f4669299f4e",
          "body": null,
          "is_bot": false,
          "headline": "fix: add root-level package for import github.com/rachmanzz/dcd",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-22T02:54:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a075d224ee70cf0517c87f6e9d2d0fa09257755d",
          "body": "- Add expandIndexPattern() in loops.go for {index+N} pattern (single braces)\n- Index starts at 0, so {index+1} = 1, 2, 3...\n- Works in all loop variants: <loop>, <loop:ol>, <loop:ul>, <loop:row>\n- Update expandLoopTemplate() to accept index parameter\n- Document tab inside <w:*> tags allowed in SKILL.md\n- Add Loop Index Counter subsection with examples in SKILL.md\n- Add code comments in body.go clarifying tab/br allowed in w: tags",
          "is_bot": false,
          "headline": "feat: add {index+N} loop index counter + tab inside w: tags",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-22T02:39:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "50e53a9511a8d66305059f1ecc928aaab5f10947",
          "body": "- Remove ^/$ anchors from tabRe regex so <tab/> matches anywhere\n  in inline text (not just standalone)\n- Add brInlineRe for <br> and <br/> in inline context\n- Add Break field to TextRun struct\n- Handle Break in AddParagraph (docx_paragraph.go) with <w:br/>\n- Handle Tab and Break in list renderer (docx_list.go)\n- Stress tests: 254 pass (unchanged)",
          "is_bot": false,
          "headline": "fix: support <tab/> and <br/> in inline context, add Break to TextRun",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-13T03:50:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8863d75691b51ef26134163b4efd11e194e91a00",
          "body": "When &lt;loop:ol&gt; or &lt;loop:ul&gt; had custom &lt;li&gt; tags in the body,\nexpandLoops still unconditionally wrapped each item in auto-generated\n&lt;li&gt;, creating double-nested &lt;li&gt; that rendered literal '<li>' text.\n\nNow detects whether the template body contains &lt;li&gt; — if it do\n[…]\nrd compatible:\ntemplates without &lt;li&gt; continue to get auto-wrapped as before.\n\nAdds docs/examples/loops.dcd showing loop:ol with type=a, type=I,\ninline formatting, and indent/hanging attributes.",
          "is_bot": false,
          "headline": "fix: skip auto-<li> in loop:ol/ul when template already contains <li>",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-12T23:30:35Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "e5b9a328bca9687deda3fc93e4bdb4971538f834",
          "body": "Phase 1: Extract shared helpers (DRY fix)\n- render/run_props.go: shared applyRunProps helper (dedup 3x)\n- internal/property/property.go: consolidated normalizePropertyKey\n\nPhase 2: Split render/docx.go (1584 -> ~242 lines)\n- render/docx_paragraph.go: heading, paragraph, breaks\n- render/docx_list.go:\n[…]\n1 -> ~60 lines)\n- render/page.go: page geometry\n- render/format.go: date/value formatting\n\nTotal: 3235 -> ~872 lines, +10 new files\nAll stress tests pass (254/257, 3 failures are missing test fixture)",
          "is_bot": false,
          "headline": "refactor: SRP & KISS compliance - split large files into focused modules",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-12T10:48:10Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "bcde81fc51d7f4bc2c5d208afa0b2e504a5be639",
          "body": "- Add applyIndent() to set pPr.Indent.Left and pPr.Indent.Hanging\n- Support inline <p indent=X hanging=Y> and <li indent=X hanging=Y>\n- Support global [style] indent=/hanging= defaults\n- Document indent/hanging in SKILL.md (Paragraph section + Paragraph Properties)\n- Fix SKILL.md var example: entries -> []entries to match validation rules",
          "is_bot": false,
          "headline": "feat: add indent/hanging paragraph-level support",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-07-10T07:19:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c78d15b7b384aa5e4cb8f8e5163b738e9eb64efc",
          "body": "…p) + 256 stress tests\n\nBug fixes:\n- brRe/hrRe/pageBreakRe regex: add /?$ to match self-closing <br/> <pb/> <hr/>\n- setRe: accept </set> (without flags) as valid close for <set:flags>\n- AddSectionBreak: implement proper continuous/even-page/odd-page breaks\n- AddWrappedParagraph: already had mark/sub\n[…]\nubject/author,\nheading style gaps, body built-in vars, <set:mark/sub/sup>, container combos,\ntable attr parsing, <w:r> <w:j> blocks, section type variants, link attrs,\nand 21 new error paths (E32-E52)",
          "is_bot": false,
          "headline": "fix: 4 bugs (br self-close, </set>, section:continuous, w mark/sub/su…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-07-10T00:51:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "41f511d65b9789724967ab0c2f1b0d32035f0f31",
          "body": null,
          "is_bot": false,
          "headline": "fix: correct section limits to 5 var, 15 keys",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-07-09T15:39:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80d3b255b994a288d84e328bfc60a4fe4f3e6141",
          "body": null,
          "is_bot": false,
          "headline": "docs: update PLAN.md with completed dcdmaker sync items",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-07-09T15:05:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "758d7ddca53c74b2affb97791acc5f36e149f898",
          "body": null,
          "is_bot": false,
          "headline": "feat: enforce [] prefix and dot-notation rules in var=/keys= validation",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-07-09T15:01:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df11c678666eca6f3c9f35e29422b3da67ac894a",
          "body": "…d; fix indentation of case cur != nil",
          "is_bot": false,
          "headline": "fix: remove ':' separator fallback in section props; only '=' is vali…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-29T02:03:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "da536aafe72804c1372e3c5e9c1f2197b1dca667",
          "body": "…L); demo justify_between in features",
          "is_bot": false,
          "headline": "docs: document hyperlink limitation (godocx lacks Hyperlink MarshalXM…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-28T16:01:43Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8b2f782a88a983894df69ede6e5bd7ad025ac721",
          "body": "…cript",
          "is_bot": false,
          "headline": "fix: scope dcd gitignore to root only; add missing examples to test s…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-28T15:29:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2c82669c83e7365c9a42c2fcfd1413bffe3e20d",
          "body": "…variant enforcement; CLI version+format; link target parsing",
          "is_bot": false,
          "headline": "fix: propagate w:u underline attrs to runs; multi-line p/w/col; loop …",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-28T15:25:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52328e455d8f24228ac2ce7beee1e47361d2ce81",
          "body": "…ine variants, keep/next, mirror; remove PDF; restructure docs",
          "is_bot": false,
          "headline": "feat: complete API/CT feature set — inline tags, nested lists, underl…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-27T06:26:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "99dba8c6de326dd4b4414b9ffd423c3239479c6a",
          "body": null,
          "is_bot": false,
          "headline": "feat: font-size and color attrs for w, p, col, li tags",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-26T07:32:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df406477017ce1dce0ead0bb77d499bebd5273d9",
          "body": null,
          "is_bot": false,
          "headline": "feat: paragraph alignment (p align=center/right/justify, w:r, w:j)",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-26T06:46:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2aca7994dde60c92cfcf3f2c3b6482754d7a1f1",
          "body": null,
          "is_bot": false,
          "headline": "feat: add <tab> and <tab size=N> support in body content",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-26T06:20:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2cf1fa927d7ae33fe86a544766fe91a79896a7d3",
          "body": "- CHANGES.md: add v0.2.1 entry (justify_between, {{page}} fix, XML safety)\n- PROJECT-STATUS.md: rewrite for v0.2.1\n- NEW-FEATURES.md: add justify_between section\n- docs/style.md: add justify_between properties and example\n- docs/format.md: add justify_between reference\n- docs/overview.md: add justify_between to features list",
          "is_bot": false,
          "headline": "docs: update changelog, status, and docs for v0.2.1",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-26T03:42:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80833cc004a2f1a7b5b19d2bfb8d0d69ac465177",
          "body": "…een support\n\n- Fix {{page}} to render only PAGE field (not combined with NUMPAGES)\n- Remove redundant resolveHeaderVar function and its dead-code call in SetFooter\n- Segment-based OOXML generation: text runs, field codes, and tab stops as proper sibling elements\n- XML escape for {{title}} and all t\n[…]\nlash-comma (\\,) for justify_between values\n- Tab positions auto-calculated from page width and margins (default A4 fallback)\n- Update dcd-documents skill with justify_between documentation and example",
          "is_bot": false,
          "headline": "feat: docx header/footer segment-based architecture with justify_betw…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-26T03:36:26Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "d6dc32bc5200f68c82d35ffcbfc4e6cb9cc8873e",
          "body": "…doc alignment\n\n- render/compiler.go: remove keys/var validation error (pass-through), add {{title}} resolveSectionBuiltins\n- render/docx.go: add unit field, implement header/footer margin (PageMargin.Header/Footer) and first-page (TitlePg)\n- .agents/skills/dcd-documents/SKILL.md: consistent loop closing tags, mark unsupported features (thick, mirror, colspan/rowspan), document built-in vars and : separator",
          "is_bot": false,
          "headline": "feat: docx margin/first-page support, unregistered var pass-through, …",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-25T04:29:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c2e8a172da735f3a0794dabde79a7a13e74651dc",
          "body": "…d code",
          "is_bot": false,
          "headline": "clean: remove hallucinated section-level properties from docs and dea…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T16:15:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "08ab0b47f6b2e2c0e3d44aff016bd78390180c4b",
          "body": "…y and Go code",
          "is_bot": false,
          "headline": "fix: remove AI-hallucinated layout from section props in document-bod…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T16:14:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6e761e0dd4b32dbd698946cbc02978185311ac71",
          "body": "…ayout, orientation, start-page, title)",
          "is_bot": false,
          "headline": "fix: remove AI-hallucinated section properties from document-break (l…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T16:13:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "956a5b6455677033bb7a22d2b4cc017d0dd23953",
          "body": "… only",
          "is_bot": false,
          "headline": "fix: remove orientation from section props (fatal error), keep layout…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T16:12:19Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "42753f1292677ebb9532435a37ee7a8d1649e315",
          "body": "…ented in document-break",
          "is_bot": false,
          "headline": "fix: revert start-page from general section props, mark as not implem…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T16:11:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "14fa7470b2f39b9536d771cfcd3fbc789ecc4923",
          "body": null,
          "is_bot": false,
          "headline": "docs: add start-page to Section properties table",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T16:10:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f6875d10568d538795afcabae66e832c0e4022e5",
          "body": "…yout/orientation to document-body.md Section table",
          "is_bot": false,
          "headline": "fix: correct layout/orientation property in document-break.md, add la…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T16:09:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1bd27bd3078993d406e8306249467579e43e5ad0",
          "body": null,
          "is_bot": false,
          "headline": "docs(examples): add name=demo and keys= to section 0 in set-tag-demo.dcd",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:15:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5cb428b1277b9da5760bf10f0c299674d2032f2f",
          "body": null,
          "is_bot": false,
          "headline": "docs(examples): add keys= to section without var in inline-test.dcd",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:15:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2349ae3a159d1a00d0a94081cbf9c0a231a9a321",
          "body": null,
          "is_bot": false,
          "headline": "docs(examples): add keys= to section without var in features.dcd",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:15:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2653a83536b8e6ae71d9785fa902060fb676e344",
          "body": null,
          "is_bot": false,
          "headline": "docs(examples): add keys= to sections without var in simple.dcd",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:15:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "af602f48589c381c2fbd7d77f04763e7eb36e7e1",
          "body": null,
          "is_bot": false,
          "headline": "docs(examples): add keys=date and fix format specifier in report.dcd",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:15:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "011817d92a3a2a75bff4bcca0d5f359444730dcb",
          "body": null,
          "is_bot": false,
          "headline": "docs(examples): add keys=date, formats, and total to keys in invoice.dcd",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:15:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "72f8bcf82fadc0841d6fcb58f5473f404e7c91b8",
          "body": null,
          "is_bot": false,
          "headline": "docs: update <w:> closing tags and add i/u block variants",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:15:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d2d66518f445d562f3c4937496b15f6ac90e628f",
          "body": null,
          "is_bot": false,
          "headline": "docs: fix section example - add keys and use skill format specifiers",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "74b152fcfc21895acb047bdb7fc2f392069e73cb",
          "body": null,
          "is_bot": false,
          "headline": "docs: update <w:flags> closing tag and add i/u description",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0933fdab74a17d4e9c6a8a0ed84990a36d1c05db",
          "body": "…, add Format Specifiers section",
          "is_bot": false,
          "headline": "docs: update format specifiers from GoDateFormat to custom specifiers…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:49Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a4bffc68627d0cbe08b11061672848e63889ed4d",
          "body": "…rs, keys/var rules",
          "is_bot": false,
          "headline": "docs(skill): update <w:> closing tags, add i/u flags, format specifie…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:46Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "abeb68fe9c423a9ca934709bd120dc4a48d08635",
          "body": "…ph in PDF",
          "is_bot": false,
          "headline": "feat: add italic (i) and underline (u) flags for <w:> wrapped paragra…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ee1be46a1085e12b462102933f634a8857444f13",
          "body": "…ph in DOCX",
          "is_bot": false,
          "headline": "feat: add italic (i) and underline (u) flags for <w:> wrapped paragra…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4ada243cb85265de2b1e08ae29448f880fca9fb6",
          "body": null,
          "is_bot": false,
          "headline": "fix: enforce matching closing tag for <w:flags> (e.g. <w:c></w:c>)",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:35Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c663ac9766bdd3daf898d9435f989ff2dcf15a5b",
          "body": null,
          "is_bot": false,
          "headline": "feat: add validateSectionProps for var/keys/formats rules",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:31Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69aa68d5ad2dd644f09a2cf70697625e548dbd79",
          "body": null,
          "is_bot": false,
          "headline": "test: add tests for convertFormat and applyFormat",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "353e43fb0aad042b83bee141e79c69519c17508d",
          "body": "… mm, ss)",
          "is_bot": false,
          "headline": "feat: add convertFormat for custom date specifiers (dd, MM, yyyy, HH,…",
          "author_name": "Muhammad Abdurrahman",
          "author_login": "rachmanzz",
          "committed_at": "2026-06-24T13:14:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a89c3a58c5a96ed34788d00b5f295a5602d82977",
          "body": "BREAKING CHANGES:\n- Rename font-color → color (global consistency)\n- Rename shading → bg (global consistency)\n- Change [table-style] → [style:table] (format consistency)\n\nNEW FEATURES:\n- <set:flags> tag for combined inline formatting\n- style.first attribute for loop styling\n- style={{var}} for dynam\n[…]\nsive\n- All audiences supported\n- Migration support complete\n\nSee CHANGES.md for complete migration guide.\nSee NEW-FEATURES.md for feature documentation.\nSee for-ai-agents.md for AI assistant guidance.",
          "is_bot": false,
          "headline": "v0.2.0: Complete implementation with full documentation",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-24T09:59:55Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "65bde4dffa326bebc4a66c3f7115329606b9beac",
          "body": "Core:\n- Parser: INI-style [section] format with = and : separators\n- Renderer: DOCX (godocx) and PDF (gpdf) backends\n- Compiler: section pipeline with loop expansion, variable resolution, formatting\n- DataSet: variable store with dot-path resolution and struct support\n\nFeatures:\n- Headings (h1-h6) w\n[…]\nts= property\n\nDocumentation:\n- .agents/skills/: 10 skill specification files\n- docs/: overview, format, tags, style, CLI, library references\n- docs/examples/: simple, report, invoice, feature showcase",
          "is_bot": false,
          "headline": "Initial commit: DCD document compiler",
          "author_name": "Muhammad Abdurrahman",
          "author_login": null,
          "committed_at": "2026-06-24T06:23:16Z",
          "body_truncated": true,
          "is_coding_agent": false
        }
      ],
      "releases_count": 1,
      "commits_last_year": 55,
      "latest_release_at": "2026-07-14T08:30:49Z",
      "latest_release_tag": "v0.2.4",
      "releases_from_tags": false,
      "days_since_last_push": 4,
      "active_weeks_last_year": 5,
      "days_since_latest_release": 13,
      "mean_days_between_releases": null
    },
    "community": {
      "has_readme": true,
      "has_license": false,
      "has_description": false,
      "has_contributing": false,
      "health_percentage": 14,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": [
        {
          "name": "github.com/rachmanzz/dcd",
          "exists": true,
          "license": null,
          "keywords": [],
          "ecosystem": "go",
          "matches_repo": true,
          "registry_url": "https://pkg.go.dev/github.com/rachmanzz/dcd",
          "is_deprecated": false,
          "latest_version": "v0.2.6",
          "repository_url": "https://github.com/rachmanzz/dcd",
          "versions_count": 12,
          "total_downloads": null,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-22T02:54:13Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 5
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 0,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_stars": 0,
        "collected_at": null
      },
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "examples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 14042,
      "source_files_sampled": 25,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "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/gomutex/godocx",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.1.5"
        }
      ],
      "all_dependencies": {
        "error": "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository",
        "source": null,
        "packages": [],
        "collected": false,
        "truncated": false,
        "total_count": null,
        "direct_count": null,
        "indirect_count": null
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 0,
        "merged_prs": 0,
        "open_issues": 0,
        "closed_ratio": null,
        "closed_issues": 0,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "rachmanzz",
          "commits": 29,
          "avatar_url": "https://avatars.githubusercontent.com/u/8124995?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": false,
      "has_tests": true,
      "ci_workflows": [],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": false,
      "has_linter_config": false,
      "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": null,
            "reason": "no pull request found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/30 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 3,
            "reason": "project has 1 contributing companies or organizations -- score normalized to 3",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": null,
            "reason": "no workflows found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 0,
            "reason": "license file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 0,
            "reason": "project was created within the last 90 days. Please review its contents carefully",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": null,
            "reason": "packaging workflow not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": null,
            "reason": "no dependencies found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "no SAST tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 0,
            "reason": "security policy file not detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": null,
            "reason": "no releases found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": null,
            "reason": "No tokens found",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "1212ee3b61be7101b8ade3097146e970cb8654fb",
        "ran_at": "2026-07-27T18:11:31Z",
        "aggregate_score": 2.3,
        "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": null,
      "oldest_open_prs": [],
      "last_merged_pr_at": null,
      "ci_last_conclusion": null,
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/rachmanzz/dcd",
    "host": "github.com",
    "name": "dcd",
    "owner": "rachmanzz"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "at_risk",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 38,
      "inputs": {
        "security": 23,
        "vitality": 67,
        "community": 12,
        "governance": 37,
        "engineering": 44
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "moderate",
        "name": "Vitality",
        "value": 67,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "commits_last_year": 55,
              "human_commit_share": 1,
              "days_since_last_push": 4,
              "active_weeks_last_year": 5
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 4 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 4
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "5/52 weeks with commits",
                "points": 3.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 5
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "55 commits in the last year",
                "points": 15.7,
                "status": "partial",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 55
                    }
                  }
                ],
                "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": "good",
            "name": "Release discipline",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Signed-Releases. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_signed_releases"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 84,
            "inputs": {
              "releases_count": 1,
              "latest_release_tag": "v0.2.4",
              "releases_from_tags": false,
              "days_since_latest_release": 13,
              "mean_days_between_releases": null
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "1 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 13 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 13
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "cadence unknown (single release)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "release_cadence_unknown",
                    "params": {}
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "critical",
        "name": "Community & Adoption",
        "value": 12,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 0,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "0 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "critical",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 25,
            "inputs": {
              "has_readme": true,
              "has_license": false,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "no license file detected",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "license_absent",
                    "params": {}
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 18
              },
              {
                "key": "code_of_conduct",
                "name": "Code of conduct",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 13.5
              },
              {
                "key": "issue_template",
                "name": "Issue template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.2
              },
              {
                "key": "pr_template",
                "name": "PR template",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.3
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "at_risk",
        "name": "Sustainability & Governance",
        "value": 37,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 13,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "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 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 3,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "critical",
            "name": "Issue & PR responsiveness",
            "note": "Excluded from scoring (no data or not applicable): Issue resolution, PR acceptance. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "issue_resolution",
                    "pr_acceptance"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 1,
            "inputs": {
              "merged_prs": 0,
              "open_issues": 0,
              "closed_issues": 0,
              "issue_closed_ratio": null,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "no issues or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_issues_or_data",
                    "params": {}
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "no decided pull requests or no data",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_decided_prs_or_data",
                    "params": {}
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "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": 52,
            "inputs": {
              "followers": 8,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "rachmanzz",
              "public_repos": 118,
              "account_age_days": 4400
            },
            "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": "8 followers of rachmanzz",
                "points": 6.9,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 8,
                      "login": "rachmanzz"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "118 public repos, account ~12 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 118
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 12
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "github.com/rachmanzz/dcd"
              ],
              "ecosystems": "go",
              "any_deprecated": false,
              "min_days_since_publish": 5
            },
            "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 5 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 5
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "12 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 12
                    }
                  }
                ],
                "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": "at_risk",
        "name": "Engineering Quality",
        "value": 44,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "at_risk",
            "name": "Engineering practices",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_ci_tests"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 30,
            "inputs": {
              "has_ci": false,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 24
              },
              {
                "key": "tests_present",
                "name": "Tests present",
                "detail": null,
                "points": 24,
                "status": "met",
                "details": [],
                "max_points": 24
              },
              {
                "key": "linter_config",
                "name": "Linter config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 16
              },
              {
                "key": "pre_commit_hooks",
                "name": "Pre-commit hooks",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 9.6
              },
              {
                "key": "editorconfig",
                "name": ".editorconfig",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [],
              "has_wiki": true,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "critical",
        "name": "Security",
        "value": 23,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "critical",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): CI-Tests, Dangerous-Workflow, Packaging, Pinned-Dependencies, Signed-Releases, Token-Permissions. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "ci_tests",
                    "dangerous_workflow",
                    "packaging",
                    "pinned_dependencies",
                    "signed_releases",
                    "token_permissions"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 23,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 12,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 6,
              "scorecard_aggregate": 2.3
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "no pull request found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/30 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 1 contributing companies or organizations -- score normalized to 3",
                "points": 0.8,
                "status": "partial",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no workflows found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "project was created within the last 90 days. Please review its contents carefully",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow not detected",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "no SAST tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file not detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "no releases found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "No tokens found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "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": 1
            },
            "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": "at_risk",
        "name": "AI Readiness",
        "value": 46,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 1,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "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": "55 of 55 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 55,
                      "sampled": 55
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: Pinned-Dependencies. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "openssf_scorecard_pinned_dependencies"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 50,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": false,
              "typed_language": false,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "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": "go.mod (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "go.mod"
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "automated_tests",
                "name": "Automated tests",
                "detail": null,
                "points": 22,
                "status": "met",
                "details": [],
                "max_points": 22
              },
              {
                "key": "lint_format_config",
                "name": "Lint / format config",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 11
              },
              {
                "key": "static_type_checking",
                "name": "Static type checking",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "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 55",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_authored_commits",
                    "params": {
                      "sampled": 55
                    }
                  }
                ],
                "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": "no dependencies found",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "moderate",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 55,
            "inputs": {
              "primary_language": "Shell",
              "largest_source_bytes": 14042,
              "source_files_sampled": 25,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Shell without a type-check config",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_typecheck_config_language",
                    "params": {
                      "language": "Shell"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/25 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 25,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "examples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "examples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "examples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "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": [
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-27T18:11:36.478493Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/r/rachmanzz/dcd.svg",
  "full_name": "rachmanzz/dcd",
  "license_state": "absent",
  "license_spdx": null
}

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.