Public record
Software health reportschema 0.27.0 · metrics 1.13.0 · 2026-07-24 12:47 UTC

xadnavyaai / vectraguard

Bash Guard for Coding Agents

Go · ShellApache-2.0★ 86 stars⑂ 2 forkssince Dec 2025View on GitHub ↗

xadnavyaai/vectraguard holds a health index of 54 out of 100, placing it in the Moderate band. It scores highest on AI Readiness (81/100) and lowest on Security (38/100). It was last updated 6 days ago. A single contributor accounts for most of its recent work.

54
overall / 100
Moderate

Software health index

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

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

Score profile

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

Ownership

xadnavyaaiPersonal account
4 followers8 public repossince Apr 2024

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

Metrics by category

Vitality

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

76Good · 22% of overall
How it's scored
36/36Push recency — last push 6 days ago
6.9/36Commit cadence — 10/52 weeks with commits
18/18Commit volume — 183 commits in the last year
5/10OpenSSF Scorecard: Maintained — 6 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5
Inputs used
commits_last_year183
human_commit_share1
days_since_last_push6
active_weeks_last_year10
How it's scored
27/27Ships releases — 10 releases published
36/36Release recency — latest release 6 days ago
27/27Release cadence — a release every ~20.3 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count10
latest_release_tagv0.7.1
releases_from_tagsno
days_since_latest_release6
mean_days_between_releases20.3

Community & Adoption

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

42At risk · 18% of overall
How it's scored
31.3/60Stars — 86 stars
0/25Forks — 2 forks
3.3/15Watchers — 5 watchers
Inputs used
forks2
stars86
watchers5
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonno_history
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (Apache-2.0)
0/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
0/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingno
has_issue_templateno
has_code_of_conductno
has_pull_request_templateno

Sustainability & Governance

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

41At risk · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
0.1/22.5Commit distribution — top contributor authored 100% of commits
2.7/13.5Contributor breadth — 2 contributors
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Inputs used
bus_factor1
contributors_sampled2
top_contributor_share0.995
How it's scored
46.8/46.8Issue resolution — 100% of issues closed
38.2/38.3PR acceptance — 16/16 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/22 approved changesets -- score normalized to 0
Inputs used
merged_prs16
open_issues0
closed_issues2
issue_closed_ratio1
closed_unmerged_prs0
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
5/25Owner reach — 4 followers of xadnavyaai
11.5/25Track record — 8 public repos, account ~2 yr old
Inputs used
followers4
owner_typeUser
is_verified
owner_loginxadnavyaai
public_repos8
account_age_days833
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.

Engineering Quality

Are baseline engineering and documentation practices in place?

67Moderate · 20% of overall
How it's scored
24/24CI workflows — 3 workflow(s)
24/24Tests present
0/16Linter config
0/9.6Pre-commit hooks
0/6.4.editorconfig
20/20OpenSSF Scorecard: CI-Tests — 2 out of 2 merged PRs checked by a CI test -- score normalized to 10
Inputs used
has_ciyes
has_testsyes
has_editorconfigno
has_linter_configno
has_precommit_configno

Documentation

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

Security

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

38At risk · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — no data
2.5/2.5CI-Tests — 2 out of 2 merged PRs checked by a CI test -- score normalized to 10
0/2.5CII-Best-Practices — no effort to earn an OpenSSF best practices badge detected
0/7.5Code-Review — Found 0/22 approved changesets -- score normalized to 0
0/2.5Contributors — project has 0 contributing companies or organizations -- score normalized to 0
10/10Dangerous-Workflow — no dangerous workflow patterns detected
0/7.5Dependency-Update-Tool — no update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
3.8/7.5Maintained — 6 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5
0/5Packaging — no data
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
0/5SAST — SAST tool is not run on all commits -- score normalized to 0
2/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
0/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
6.8/7.5Vulnerabilities — 1 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated16
scorecard_versionv5.5.0
checks_inconclusive2
scorecard_aggregate3.8
Excluded from scoring (no data or not applicable): branch_protection, packaging. Remaining weights renormalized.

AI Readiness

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

81Good · 0% of overall
How it's scored
45/45Agent instructions — CLAUDE.md, internal/seed/templates/.openclaw/AGENTS.md, internal/seed/templates/AGENTS.md, internal/seed/templates/CLAUDE.md
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 81 of 100 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.81
agent_instruction_filesCLAUDE.md, internal/seed/templates/.openclaw/AGENTS.md, internal/seed/templates/AGENTS.md, internal/seed/templates/CLAUDE.md
agent_instruction_max_bytes5,180
How it's scored
18/18One-command bootstrap — Makefile
22/22Automated tests
0/11Lint / format config
11/11Static type checking — Go (statically typed)
10/10Reproducible environment — Dockerfile, lockfile
10/10Demonstrated agent practice — 17 of the last 100 commits agent-authored or agent-credited
0/8Automated maintenance — no automated dependency updates observed
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfilesgo.sum
has_dockerfileyes
typed_languageyes
bootstrap_filesMakefile
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0.17
toolchain_manifestsgo.mod
dependency_bot_commit_share0
How it's scored
45/45Type-checkable code — Go (statically typed)
55/55Manageable file sizes — 0/150 source files over 60KB
Inputs used
primary_languageGo
largest_source_bytes39,044
source_files_sampled150
oversized_source_files0

Key facts

86GitHub stars
2contributors
183commits, last 12 months
6days since last push
10releases
1bus factor
0open issues
Gopackage ecosystems

Data collection warnings

  • Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token
  • Could not fetch go package 'github.com/vectra-guard/vectra-guard' from its registry
  • GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository

More detail

Star and fork history 0 ★ / 2 ⇿
0Stars
2Forks

When each star and fork was added, collected from GitHub and bucketed by day. Cumulative growth sits directly above the daily additions it is made of, so the two read against each other: steady organic accretion looks nothing like an abrupt, short-lived burst. Where that difference is measurable, it is reported as growth authenticity.

111222212026-032026-032026-03
OpenSSF Scorecard 3.8 / 10
3.8aggregate

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

