{
  "schema": 1,
  "tier": "growth",
  "scope": [
    "Configuration checks across discoverability, README conversion, trust, security hygiene, CI and owner profile",
    "Evidence link and copy-paste fix for every finding",
    "HTML, Markdown and fixes.sh exports",
    "Full file-tree scan for committed secrets, keys and vendored dependencies",
    "Known-vulnerability lookup for every locked dependency version (OSV database)",
    "AI and registry discoverability: llms.txt, MCP Registry, Smithery and Glama descriptors"
  ],
  "rulesVersion": "2026.10.2",
  "repo": "onezeroooo/obsidian-writing-buddy",
  "headSha": "0c88e2681bc64e9dc48c41464d5eb1ec6542e749",
  "generatedAt": "2026-10-27T18:34:10.256Z",
  "collectedAt": "2026-10-27T18:32:10.256Z",
  "score": {
    "total": 76,
    "byCategory": {
      "discoverability": 72,
      "conversion": 92,
      "trust": 72,
      "security": 60,
      "maintenance": 80,
      "profile": 72
    }
  },
  "findings": [
    {
      "ruleId": "O03",
      "category": "profile",
      "severity": "P1",
      "title": "onezeroooo/obsidian-writing-buddy is not pinned on the onezeroooo profile",
      "evidence": [
        "api:organization.pinnedItems=\"\""
      ],
      "fix": {
        "steps": [
          "Open github.com/onezeroooo -> Customize your pins -> select obsidian-writing-buddy."
        ]
      },
      "effort": "1m"
    },
    {
      "ruleId": "S02",
      "category": "security",
      "severity": "P1",
      "title": "No Dependabot or Renovate config: vulnerable dependencies stay pinned silently",
      "evidence": [
        "tree:.github/dependabot.yml not found",
        "tree:renovate.json not found"
      ],
      "fix": {
        "steps": [
          "Commit .github/dependabot.yml."
        ],
        "snippet": "version: 2\nupdates:\n  - package-ecosystem: \"npm\"\n    directory: \"/\"\n    schedule:\n      interval: weekly"
      },
      "effort": "1m"
    },
    {
      "ruleId": "D04",
      "category": "discoverability",
      "severity": "P1",
      "title": "No custom social preview: links shared on X, Slack, HN, Reddit render a generic card",
      "evidence": [
        "api:repository.usesCustomOpenGraphImage=false"
      ],
      "fix": {
        "steps": [
          "Create a 1280x640 PNG (logo, name, one-line value prop).",
          "Settings -> General -> Social preview -> Edit -> Upload."
        ],
        "settingsUrl": "https://github.com/onezeroooo/obsidian-writing-buddy/settings"
      },
      "effort": "10m"
    },
    {
      "ruleId": "M01",
      "category": "maintenance",
      "severity": "P1",
      "title": "No CI: no visible signal that the main branch builds and tests pass",
      "evidence": [
        "tree:.github/workflows/ not found",
        "tree:no other CI config at root"
      ],
      "fix": {
        "steps": [
          "Add a minimal workflow: install, lint, test on push and pull_request.",
          "Add the status badge to the README header."
        ]
      },
      "effort": "10m"
    },
    {
      "ruleId": "S01",
      "category": "security",
      "severity": "P1",
      "title": "Default branch \"main\" has no protection or rulesets: force-push and history rewrite are possible",
      "evidence": [
        "api:branches/main.protected=false",
        "api:rules/branches/main=[]"
      ],
      "fix": {
        "steps": [
          "Settings -> Rules -> Rulesets -> New branch ruleset targeting the default branch.",
          "Enable: block force pushes, restrict deletions, require status checks."
        ],
        "settingsUrl": "https://github.com/onezeroooo/obsidian-writing-buddy/settings/rules"
      },
      "effort": "10m"
    },
    {
      "ruleId": "T03",
      "category": "trust",
      "severity": "P1",
      "title": "No security policy: researchers have no private channel, vulnerabilities land in public issues",
      "evidence": [
        "api:repository.isSecurityPolicyEnabled=false"
      ],
      "fix": {
        "steps": [
          "Add .github/SECURITY.md.",
          "Enable Settings -> Code security -> Private vulnerability reporting."
        ],
        "snippet": "# Security policy\n\n## Reporting a vulnerability\n\nPlease do not open public issues for security problems.\nUse GitHub private vulnerability reporting (Security tab -> Report a vulnerability)\nor email: <security-contact@your-domain>.\n\nWe acknowledge reports within 3 business days.",
        "settingsUrl": "https://github.com/onezeroooo/obsidian-writing-buddy/settings/security_analysis"
      },
      "effort": "10m"
    },
    {
      "ruleId": "C03",
      "category": "conversion",
      "severity": "P2",
      "title": "README has no screenshot, GIF or diagram",
      "evidence": [
        "file:README.md:1-9 0 images, all badges or none"
      ],
      "fix": {
        "steps": [
          "Add a GIF or screenshot of the tool in action directly under the title (before the first ## section).",
          "Store it in the repo (e.g. .github/assets/demo.gif) so it never breaks."
        ]
      },
      "effort": "10m"
    },
    {
      "ruleId": "G01",
      "category": "discoverability",
      "severity": "P2",
      "title": "No llms.txt: AI coding assistants and LLM crawlers get no curated map of the docs",
      "evidence": [
        "tree:llms.txt not found (root, docs/)"
      ],
      "fix": {
        "steps": [
          "Add llms.txt (llmstxt.org format): H1 project name, one-line summary, links to key docs and examples.",
          "Serve it from the homepage root too if you have a docs site."
        ],
        "snippet": "# obsidian-writing-buddy\n\n> Writing Buddy - an AI-assisted long-form writing workspace for Obsidian.\n\n## Docs\n\n- [README](https://github.com/onezeroooo/obsidian-writing-buddy#readme)"
      },
      "effort": "10m"
    },
    {
      "ruleId": "O02",
      "category": "profile",
      "severity": "P2",
      "title": "No organization profile README (onezeroooo/.github/profile/README.md)",
      "evidence": [
        "api:repository(onezeroooo/.github) has no profile/README"
      ],
      "fix": {
        "steps": [
          "Create public repo onezeroooo/.github with profile/README.md."
        ]
      },
      "effort": "10m"
    },
    {
      "ruleId": "T02",
      "category": "trust",
      "severity": "P2",
      "title": "Missing contribution scaffolding: CONTRIBUTING.md, CODE_OF_CONDUCT.md, .github/ISSUE_TEMPLATE/, .github/pull_request_template.md",
      "evidence": [
        "tree:CONTRIBUTING.md not found (repo root, .github/, docs/, onezeroooo/.github defaults)",
        "tree:CODE_OF_CONDUCT.md not found (repo root, .github/, docs/, onezeroooo/.github defaults)",
        "tree:.github/ISSUE_TEMPLATE/ not found (repo root, .github/, docs/, onezeroooo/.github defaults)",
        "tree:.github/pull_request_template.md not found (repo root, .github/, docs/, onezeroooo/.github defaults)"
      ],
      "fix": {
        "steps": [
          "Insights -> Community standards lists and generates these files.",
          "Or define them once for all repos in onezeroooo/.github."
        ],
        "settingsUrl": "https://github.com/onezeroooo/obsidian-writing-buddy/community"
      },
      "effort": "10m"
    }
  ],
  "passed": [
    {
      "ruleId": "D01",
      "name": "Repository description is set"
    },
    {
      "ruleId": "D02",
      "name": "Topics cover language and domain"
    },
    {
      "ruleId": "D06",
      "name": "Published releases"
    },
    {
      "ruleId": "C01",
      "name": "README present"
    },
    {
      "ruleId": "C02",
      "name": "Install or quickstart near the top of README"
    },
    {
      "ruleId": "C04",
      "name": "README relative links and images resolve"
    },
    {
      "ruleId": "T01",
      "name": "Recognized license"
    },
    {
      "ruleId": "T06",
      "name": "Project is active"
    },
    {
      "ruleId": "S06",
      "name": "No secrets or vendored dependencies committed"
    },
    {
      "ruleId": "M02",
      "name": "Default branch checks green"
    },
    {
      "ruleId": "O01",
      "name": "Owner profile fields filled"
    }
  ],
  "skipped": [
    {
      "ruleId": "S03",
      "reason": "no workflow files"
    },
    {
      "ruleId": "S04",
      "reason": "no workflow files"
    },
    {
      "ruleId": "S05",
      "reason": "no workflow files"
    },
    {
      "ruleId": "S07",
      "reason": "published library: lockfile optional"
    },
    {
      "ruleId": "M03",
      "reason": "fewer than 5 non-merge commits sampled"
    },
    {
      "ruleId": "V01",
      "reason": "no supported lockfile (package-lock.json, uv.lock, poetry.lock, Cargo.lock, pinned requirements.txt)"
    },
    {
      "ruleId": "G02",
      "reason": "not an MCP server"
    }
  ],
  "benchmark": {
    "query": "topic:typescript fork:false archived:false",
    "rows": [
      {
        "repo": "onezeroooo/obsidian-writing-buddy",
        "self": true,
        "stars": 246,
        "score": 78,
        "byCategory": {
          "discoverability": 80,
          "conversion": 92,
          "trust": 72,
          "security": 60,
          "maintenance": 80,
          "profile": 72
        }
      },
      {
        "repo": "obsidianmd/obsidian-sample-plugin",
        "self": false,
        "stars": 12500,
        "score": 91,
        "byCategory": {
          "discoverability": 100,
          "conversion": 92,
          "trust": 92,
          "security": 80,
          "maintenance": 80,
          "profile": 100
        }
      },
      {
        "repo": "SilentVoid13/Templater",
        "self": false,
        "stars": 9300,
        "score": 91,
        "byCategory": {
          "discoverability": 100,
          "conversion": 92,
          "trust": 92,
          "security": 80,
          "maintenance": 80,
          "profile": 100
        }
      },
      {
        "repo": "javalent/admonitions",
        "self": false,
        "stars": 6100,
        "score": 91,
        "byCategory": {
          "discoverability": 100,
          "conversion": 92,
          "trust": 92,
          "security": 80,
          "maintenance": 80,
          "profile": 100
        }
      }
    ]
  },
  "meta": {
    "subrequests": 0,
    "errors": [],
    "stars": 246,
    "forks": 25,
    "ownerType": "Organization",
    "deep": true
  }
}