10Binary-Artifactsno binaries found in the repo
n/aBranch-Protectioninternal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md
10CI-Tests2 out of 2 merged PRs checked by a CI test -- score normalized to 10
0CII-Best-Practicesno effort to earn an OpenSSF best practices badge detected
0Code-ReviewFound 0/22 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
0Dependency-Update-Toolno update tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
5Maintained6 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5
n/aPackagingpackaging workflow not detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
0SASTSAST tool is not run on all commits -- score normalized to 0
4Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
0Token-Permissionsdetected GitHub workflow tokens with excessive permissions
9Vulnerabilities1 existing vulnerabilities detected
Direct dependencies 2
RegistryPackageVersion constraintManifest
Gogolang.org/x/modv0.20.0go.mod
Gogolang.org/x/sysv0.39.0go.mod
All dependencies not collected

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

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [],
      "is_fork": false,
      "size_kb": 19988,
      "has_wiki": false,
      "homepage": null,
      "languages": {
        "Go": 980603,
        "HTML": 28131,
        "Ruby": 1545,
        "Shell": 172932,
        "Makefile": 13913,
        "Dockerfile": 1510,
        "PowerShell": 19221
      },
      "pushed_at": "2026-07-18T11:05:40Z",
      "created_at": "2025-12-19T05:35:09Z",
      "owner_type": "User",
      "updated_at": "2026-07-24T07:32:57Z",
      "description": "Bash Guard for Coding Agents",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "Apache-2.0",
      "default_branch": "main",
      "license_spdx_raw": "Apache-2.0",
      "primary_language": "Go",
      "significant_languages": [
        "Go",
        "Shell"
      ]
    },
    "owner": {
      "blog": null,
      "name": null,
      "type": "User",
      "login": "xadnavyaai",
      "company": null,
      "location": null,
      "followers": 4,
      "avatar_url": "https://avatars.githubusercontent.com/u/166740392?v=4",
      "created_at": "2024-04-11T16:24:11Z",
      "is_verified": null,
      "public_repos": 8,
      "account_age_days": 833
    },
    "license": {
      "state": "standard",
      "spdx_id": "Apache-2.0",
      "raw_spdx": "Apache-2.0",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.7.1",
          "kind": "patch",
          "published_at": "2026-07-18T11:06:52Z"
        },
        {
          "tag": "v0.7.0",
          "kind": "minor",
          "published_at": "2026-07-18T10:51:41Z"
        },
        {
          "tag": "v0.6.0",
          "kind": "minor",
          "published_at": "2026-02-27T20:03:49Z"
        },
        {
          "tag": "v0.5.0",
          "kind": "minor",
          "published_at": "2026-01-31T00:39:58Z"
        },
        {
          "tag": "v0.4.0",
          "kind": "minor",
          "published_at": "2026-01-30T06:37:55Z"
        },
        {
          "tag": "v0.3.0",
          "kind": "minor",
          "published_at": "2026-01-23T11:46:50Z"
        },
        {
          "tag": "v0.2.0",
          "kind": "minor",
          "published_at": "2026-01-19T09:25:06Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2026-01-17T09:58:59Z"
        },
        {
          "tag": "v0.1.1",
          "kind": "patch",
          "published_at": "2026-01-16T11:37:58Z"
        },
        {
          "tag": "v0.1.0",
          "kind": "minor",
          "published_at": "2026-01-16T10:27:06Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "e9ae8aa6407b71313deb04f99dc9bc32831f00a0",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add release notes for v0.7.1",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-07-18T11:05:37Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "775fe302ee2cca4464d2188e832ec549f8e4bbe6",
          "body": "generateSessionID() used only time.Now().UnixNano(). On platforms with a\ncoarse wall clock (notably Windows) two sessions started in the same clock\ntick received identical IDs and overwrote each other's session file. This\nsurfaced as a flaky/failing TestRunBehavioralProfile_DiffJSON on\nwindows-lates\n[…]\nD so uniqueness no longer depends on clock\nresolution. No code parses the numeric portion of the ID, so the format\nchange is safe.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(session): make session IDs collision-safe on low-resolution clocks",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-07-18T10:57:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "be66983036e89fc3fbdb4492def03ac3eb3bade4",
          "body": "Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add release notes for v0.7.0",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-07-18T10:50:23Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "410ccb1c8277c0f5603b63335feaf1b3984db04c",
          "body": "Document the new capabilities and refresh agent guidance for the\npost-Mythos defaults:\n\n- docs/ai-agent-threat-model.md — stage-by-stage AI agent threat mapping\n- docs/prompt-firewall.md — prompt firewall usage and detection classes\n- docs/blog/* — two narrative posts + behavioral action-graph asset\n[…]\ntegrations/openclaw plugin manifest, install-alias test script\n- README/FEATURES/cve-awareness updates; ignore local planning docs\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: post-Mythos threat model, prompt-firewall & agent-posture guidance",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-07-18T10:48:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ec5fc0ca8e73089c1f8d1dda4532b60374325f17",
          "body": "… commands\n\nExpose the new engines through the CLI dispatcher and help/init surfaces:\n\n- `llmtrace {connect,sync,scan,watch}` — LLM trace security analysis\n- `audit agent-posture` — AI agent OAuth/hygiene/behavioral audit\n- `scan boundaries --path .` — FFI / unsafe trust-boundary scan\n- `behavioral \n[…]\nve command surfaces, and the prompt-firewall command. Adds command-level\ntests for scan-boundaries, behavioral, and cve freshness.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(cli): wire llmtrace, agent-posture, scan-boundaries & behavioral…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-07-18T10:48:39Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "f78c4a81d35a71e9dd54bfa10c178d27072900f6",
          "body": "…ngines\n\nIntroduce five new security analysis libraries plus an expanded prompt\nfirewall, all consumed by the CLI layer:\n\n- llmtrace: Langfuse-compatible client that pulls LLM traces and scores\n  them for prompt injection, cost anomalies, tool abuse, agent loops, and\n  data exfiltration (reuses inte\n[…]\nsts for the previously untested llmtrace and agentposture\nengines. Config gains LLMTraceConfig wiring (LLMTRACE_*/LANGFUSE_* env).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat(security): add LLM-trace, agent-posture, boundary & behavioral e…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-07-18T10:48:19Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "9d53ee0592efb5c24c4dc28f879ef6eeaf6f0d08",
          "body": "- Introduced a helper function `setTestHome` to set the HOME environment variable for tests, ensuring consistent test behavior across platforms.\n- Updated multiple test functions to utilize `setTestHome`, improving test isolation and reliability.\n- Adjusted assertions in `TestListSessions` to expect exactly 2 sessions instead of a variable count based on initial state.",
          "is_bot": false,
          "headline": "test: Refactor session tests to set temporary home directory",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-28T07:07:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47d37a85b5760baed6db3998f3b2b4ee9ae16294",
          "body": "Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: add release notes for v0.6.0",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T20:02:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9e5e707df33c2a7a4cf8e05e140ec3c4544e5114",
          "body": "feat: Windows platform support + critical path blocking fix",
          "is_bot": false,
          "headline": "Merge pull request #18 from xadnavyaai/feat_add_windows_support",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T19:56:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dcf141ed222f9d03d3130fcc41493345b8a1d40d",
          "body": "- Run gofmt on openclaw.go, server.go, server_test.go\n- Fix init tests to set USERPROFILE on Windows (os.UserHomeDir uses it)\n- Fix CVE cache path test to set USERPROFILE on Windows\n- Fix OpenClaw seed paths test to use filepath.Join instead of hardcoded /\n- Fix sessiondiff tests to use filepath.Join for cross-platform paths\n- Fix Docker e2e test to check ~/.config/vectra-guard/ for init output\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: CI failures — gofmt, Windows test paths, Docker e2e init check",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T19:54:16Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a0ce4e11b86b4cc6f9881f79de137cb02247b1c0",
          "body": "`vg init` now writes to ~/.config/vectra-guard/config.yaml by default.\nUpdated 16 files across docs, templates, and scripts to reflect the\nnew config location and loading order (global → project → local).\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update all references for global config default",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T19:46:01Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "886afb839de6960dd351cb0c78ad8b82d91a9756",
          "body": "Previously `vg init` wrote vectra-guard.yaml to the current directory,\nbut config loading already searched ~/.config/vectra-guard/ as the\nglobal location. Now `vg init` defaults to the global home path so\nthe config is properly discovered regardless of cwd.\n\n- `vg init` → ~/.config/vectra-guard/conf\n[…]\n .vectra-guard/config.yaml (repo-scoped, unchanged)\n- `vg init --global` → explicit global flag (same as default)\n- Updated help text and tests\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: init writes config to ~/.config/vectra-guard/ by default",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T19:31:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3add6b15ff4c8d7a9ed98a2e536ebdccdf08c101",
          "body": "Previously, the directory validator only recognized Unix absolute paths\n(/-prefixed), allowing commands like `rm -rf C:\\Windows` to bypass the\ncritical command blocker entirely. This adds:\n\n- Windows absolute path detection (isWindowsAbsPath, normalizeWindowsPath)\n- Windows system path patterns to r\n[…]\nking\n\nDiscovered during live Windows testing where `rm -rf C:\\Windows` passed\nthrough to soft delete and sandbox instead of being hard-blocked.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: hard-block Windows system directory deletion (rm -rf C:\\Windows)",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T19:19:44Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2fa77eefb1c09495cf25031de4a93d511360e5c9",
          "body": "Add Windows (amd64, arm64) binaries to release checklists, platform\nlists, and installation instructions across all release notes.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "docs: update release notes and checklist with Windows platform support",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T14:43:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "2b5df4f95b355c612f3fc97c0bf3f0688488668a",
          "body": "- Added Windows installation instructions to documentation, including a one-line PowerShell script for easy setup.\n- Updated supported platforms to include Windows alongside macOS and Linux in various documentation files.\n- Enhanced CI workflows to support multi-platform builds, including Windows bi\n[…]\nes for both amd64 and arm64 architectures.\n- Improved installation scripts to ensure user-friendly installation processes across all platforms.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Expand installation and platform support for Vectra Guard",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T14:37:43Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3f34080d92701569ff5594189da826dbd0989918",
          "body": "…ection\n\n- Added a new API endpoint `/api/agents` to retrieve agent coverage information, including seeded agents and OpenClaw status.\n- Enhanced the dashboard UI to display agent coverage metrics and OpenClaw detection results, allowing users to refresh the data dynamically.\n- Introduced new data s\n[…]\nprovide detailed agent status.\n- Updated JavaScript functions to handle the display of agent information and OpenClaw details in the dashboard.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Implement agent coverage feature in dashboard with OpenClaw det…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T14:15:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d9be09fd76812bbbff6ae0f7f420d4783b2f813f",
          "body": "…irm option\n\n- Added support for auto-confirm prompts in the seeding process with a new `--yes` flag, enabling non-interactive mode.\n- Implemented smart detection for OpenClaw, allowing for separate handling of OpenClaw agent instructions during seeding.\n- Introduced new functions for merging and wr\n[…]\n integration with existing content.\n- Added comprehensive tests for OpenClaw detection and merging logic to ensure reliability and correctness.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Enhance seeding process with OpenClaw integration and auto-conf…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T13:38:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "fd359761841ebf30139a5af7568f5129177691c5",
          "body": "…tions\n\nOpenClaw reads markdown instruction files (AGENTS.md) from workspace\ndirectories, not YAML plugin configs. Updated the openclaw target from\n.openclaw/plugins/vectraguard.yaml to .openclaw/AGENTS.md to match\nhow OpenClaw actually discovers and reads agent instructions.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix: Change openclaw seed target from YAML plugin to markdown instruc…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T13:07:59Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "6146104f04625463a8b4772a682218caf0f1f734",
          "body": "…ashboard docs\n\nEnhance `vg seed agents` to display workspace context (repo name, branch,\nproject type), agent coverage matrix, and VectraGuard protection status\ninstead of bare minimal output. Add git helpers (IsGitRepo, GetGitRemoteURL,\nParseRepoName) and workspace detection (DetectWorkspaceContex\n[…]\nrics, trust store, CVE summary, and system status. Add\ncomprehensive dashboard documentation at docs/dashboard.md and link it from\nFEATURES.md.\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "feat: Add rich seed agents output, security dashboard with SSE, and d…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T12:09:33Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "7b8bbd39bfe55e403bc38f420c1f3f7d50e772b2",
          "body": "- Added support for seeding OpenClaw plugin configuration, allowing users to integrate VectraGuard's security features into OpenClaw projects.\n- Updated documentation to reflect new seeding commands and available targets, including OpenClaw.\n- Enhanced README and FEATURES.md to detail the functionalities provided by the OpenClaw plugin, such as command gate, prompt firewall, and CVE scanning.\n- Included examples for seeding agent instructions for various platforms, including OpenClaw.",
          "is_bot": false,
          "headline": "feat: Introduce OpenClaw integration and enhance seeding capabilities",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-27T09:45:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b20f4dc6a0afa3a6bd08d48e3e5bb0fe209dc137",
          "body": "…ases\n\n- Improved logic in install.sh to always add the installation directory to the user's PATH and create aliases for 'vectra-guard' in .bashrc, .zshrc, and .profile.\n- Ensured that the script checks for existing entries to avoid duplicates and provides clear instructions for users on how to apply changes in their current and future shell sessions.",
          "is_bot": false,
          "headline": "feat: Enhance install script to update shell config with PATH and ali…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-09T08:07:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0338fa88ca3d56eb4d79a72b2070dfb3130c9d7d",
          "body": "- Introduced aliases 'vg' and 'vectraguard' for the 'vectra-guard' command in the user's shell configuration files (.bashrc, .zshrc).\n- This enhancement simplifies command usage for users after installation.",
          "is_bot": false,
          "headline": "feat: Add shell aliases for vectra-guard in install script",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-09T07:15:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3b4ade8178c3988d5321d1d7436960d5ab594796",
          "body": "- Introduced a new document detailing a refined comment template for addressing incidents involving AI agents, specifically focusing on data loss scenarios.\n- Included guidance on using Vectra Guard to prevent accidental deletions and restore lost files, along with installation and usage instructions.\n- Enhanced the documentation to clarify the limitations of Vectra Guard in third-party environments.",
          "is_bot": false,
          "headline": "docs: Add refined comment for Claude Cowork incident response",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-09T04:52:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05893323583ba4d5b8f8441ac0f87b671cfb02a3",
          "body": "- Adjusted counts for PY_EXTERNAL_HTTP and PY_REMOTE_HTTP based on the latest six-repo scan results, reflecting a decrease in detected instances.",
          "is_bot": false,
          "headline": "docs: Update HTTP rule counts in README for accuracy",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-08T19:24:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "81e527640f8d0e5a703cd5a5742da7a7837d41f0",
          "body": "…or PATH\n\n- Implemented logic in install.sh to add the installation directory to the user's PATH in .bashrc, .zshrc, and .profile if not already present.\n- Ensured that the changes prompt the user to source their shell configuration or open a new terminal for the updates to take effect.",
          "is_bot": false,
          "headline": "feat: Add functionality to automatically update shell configuration f…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-02-08T18:25:04Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "25044be9d8c15d1cc30777e693302058eddaca80",
          "body": null,
          "is_bot": false,
          "headline": "docs: add release notes for v0.5.0",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-31T00:38:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "80b49630e4e0f2c71349b3b61965f01fcba0f3b3",
          "body": null,
          "is_bot": false,
          "headline": "docs: rerun six-repo scan and refresh reports",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-31T00:33:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c7e8795b97f36f5bb5b72aa7daea93e0ba79773e",
          "body": "…nd-blog\n\nImprove detection (secrets + security scan), blog, verification & E2E tests",
          "is_bot": false,
          "headline": "Merge pull request #17 from xadnavyaai/fix/secret-scan-verification-a…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-31T00:28:12Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "773b3c9c13322e4591f6547561f1435fc12e29ac",
          "body": "- Implemented checks for dangerous scripts (e.g., 'rm -rf /') to ensure detection of critical violations.\n- Added validation for session management, including session start, execution, and audit functionalities.\n- Included tests for the explain command to describe risks associated with scripts.\n- Added CVE sync and scan tests to verify functionality and handle disabled configurations.",
          "is_bot": false,
          "headline": "test: Add end-to-end validation for risky scripts and session management",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-31T00:24:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ebb33b3186b24ac3e4c835eddd2a0745e0b6cfa0",
          "body": "- Simplify return in secrets scanner (S1008)\n- Omit redundant nil check in secscan (S1009)\n- Remove docs/blog/linkedin-posts-drafts.md",
          "is_bot": false,
          "headline": "fix: lint S1008/S1009 and remove LinkedIn post drafts",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-31T00:20:13Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a0c4af23c4cfde2f80fb18fb0786c95bead3d538",
          "body": "- Enhanced `FEATURES.md` to order features by impact and provide clearer descriptions of high-impact functionalities.\n- Revised `GETTING_STARTED.md` to emphasize critical outcomes and streamline command usage steps.\n- Improved `README.md` to include a structured overview of features and their impact, guiding users through the high-impact path.\n- Adjusted `scripts/test-binary-e2e.sh` file permissions for consistency.",
          "is_bot": false,
          "headline": "docs: Update documentation to clarify feature impact and usage",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-31T00:14:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ea504b347a7c8e293b18d7c426385afe9163c8f",
          "body": "…n behavior\n\n- Added detailed explanations of detection behavior for `scan-secrets` and `scan-security`, focusing on context-based flagging and false positive reduction.\n- Updated `FEATURES.md`, `GETTING_STARTED.md`, and `control-panel-security.md` to include new scanning guidelines and verification scripts.\n- Improved README.md to clarify the detection methods and their impact on secret scanning accuracy.",
          "is_bot": false,
          "headline": "docs: Enhance documentation for secret scanning features and detectio…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T23:54:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "20cea3d78da67ab95fbbcd22394a67958e73012f",
          "body": "- Updated the secret scanning logic to require context for entropy candidates, reducing false positives from paths and slugs.\n- Enhanced tests to verify that only lines with secret context are flagged as potential secrets.\n- Added a new documentation file detailing the types of findings and the rationale behind the updated scanning approach.\n- Adjusted existing documentation to reflect improved detection methods and updated secret counts.",
          "is_bot": false,
          "headline": "refactor: Improve secret scanning accuracy and reduce false positives",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T23:51:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b6f6f2b016fbc1c4af9b213ca1bcfcbdb0ea6f0e",
          "body": "…ification script\n\n- Add scanning-ai-agent-repos-what-we-found.md with numbers table updated\n  for lockfile-skip run (~246K total), cross-check note vs similar-agent-scan-raw.txt\n- Add linkedin-posts-drafts.md with master draft\n- Add scripts/verify-secret-findings.go: sample secret findings per repo,\n  verify match on line, classify TRUE_ISSUE vs FP (known-pattern vs entropy)",
          "is_bot": false,
          "headline": "docs: blog post with updated secret counts, cross-validation, and ver…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T11:07:30Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a5ce6958cd3d0cc928e6a7fd07ef00bd53526094",
          "body": "…ntation\n\n- Updated `shouldSkipFile` function to skip various lockfiles to prevent inflated secret counts.\n- Added a new test case to verify that lockfiles do not produce findings during scans.\n- Expanded documentation in README.md to clarify the rationale behind skipping lockfiles and provided cross-validation counts for rule codes.",
          "is_bot": false,
          "headline": "feat: Enhance secret scanning by skipping lockfiles and update docume…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T10:55:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "019534f0a01c4d8ad3dd672db164450d99ec864c",
          "body": "…imilar-repos\n\nfeat: Reports in vectra-guard tool format, similar-agent scan script and docs",
          "is_bot": false,
          "headline": "Merge pull request #16 from xadnavyaai/feat/reports-tool-format-and-s…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T08:28:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7bd62c05e46b7f115443d5842153ec1591768bde",
          "body": "…and docs\n\n- scripts/test-similar-agent-repos.sh: clone-all for 6 AI agent repos,\n  run scan-security + audit repo; VG_OUTPUT=json writes findings in\n  tool format (vg audit repo --output json schema) to docs/reports/\n- docs/reports/: README (tool format schema, regenerate instructions),\n  findings-\n[…]\ngent-findings.json (tool format), similar-agent-scan-raw.txt\n- docs/control-panel-security.md: testing section with clone-all,\n  similar tools table (Huginn, Aider), release vs local, run instructions",
          "is_bot": false,
          "headline": "feat: reports in vectra-guard tool format, similar-agent scan script …",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T08:26:11Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "03cb7e11e1606e162a2713427102c32fe4c96f69",
          "body": "security scanning, and CI/CD cleanup",
          "is_bot": false,
          "headline": "Merge pull request #15 from xadnavyaai/feat_tier_nexgen_blancket_tools",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T06:35:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8715c726a2b9cf3516bad855736cdbee5ab0501b",
          "body": null,
          "is_bot": false,
          "headline": "style: go fmt for CI lint and quick checks",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T06:33:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "021c5ddd8a3a7606250413bfa5b75074c069cc3e",
          "body": "- Added `.tmp/*` to `.gitignore` to exclude temporary files.\n- Removed outdated `CI_CD_CHANGES.md`, `GET_STARTED_WITH_CI.md`, `CI_CD_GUIDE.md`, `CI_CD_QUICKSTART.md`, and `CI_CD_SETUP_SUMMARY.md` files to streamline documentation.\n- Retained relevant CI/CD information in other documentation files.",
          "is_bot": false,
          "headline": "chore: Update .gitignore and remove obsolete CI/CD documentation",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-30T06:22:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b4cd4e6be951fdd74b4d6eda9247f2db9f6631df",
          "body": "- Added `scan-security` command to scan source code for risky patterns in Go, Python, and C.\n- Implemented `runScanSecurity` function to analyze specified files or directories for security issues.\n- Created tests for the security scanning functionality, ensuring detection of risky patterns and validation of safe code.\n- Updated CLI help output to include the new security scanning command.",
          "is_bot": false,
          "headline": "feat: Introduce security scanning feature for source code",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-28T13:49:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3412a52753e15b3e80e21ca6d85b5324f1c474e9",
          "body": "- Added global lockdown functionality to block guarded executions when enabled.\n- Introduced commands for enabling, disabling, and checking the status of lockdown.\n- Implemented prompt firewall to analyze prompts for potential injection risks.\n- Added tests for lockdown state management and prompt firewall behavior.\n- Enhanced CLI with new commands for lockdown and prompt firewall operations.\n- Comprehensive test coverage for new features to ensure reliability.",
          "is_bot": false,
          "headline": "feat: Implement global lockdown feature and prompt firewall",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-28T11:28:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "97a1be4be357faaef38c7cce6903a9763247c3b1",
          "body": null,
          "is_bot": false,
          "headline": "docs: Add release notes for v0.3.0",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-23T11:45:56Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "215ff70da88d680e356c7af468d2f6f2ffa64e67",
          "body": "feat: Add soft delete with auto-delete feature",
          "is_bot": false,
          "headline": "Merge pull request #12 from xadnavyaai/feature/soft-delete-auto-delete",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-23T11:44:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7ddc870f6bb54a1600427b000a11e9b90f0d6146",
          "body": null,
          "is_bot": false,
          "headline": "fix: Format code for CI/CD compliance",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-23T11:42:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "49bd2795a4f6954513bbd6a7ff0c2fc98d62d3b4",
          "body": "- Implement soft delete feature with rotating backups\n- Add auto-delete option for permanent deletion of old backups\n- Add comprehensive git protection (.git, .gitignore, etc.)\n- Implement CLI commands: restore, list, show, clean, delete, stats, auto-delete\n- Add extensive test coverage (28 tests)\n-\n[…]\nts:\n- 15 manager tests (soft delete, cleanup, auto-delete)\n- 6 restore tests (single file, directory, different location)\n- 7 git protection tests (detection, blocking, protection)\n\nAll tests passing.",
          "is_bot": false,
          "headline": "feat: Add soft delete with auto-delete feature",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-23T11:22:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "dc0274113cdae61c7443bbc6c738dab15615b157",
          "body": "Test CI pipeline",
          "is_bot": false,
          "headline": "Merge pull request #11 from xadnavyaai/test-ci-pipeline",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T10:54:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f203a2903f951ab942aadfdeced4943516b6961",
          "body": "- Added environment variables for CI and Vectra Guard container in docker-compose.test.yml.\n- Updated Makefile to include build flags for CI environments to disable VCS information.\n- Configured GitHub Actions to set CI environment variable during Docker-based tests.\n- Introduced CI/CD Quick Start a\n[…]\narding.\n- Added a script to verify CI/CD setup and ensure all necessary files and configurations are in place.\n- Adjusted build commands in test scripts to include the new build flags for consistency.",
          "is_bot": false,
          "headline": "Enhance CI/CD setup and testing configuration",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T10:51:42Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "831edda405b3f191799abbb0a7b5d60d0351a15a",
          "body": "- Adjusted formatting in context_test.go and exec_test.go to enhance code clarity.\n- Standardized spacing and alignment in various test functions across multiple files.\n- Ensured consistent style in comments and variable declarations for better maintainability.",
          "is_bot": false,
          "headline": "Refactor test files for improved readability and consistency",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T10:47:27Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "077fc16615554eae1b2c7333e86cadc2fb26330d",
          "body": null,
          "is_bot": false,
          "headline": "Test CI pipeline",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T10:43:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b9e3c840845f1ec5837cb5b807964dc9944cb883",
          "body": "- Add automated testing for PRs and main branch\n- Add automated release workflow\n- Add comprehensive documentation\n- Configure multi-platform builds",
          "is_bot": false,
          "headline": "Add GitHub Actions CI/CD pipeline",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T10:43:10Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0257b42d033c70b2451a64ff2e7726eab05ed110",
          "body": null,
          "is_bot": false,
          "headline": "feat: add CVE awareness and vulnerability scanning (v0.2.0)",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T09:22:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "05ae60c139f8e62bc308923834eb1081237c2a05",
          "body": null,
          "is_bot": false,
          "headline": "docs: add release notes for v0.2.0",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T09:21:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5eee51312ba105be28b1ca5b95f72cb995db16e6",
          "body": "…nning\n\n- Introduced a new FEATURES.md file detailing the capabilities of Vectra Guard, including command risk protection, smart sandboxing, CVE scanning, and session auditing.\n- Updated README.md to link to the new FEATURES.md for easy access to detailed feature descriptions and workflows.\n- Enhanced agent templates (AGENTS.md, CLAUDE.md, CODEX.md) with CVE scanning workflows and best practices for dependency management.",
          "is_bot": false,
          "headline": "Add comprehensive feature guide and enhance documentation for CVE sca…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T09:19:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e4703f126e2e4a450b3434071b47cbf2b400cf2e",
          "body": "… and README.md with CVE scanning instructions\n\n- Created a new config.yaml file to define agent rules and package state.\n- Updated GETTING_STARTED.md to include CVE scanning commands and their benefits.\n- Enhanced README.md with CVE scanning details and usage examples for better user guidance.",
          "is_bot": false,
          "headline": "Add configuration file for agent rules and enhance GETTING_STARTED.md…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T09:09:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f451b5753a9835b6c6d551b30e899e058a839ac7",
          "body": "- Introduced CVE configuration options in CONFIGURATION.md and vectra-guard.example.yaml.\n- Implemented CVE sync and scan commands in the CLI for managing vulnerabilities.\n- Added support for fetching CVE data from OSV and caching results locally.\n- Enhanced Makefile to include a dedicated CVE test \n[…]\neflect new CVE commands and usage.\n- Created tests for CVE functionality, including package discovery and cache management.\n- Added internal structures for managing CVE data and vulnerability records.",
          "is_bot": false,
          "headline": "Add CVE awareness feature with local caching and scanning capabilities",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-19T08:52:56Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "22389b089525b1f7be1785209bef6e61f23deb26",
          "body": "Refine tracking, auditing, and safety controls",
          "is_bot": false,
          "headline": "Merge pull request #10 from xadnavyaai/feat_VG-1-refinefeatures",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:53:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "47b19432a7396ca9accf87b9b544a5104b68b910",
          "body": null,
          "is_bot": false,
          "headline": "Add agentic workflow examples",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:50:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dc10d3f3f1fcd9339856061b308cd4eb1926406d",
          "body": null,
          "is_bot": false,
          "headline": "Add selective agent seeding",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:48:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7b1bef0ab4e01e4ad7ce251f9eb4a136df3a6f82",
          "body": null,
          "is_bot": false,
          "headline": "Update quick start commands and add uninstall",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:43:24Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "43f27b863ead5c3d6890749b14b871cdec9c59cb",
          "body": null,
          "is_bot": false,
          "headline": "Allow noninteractive uninstall for testing",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:40:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "18a6fbfbe12c79ff53599b958636fb9d890292c9",
          "body": null,
          "is_bot": false,
          "headline": "Update uninstaller for tracker and cache cleanup",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:36:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d423caa861332f1c1ee4f640b62bb468299d7027",
          "body": null,
          "is_bot": false,
          "headline": "Default installer to user space",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:34:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "503ff2f373fc57a4da5d4a744ce0c9a416962682",
          "body": null,
          "is_bot": false,
          "headline": "Add private key detection and notifier warnings",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T09:32:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "dda8169f0cee5bc037b5bba0a0f293c0ea2571da",
          "body": null,
          "is_bot": false,
          "headline": "Rename shell protection in release notes",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T08:12:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a2e8081318cd974eb51bdde9aa8a5361f6254b9b",
          "body": "- Added optional shell tracker installation instructions to GETTING_STARTED.md.\n- Updated README.md to reflect changes in shell tracking and command logging.\n- Implemented session auditing functionality, allowing users to audit commands executed within sessions.\n- Introduced tests for session audit summaries and command tracking to ensure reliability.\n- Improved command execution handling to block external HTTP(S) requests and sudo usage unless explicitly allowed.",
          "is_bot": false,
          "headline": "Enhance shell tracking and session auditing features",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T08:11:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "62b64e21221c9fc06059fbebec8f0681a413c558",
          "body": "- Added a new shell tracker installation script to enable command tracking for bash, zsh, and fish.\n- Updated `install.sh` to prompt users for enabling the shell tracker during installation.\n- Introduced `runSessionRecord` function to log executed commands along with their exit codes and risk assess\n[…]\n\n- Enhanced session management by integrating command analysis and recording findings.\n- Updated documentation in `homebrew/vectra-guard.rb` to reflect the new shell tracker installation instructions.",
          "is_bot": false,
          "headline": "Implement shell tracker installation and command recording feature",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T07:34:02Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1f1154c1e327fdc050fedbbf7a29578055cc9e5e",
          "body": "- Implemented `pickSandboxRuntime` function to determine available sandbox runtimes (docker, podman, process).\n- Updated `buildSandboxConfig` to handle cases where the runtime is set to \"auto\" or empty, returning an error if no runtime is available.\n- Added tests for runtime selection and error scenarios in `sandbox_test.go` to ensure proper functionality.",
          "is_bot": false,
          "headline": "Add sandbox runtime selection and error handling",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T07:20:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "993a11024d898a355f39c6cf0db0df049106f97f",
          "body": "- Added new entries to .gitignore for cache and temporary files.\n- Revised GETTING_STARTED.md to clarify command protection with `vectra-guard exec` and updated session management instructions.\n- Enhanced README.md by removing outdated universal shell protection instructions and emphasizing shell in\n[…]\ntion.\n- Improved session handling in the codebase, including workspace-specific session indexing and command tracking.\n- Added tests for session management and command execution to ensure reliability.",
          "is_bot": false,
          "headline": "Update documentation and improve session management",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-17T07:06:01Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7a5efc6577b2692bf546eb4452d1f8bc60b7f8d8",
          "body": null,
          "is_bot": false,
          "headline": "Improve sandbox dependency installation checks",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T14:30:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a14314682406def0ce0138cc443ca043ecb1e123",
          "body": "- Updated README.md to clarify the purpose of Vectra Guard and its protective capabilities.\n- Added roadmap instructions to AGENTS.md, CLAUDE.md, CODEX.md, vectra-guard.md, copilot-instructions.md, VS Code instructions, and windsurf rules, detailing how to capture plans and progress with `vectra-guard roadmap` commands.",
          "is_bot": false,
          "headline": "Enhance documentation with roadmap features",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T11:26:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "32d8684d3daec9620bbbefc99624ee614fbe7775",
          "body": null,
          "is_bot": false,
          "headline": "Release v0.1.1: fix sandbox deps install",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T11:07:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e8b6f8197a5bfb3201b238f4b3e37a449e39a14",
          "body": null,
          "is_bot": false,
          "headline": "docs: add package audit usage",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T10:25:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0416013ebd81de5619750739f78a081db5170c42",
          "body": "- Introduced new commands for auditing npm and python packages using `vectra-guard audit npm` and `vectra-guard audit python`.\n- Implemented auto-installation of required tools if missing, with an option to disable this feature.\n- Added tests for parsing audit outputs and logging results.\n- Updated documentation in GETTING_STARTED.md and README.md to include usage instructions for the new audit commands.\n- Enhanced help output to provide details on the new auditing capabilities.",
          "is_bot": false,
          "headline": "Add package auditing functionality for npm and python",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T10:22:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f015a6f9c46ad84990dc0e1e819e1de911163ae1",
          "body": "- Deleted agent guidance documentation from AGENTS.md, CLAUDE.md, CODEX.md, vectra-guard.md, copilot-instructions.md, VS Code instructions, and windsurf rules.\n- This cleanup eliminates redundancy and streamlines the documentation for Vectra Guard's usage.",
          "is_bot": false,
          "headline": "Remove outdated agent instructions from multiple files",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T09:42:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f252e16e084a734162f92cebd2dc5cf6e66d1601",
          "body": "- Removed redundant instructions and clarified the agentic usage section for Cursor/IDE in GETTING_STARTED.md.\n- Updated README.md to streamline the description of Vectra Guard's capabilities and enhance the agentic usage instructions.",
          "is_bot": false,
          "headline": "Refine agentic usage documentation in GETTING_STARTED.md and README.md",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T09:38:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a1ada20e540d02b3fb5ac356b546aae61889ff2d",
          "body": "…/IDE\n\n- Added a new section in GETTING_STARTED.md detailing the command for seeding agent instructions into the current repository.\n- Updated README.md to reflect the agentic usage right after installation, enhancing clarity for users.",
          "is_bot": false,
          "headline": "Update documentation to include agentic usage instructions for Cursor…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T09:29:37Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "12840bec36a26c5988bff88736dd0bac4669d89a",
          "body": "- Added optional instructions for seeding Cursor/IDE agent files directly into the repository.\n- Updated README.md to clarify agent seeding commands for various environments, including a recommended CLI approach.",
          "is_bot": false,
          "headline": "Enhance documentation for agent seeding instructions",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T09:24:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4d334e2b8c946b4301bbe57fb809f7fc4b77611f",
          "body": null,
          "is_bot": false,
          "headline": "Stabilize GitHub release test",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T09:20:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3755eba6033d48d0f0de80acccd4b6de2a3f7c4d",
          "body": null,
          "is_bot": false,
          "headline": "Fix false positives in release test",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T09:09:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "56cad53fa4dd0b8d1641542097ac07f2c735f979",
          "body": null,
          "is_bot": false,
          "headline": "Add CLI seeding for agent instructions",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T09:02:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f4422175618248ea72582ea6d8b1cd7607d361c6",
          "body": "…E.md\n\n- Introduced a new YAML example demonstrating sandbox configuration with caching enabled.\n- Added corresponding bash commands to illustrate the caching benefits during npm installations.",
          "is_bot": false,
          "headline": "Add example configuration for cache-optimized secure sandbox in READM…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T08:53:48Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ff3b2aa52673dc85aea2f50ac91535b4cc19b1da",
          "body": null,
          "is_bot": false,
          "headline": "Update v0.1.0 release notes",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T08:31:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "2921adc4a06829155fa86cfcbbc22cbe539b77a9",
          "body": "- Introduced a new command `vectra-guard sandbox deps install` for installing sandbox dependencies (Docker/Podman + bubblewrap).\n- Updated README.md and SANDBOX.md to include installation instructions and usage examples for the new command.\n- Enhanced help output for the `sandbox` command to provide detailed usage information.\n- Refactored the install-sandbox-deps.sh script to act as a wrapper for the new command, improving usability and integration with vectra-guard.",
          "is_bot": false,
          "headline": "Add sandbox dependency installation command and update documentation",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T08:24:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "69db64ec3fd8af5434a812b036237737a14a3e00",
          "body": "- Added checks to detect non-interactive sessions and disable cask binary linking to prevent sudo prompts.\n- Improved user feedback with informative messages regarding the installation process in non-interactive environments.",
          "is_bot": false,
          "headline": "Enhance non-interactive session handling in install script",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T08:12:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "080dc33c9fbf9f148427936cee0b1f1c62c5cdeb",
          "body": "- Refactored the installation process to include a retry mechanism for handling hub-tool conflicts.\n- Introduced a function for installing Docker Desktop, enhancing code readability and maintainability.\n- Improved user feedback during installation, allowing for a more graceful handling of existing hub-tool binaries based on user input.",
          "is_bot": false,
          "headline": "Improve Docker Desktop installation logic in install script",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T08:08:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22ab707797b8cbfcd53d0c067bce6aa8d9579bcb",
          "body": "- Moved hub-tool conflict logic into a separate function for better readability and maintainability.\n- Improved user prompts and error handling during Docker Desktop installation to provide clearer instructions and options.\n- Ensured that the installation process can gracefully handle existing hub-tool binaries based on user input.",
          "is_bot": false,
          "headline": "Refactor hub-tool conflict handling in install script",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T08:04:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c8def16e296dd37d0b30b916dfe59d82434f5ced",
          "body": null,
          "is_bot": false,
          "headline": "Add --force option to deps installer",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T06:56:26Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ac2ead101d29d8867ad176915ee89c7c3bb4e2f0",
          "body": null,
          "is_bot": false,
          "headline": "Add VG_FORCE prompt for Docker conflict",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T06:53:34Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4af5d6eb43fc58ed96fdd5c6d5d3d39109317227",
          "body": null,
          "is_bot": false,
          "headline": "Handle Docker Desktop hub-tool conflict",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T06:48:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "bc2f5e706688ac49a2e6faaddc482ce1e5203e9b",
          "body": null,
          "is_bot": false,
          "headline": "Switch installers to release artifacts",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T06:41:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "914938e48f00c369f9739ac560a20c68e9c31332",
          "body": "…requisites\n\n- Added supported platforms (macOS and Debian Linux) to the GETTING_STARTED.md and README.md files.\n- Clarified prerequisites for installation, specifying the need for `git` and `go`.\n- Updated installation instructions to indicate that the tool builds from the main branch instead of downloading binaries.\n- Removed references to Windows support in various documentation sections.",
          "is_bot": false,
          "headline": "Update documentation to reflect platform support and installation pre…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T06:30:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ad351ae6052565d85c075bd183551d9bc1f87601",
          "body": "… script\n\n- Updated the installation script to support an optional INSTALL_DIR environment variable for testing purposes, defaulting to /usr/local/bin if not set.\n- Enhanced flexibility in the installation process to accommodate different environments.",
          "is_bot": false,
          "headline": "Allow overriding installation directory in the Vectra Guard installer…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T05:18:59Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "563e5055243ebab156c0626a2f118e5decf63f15",
          "body": "- Updated the installation process to always build from the main branch instead of downloading a pre-built binary.\n- Added checks for Go installation and provided instructions for building from source if Go is not installed.\n- Enhanced error handling during the cloning and building process to improve user feedback and troubleshooting.\n- Created a temporary directory for building the binary, ensuring a cleaner installation process.",
          "is_bot": false,
          "headline": "Refactor installation script to build Vectra Guard from source",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T05:09:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0d29bff221b51235ff3984a75c7a951e1d05e9d",
          "body": "…ks for protected directories\n\n- Updated validation logic to block commands attempting to access or delete protected directories by adding \"PROTECTED_DIRECTORY\" to the checks.\n- Ensured critical command detection includes new patterns for enhanced security during command execution.",
          "is_bot": false,
          "headline": "Enhance command validation in shell protection script to include chec…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T05:01:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "e7deddbe796018bbce21a340d8350e2a2b285fee",
          "body": "…ution\n\n- Introduced a new critical code, \"PROTECTED_DIRECTORY_ACCESS\", to block commands that attempt to access or delete protected directories.\n- Updated the command validation logic to enhance safety during execution by preventing potentially dangerous operations on critical system directories.",
          "is_bot": false,
          "headline": "Add protection against accessing critical directories in command exec…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T04:58:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d0ba3fe24cdd17ea378a9d30b11f19249cc71ae2",
          "body": "…ility\n\n- Updated the command lowercase conversion logic to check the Bash version before applying syntax specific to Bash 4.0 and above.\n- Ensured compatibility with older Bash versions by using `tr` for lowercase conversion when necessary, enhancing the robustness of the script.",
          "is_bot": false,
          "headline": "Refactor lowercase conversion in shell protection script for compatib…",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T04:47:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8476912f9d05b7d63587b3632d824241e03cb608",
          "body": "- Implemented a new validation mechanism to block critical commands (e.g., dangerous deletions) regardless of guard level settings.\n- Updated command analysis to prioritize detection of critical risks before executing any commands.\n- Enhanced test coverage for home directory deletion patterns to ensure proper detection of dangerous commands.\n- Improved shell protection script to handle command validation more robustly, ensuring safety during execution.",
          "is_bot": false,
          "headline": "Enhance command execution safety by enforcing critical command checks",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-16T04:39:25Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "fff6b0c9fc73665e62378f933ccb3a99962fbd05",
          "body": "- Added checks to detect multiple system directories in commands, enhancing protection against dangerous deletions.\n- Updated read commands to handle non-interactive modes more gracefully, ensuring default values are set when user input is not provided.\n- Improved comments for clarity on command patterns and their intended protections.",
          "is_bot": false,
          "headline": "Enhance shell protection script with improved command validation",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-14T20:54:01Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4e04d69b1ae2a012f1fc4d16e4bc8363c14a17f4",
          "body": "- Added checks to ensure Vectra Guard commands are only executed in the appropriate shell (bash or zsh).\n- Updated hook registration to prevent errors when sourcing in the wrong shell environment.\n- Improved overall robustness of the integration by adding shell version checks.",
          "is_bot": false,
          "headline": "Enhance Vectra Guard integration in shell scripts",
          "author_name": "xadnavyaai",
          "author_login": "xadnavyaai",
          "committed_at": "2026-01-14T20:35:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        }
      ],
      "releases_count": 10,
      "commits_last_year": 183,
      "latest_release_at": "2026-07-18T11:06:52Z",
      "latest_release_tag": "v0.7.1",
      "releases_from_tags": false,
      "days_since_last_push": 6,
      "active_weeks_last_year": 10,
      "days_since_latest_release": 6,
      "mean_days_between_releases": 20.3
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": false,
      "health_percentage": 57,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": false
    },
    "ecosystem": {
      "packages": []
    },
    "popularity": {
      "forks": 2,
      "stars": 86,
      "watchers": 5,
      "fork_history": {
        "days": [
          {
            "date": "2026-03-04",
            "count": 1
          },
          {
            "date": "2026-03-19",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 2,
        "total_forks": 2
      },
      "star_history": null,
      "open_issues_and_prs": 0
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [],
      "has_llms_txt": false,
      "has_dockerfile": true,
      "has_mcp_signal": false,
      "bootstrap_files": [
        "Makefile"
      ],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "go.mod"
      ],
      "largest_source_bytes": 39044,
      "source_files_sampled": 150,
      "oversized_source_files": 0,
      "agent_instruction_files": [
        "CLAUDE.md",
        "internal/seed/templates/.openclaw/AGENTS.md",
        "internal/seed/templates/AGENTS.md",
        "internal/seed/templates/CLAUDE.md"
      ],
      "agent_instruction_max_bytes": 5180
    },
    "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": "golang.org/x/mod",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.20.0"
        },
        {
          "name": "golang.org/x/sys",
          "manifest": "go.mod",
          "ecosystem": "go",
          "version_constraint": "v0.39.0"
        }
      ],
      "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": 16,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 2,
        "closed_unmerged_prs": 0
      },
      "bus_factor": 1,
      "bot_contributors": 0,
      "top_contributors": [
        {
          "type": "User",
          "login": "xadnavyaai",
          "commits": 182,
          "avatar_url": "https://avatars.githubusercontent.com/u/166740392?v=4"
        },
        {
          "type": "User",
          "login": "vikasflc",
          "commits": 1,
          "avatar_url": "https://avatars.githubusercontent.com/u/114921538?v=4"
        }
      ],
      "contributors_sampled": 2,
      "top_contributor_share": 0.995
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "pr-quick-check.yml",
        "release.yml"
      ],
      "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": null,
            "reason": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "2 out of 2 merged PRs checked by a CI test -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
          },
          {
            "name": "CII-Best-Practices",
            "score": 0,
            "reason": "no effort to earn an OpenSSF best practices badge detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
          },
          {
            "name": "Code-Review",
            "score": 0,
            "reason": "Found 0/22 approved changesets -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
          },
          {
            "name": "Contributors",
            "score": 0,
            "reason": "project has 0 contributing companies or organizations -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
          },
          {
            "name": "Dangerous-Workflow",
            "score": 10,
            "reason": "no dangerous workflow patterns detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
          },
          {
            "name": "Dependency-Update-Tool",
            "score": 0,
            "reason": "no update tool detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
          },
          {
            "name": "Fuzzing",
            "score": 0,
            "reason": "project is not fuzzed",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
          },
          {
            "name": "License",
            "score": 10,
            "reason": "license file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
          },
          {
            "name": "Maintained",
            "score": 5,
            "reason": "6 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5",
            "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": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 0,
            "reason": "SAST tool is not run on all commits -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
          },
          {
            "name": "Security-Policy",
            "score": 4,
            "reason": "security policy file detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
          },
          {
            "name": "Signed-Releases",
            "score": 0,
            "reason": "Project has not signed or included provenance with any releases.",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
          },
          {
            "name": "Token-Permissions",
            "score": 0,
            "reason": "detected GitHub workflow tokens with excessive permissions",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
          },
          {
            "name": "Vulnerabilities",
            "score": 9,
            "reason": "1 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "e9ae8aa6407b71313deb04f99dc9bc32831f00a0",
        "ran_at": "2026-07-24T12:47:45Z",
        "aggregate_score": 3.8,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": false,
      "has_security_policy": true,
      "has_dependabot_config": false
    },
    "contribution_flow": {
      "collected": true,
      "ci_last_run_at": "2026-07-18T11:07:05Z",
      "oldest_open_prs": [],
      "last_merged_pr_at": "2026-02-27T19:56:26Z",
      "ci_last_conclusion": "SUCCESS",
      "oldest_open_issues": []
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/xadnavyaai/vectraguard",
    "host": "github.com",
    "name": "vectraguard",
    "owner": "xadnavyaai"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 54,
      "inputs": {
        "security": 38,
        "vitality": 76,
        "community": 42,
        "governance": 41,
        "engineering": 67
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 76,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "moderate",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 66,
            "inputs": {
              "commits_last_year": 183,
              "human_commit_share": 1,
              "days_since_last_push": 6,
              "active_weeks_last_year": 10
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "10/52 weeks with commits",
                "points": 6.9,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 10
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "183 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 183
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "6 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5",
                "points": 5,
                "status": "partial",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 10,
              "latest_release_tag": "v0.7.1",
              "releases_from_tags": false,
              "days_since_latest_release": 6,
              "mean_days_between_releases": 20.3
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "10 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 10
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 6 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~20.3 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 20.3
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "maintained",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": null,
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": 6,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "last human commit 6 days ago",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_maintained",
                    "params": {
                      "days": 6
                    }
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 42,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "at_risk",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 35,
            "inputs": {
              "forks": 2,
              "stars": 86,
              "watchers": 5,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "no_history"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "86 stars",
                "points": 31.3,
                "status": "partial",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 86
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "2 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "5 watchers",
                "points": 3.3,
                "status": "partial",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 5
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "moderate",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 50,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": false,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": false
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (Apache-2.0)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "Apache-2.0"
                    }
                  }
                ],
                "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": 41,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 12,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 2,
              "top_contributor_share": 0.995
            },
            "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.1,
                "status": "partial",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "2 contributors",
                "points": 2.7,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 2
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "excellent",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "merged_prs": 16,
              "open_issues": 0,
              "closed_issues": 2,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 0
            },
            "components": [
              {
                "key": "issue_resolution",
                "name": "Issue resolution",
                "detail": "100% of issues closed",
                "points": 46.8,
                "status": "met",
                "details": [
                  {
                    "code": "issues_closed_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 46.75
              },
              {
                "key": "pr_acceptance",
                "name": "PR acceptance",
                "detail": "16/16 decided PRs merged",
                "points": 38.2,
                "status": "met",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 16,
                      "decided": 16
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/22 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "at_risk",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 33,
            "inputs": {
              "followers": 4,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "xadnavyaai",
              "public_repos": 8,
              "account_age_days": 833
            },
            "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": "4 followers of xadnavyaai",
                "points": 5,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 4,
                      "login": "xadnavyaai"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "8 public repos, account ~2 yr old",
                "points": 11.5,
                "status": "partial",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 8
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 2
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "moderate",
        "name": "Engineering Quality",
        "value": 67,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "moderate",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 68,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": false,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "3 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 3
                    }
                  }
                ],
                "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": "2 out of 2 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "moderate",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 65,
            "inputs": {
              "topics": [],
              "has_wiki": false,
              "homepage": null,
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "at_risk",
        "name": "Security",
        "value": 38,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "at_risk",
            "name": "Security posture",
            "note": "Excluded from scoring (no data or not applicable): Branch-Protection, Packaging. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "branch_protection",
                    "packaging"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 38,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 16,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 2,
              "scorecard_aggregate": 3.8
            },
            "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": "internal error: error during branchesHandler.setup: internal error: some github tokens can't read classic branch protection rules: https://github.com/ossf/scorecard-action/blob/main/docs/authentication/fine-grained-auth-token.md",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "no_data",
                    "params": {}
                  }
                ],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "2 out of 2 merged PRs checked by a CI test -- score normalized to 10",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "cii_best_practices",
                "name": "CII-Best-Practices",
                "detail": "no effort to earn an OpenSSF best practices badge detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "code_review",
                "name": "Code-Review",
                "detail": "Found 0/22 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "contributors",
                "name": "Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "dangerous_workflow",
                "name": "Dangerous-Workflow",
                "detail": "no dangerous workflow patterns detected",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "dependency_update_tool",
                "name": "Dependency-Update-Tool",
                "detail": "no update tool detected",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "fuzzing",
                "name": "Fuzzing",
                "detail": "project is not fuzzed",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "license file detected",
                "points": 2.5,
                "status": "met",
                "details": [],
                "max_points": 2.5
              },
              {
                "key": "maintained",
                "name": "Maintained",
                "detail": "6 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 5",
                "points": 3.8,
                "status": "partial",
                "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": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is not run on all commits -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "security_policy",
                "name": "Security-Policy",
                "detail": "security policy file detected",
                "points": 2,
                "status": "partial",
                "details": [],
                "max_points": 5
              },
              {
                "key": "signed_releases",
                "name": "Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "token_permissions",
                "name": "Token-Permissions",
                "detail": "detected GitHub workflow tokens with excessive permissions",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "1 existing vulnerabilities detected",
                "points": 6.8,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "good",
        "name": "AI Readiness",
        "value": 81,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "excellent",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 85,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.81,
              "agent_instruction_files": [
                "CLAUDE.md",
                "internal/seed/templates/.openclaw/AGENTS.md",
                "internal/seed/templates/AGENTS.md",
                "internal/seed/templates/CLAUDE.md"
              ],
              "agent_instruction_max_bytes": 5180
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "CLAUDE.md, internal/seed/templates/.openclaw/AGENTS.md, internal/seed/templates/AGENTS.md, internal/seed/templates/CLAUDE.md",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "CLAUDE.md, internal/seed/templates/.openclaw/AGENTS.md, internal/seed/templates/AGENTS.md, internal/seed/templates/CLAUDE.md"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "81 of 100 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 81,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "good",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 71,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [
                "go.sum"
              ],
              "has_dockerfile": true,
              "typed_language": true,
              "bootstrap_files": [
                "Makefile"
              ],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.17,
              "toolchain_manifests": [
                "go.mod"
              ],
              "dependency_bot_commit_share": 0
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "Makefile",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Makefile"
                    }
                  }
                ],
                "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": "Go (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": "Dockerfile, lockfile",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "Dockerfile, lockfile"
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "17 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 17,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "no automated dependency updates observed",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_dependency_automation",
                    "params": {}
                  }
                ],
                "max_points": 8
              },
              {
                "key": "openssf_scorecard_pinned_dependencies",
                "name": "OpenSSF Scorecard: Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "ai_code_legibility",
            "band": "excellent",
            "name": "Code legibility for models",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "primary_language": "Go",
              "largest_source_bytes": 39044,
              "source_files_sampled": 150,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "Go (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "Go"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/150 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 150,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
    "Could not fetch go package 'github.com/vectra-guard/vectra-guard' from its registry",
    "GitHub dependency-graph SBOM unavailable (404); the dependency graph may be disabled for this repository"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-24T12:47:53.556665Z",
  "schema_version": "0.27.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/x/xadnavyaai/vectraguard.svg",
  "full_name": "xadnavyaai/vectraguard",
  "license_state": "standard",
  "license_spdx": "Apache-2.0"
}

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

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

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