Public record
Software health reportschema 0.23.0 · metrics 1.13.0 · 2026-07-21 18:07 UTC

JerrettDavis / JD.SemanticKernel.Extensions

Semantic Kernel extensions for Claude Code skills, hooks, context compaction, and semantic memory.

C#MIT★ 1 star⑂ 0 forkssince Feb 2026View on GitHub ↗

JerrettDavis/JD.SemanticKernel.Extensions holds a health index of 67 out of 100, placing it in the Moderate band. It scores highest on Engineering Quality (84/100) and lowest on Community & Adoption (46/100). It was last updated today. A single contributor accounts for most of its recent work.

67
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.

67
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

JD DavisPersonal account
155 followers125 public repossince Oct 2012

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

Package ecosystems

Metrics by category

Vitality

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

82Good · 22% of overall
How it's scored
36/36Push recency — last push 0 days ago
12.5/36Commit cadence — 18/52 weeks with commits
18/18Commit volume — 113 commits in the last year
10/10OpenSSF Scorecard: Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
Inputs used
commits_last_year113
human_commit_share0.39
days_since_last_push0
active_weeks_last_year18
How it's scored
27/27Ships releases — 91 releases published
36/36Release recency — latest release 0 days ago
27/27Release cadence — a release every ~4 days
0/10OpenSSF Scorecard: Signed-Releases — Project has not signed or included provenance with any releases.
Inputs used
releases_count91
latest_release_tagv0.1.114
releases_from_tagsno
days_since_latest_release0
mean_days_between_releases4

Community & Adoption

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

46At risk · 18% of overall
How it's scored
0/60Stars — 1 stars
0/25Forks — 0 forks
0/15Watchers — 0 watchers
Inputs used
forks0
stars1
watchers0
growth_stateunverified
growth_factor_pct100
growth_unverified_reasonbelow_threshold
How it's scored
22.5/22.5README
22.5/22.5License — recognized license (MIT)
18/18CONTRIBUTING guide
0/13.5Code of conduct
0/7.2Issue template
6.3/6.3PR template
Inputs used
has_readmeyes
has_licenseyes
has_contributingyes
has_issue_templateno
has_code_of_conductno
has_pull_request_templateyes
How it's scored
58.8/80Total downloads — 451,808 downloads all-time across nuget
0/20Registry dependents — not reported by this ecosystem
Inputs used
packagesJD.SemanticKernel.Extensions.Compaction, JD.SemanticKernel.Extensions.Hooks, JD.SemanticKernel.Extensions.Mcp, JD.SemanticKernel.Extensions.Memory.Sqlite, JD.SemanticKernel.Extensions.Memory, JD.SemanticKernel.Extensions.Plugins, JD.SemanticKernel.Extensions.Skills, JD.SemanticKernel.Extensions
dependents
ecosystemsnuget
total_downloads451,808
monthly_downloads
Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.

Sustainability & Governance

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

59Moderate · 24% of overall
How it's scored
9/54Bus factor — 1 contributor(s) cover half of all commits
0/22.5Commit distribution — top contributor authored 100% of commits
1.4/13.5Contributor breadth — 1 contributors
0/10OpenSSF Scorecard: Contributors — project has 0 contributing companies or organizations -- score normalized to 0
Inputs used
bus_factor1
contributors_sampled1
top_contributor_share1
How it's scored
46.8/46.8Issue resolution — 100% of issues closed
34.4/38.3PR acceptance — 71/79 decided PRs merged
0/15OpenSSF Scorecard: Code-Review — Found 0/9 approved changesets -- score normalized to 0
Inputs used
merged_prs71
open_issues0
closed_issues2
issue_closed_ratio1
closed_unmerged_prs8
How it's scored
10/30Ownership backing — personal (user) account
0/20Verified domain — not applicable to user accounts
15.8/25Owner reach — 155 followers of JerrettDavis
25/25Track record — 125 public repos, account ~13 yr old
Inputs used
followers155
owner_typeUser
is_verified
owner_loginJerrettDavis
public_repos125
account_age_days5,021
Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.
How it's scored
25/25Published & resolvable — 8 package(s) on nuget
35/35Publish recency — latest publish 0 days ago
20/20Version history — 93 published versions
20/20Not deprecated — active, not deprecated or yanked
Inputs used
packagesJD.SemanticKernel.Extensions.Compaction, JD.SemanticKernel.Extensions.Hooks, JD.SemanticKernel.Extensions.Mcp, JD.SemanticKernel.Extensions.Memory.Sqlite, JD.SemanticKernel.Extensions.Memory, JD.SemanticKernel.Extensions.Plugins, JD.SemanticKernel.Extensions.Skills, JD.SemanticKernel.Extensions
ecosystemsnuget
any_deprecatedno
min_days_since_publish0

Engineering Quality

Are baseline engineering and documentation practices in place?

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

Documentation

100Excellent
How it's scored
30/30README
25/25Documentation directory
15/15Documentation / homepage site — https://jerrettdavis.github.io/JD.SemanticKernel.Extensions/
10/10Repository description
10/10Topics — 7 topics
10/10Wiki
Inputs used
topicsai-agents, claude-code, csharp, dotnet, nuget, semantic-kernel, semantic-memory
has_wikiyes
homepagehttps://jerrettdavis.github.io/JD.SemanticKernel.Extensions/
has_readmeyes
has_docs_diryes
has_descriptionyes

Security

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

59Moderate · 16% of overall
How it's scored
7.5/7.5Binary-Artifacts — no binaries found in the repo
0/7.5Branch-Protection — branch protection not enabled on development/release branches
2.5/2.5CI-Tests — 24 out of 24 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/9 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
7.5/7.5Dependency-Update-Tool — update tool detected
0/5Fuzzing — project is not fuzzed
2.5/2.5License — license file detected
7.5/7.5Maintained — 30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
5/5Packaging — packaging workflow detected
0/5Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
5/5SAST — SAST tool is run on all commits
2/5Security-Policy — security policy file detected
0/7.5Signed-Releases — Project has not signed or included provenance with any releases.
5.2/7.5Token-Permissions — detected GitHub workflow tokens with excessive permissions
7.5/7.5Vulnerabilities — 0 existing vulnerabilities detected
Inputs used
sourceopenssf_scorecard
checks_evaluated18
scorecard_versionv5.5.0
checks_inconclusive0
scorecard_aggregate5.9

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.

59Moderate · 0% of overall
How it's scored
0/45Agent instructions — no CLAUDE.md / AGENTS.md / editor rules
0/15Machine-readable docs (llms.txt)
40/40Legible commit history — 38 of 39 human commits state their intent (structured subject or explanatory body)
Inputs used
has_llms_txtno
legible_history_share0.974
agent_instruction_files
agent_instruction_max_bytes
How it's scored
12.6/18One-command bootstrap — samples/CompactionDemo/CompactionDemo.csproj, samples/MemoryDemo/MemoryDemo.csproj, samples/PluginDemo/PluginDemo.csproj (toolchain convention, no task runner)
22/22Automated tests
0/11Lint / format config
11/11Static type checking — C# (statically typed)
0/10Reproducible environment
10/10Demonstrated agent practice — 35 of the last 100 commits agent-authored or agent-credited
8/8Automated maintenance — 61 of the last 100 commits are automated dependency updates
0/10OpenSSF Scorecard: Pinned-Dependencies — dependency not pinned by hash detected -- score normalized to 0
Inputs used
has_nixno
has_testsyes
lockfiles
has_dockerfileno
typed_languageyes
bootstrap_files
has_devcontainerno
has_linter_configno
typecheck_configs
agent_commit_share0.35
toolchain_manifestssamples/CompactionDemo/CompactionDemo.csproj, samples/MemoryDemo/MemoryDemo.csproj, samples/PluginDemo/PluginDemo.csproj, samples/SkillDemo/SkillDemo.csproj, src/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj, src/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj, src/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj, src/JD.SemanticKernel.Extensions.Memory.Sqlite/JD.SemanticKernel.Extensions.Memory.Sqlite.csproj, src/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj, src/JD.SemanticKernel.Extensions.Plugins/JD.SemanticKernel.Extensions.Plugins.csproj, src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj, src/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj, tests/JD.SemanticKernel.Extensions.Compaction.Tests/JD.SemanticKernel.Extensions.Compaction.Tests.csproj, tests/JD.SemanticKernel.Extensions.Hooks.Tests/JD.SemanticKernel.Extensions.Hooks.Tests.csproj, tests/JD.SemanticKernel.Extensions.IntegrationTests/JD.SemanticKernel.Extensions.IntegrationTests.csproj, tests/JD.SemanticKernel.Extensions.Mcp.Tests/JD.SemanticKernel.Extensions.Mcp.Tests.csproj, tests/JD.SemanticKernel.Extensions.Memory.Sqlite.Tests/JD.SemanticKernel.Extensions.Memory.Sqlite.Tests.csproj, tests/JD.SemanticKernel.Extensions.Memory.Tests/JD.SemanticKernel.Extensions.Memory.Tests.csproj, tests/JD.SemanticKernel.Extensions.Plugins.Tests/JD.SemanticKernel.Extensions.Plugins.Tests.csproj, tests/JD.SemanticKernel.Extensions.Skills.Tests/JD.SemanticKernel.Extensions.Skills.Tests.csproj
dependency_bot_commit_share0.61
How it's scored
45/45Type-checkable code — C# (statically typed)
55/55Manageable file sizes — 0/120 source files over 60KB
Inputs used
primary_languageC#
largest_source_bytes15,143
source_files_sampled120
oversized_source_files0
How it's scored
0/40API schema (OpenAPI/GraphQL/proto)
0/20MCP server
40/40Runnable examples — samples
Inputs used
example_dirssamples
has_mcp_signalno
api_schema_files

Key facts

1GitHub stars
1contributors
113commits, last 12 months
0days since last push
91releases
1bus factor
0open issues
package ecosystems

Data collection warnings

  • No resolved dependencies carried a version and a supported ecosystem

More detail

OpenSSF Scorecard 5.9 / 10
5.9aggregate

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-21 18:06 UTC

10Binary-Artifactsno binaries found in the repo
0Branch-Protectionbranch protection not enabled on development/release branches
10CI-Tests24 out of 24 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/9 approved changesets -- score normalized to 0
0Contributorsproject has 0 contributing companies or organizations -- score normalized to 0
10Dangerous-Workflowno dangerous workflow patterns detected
10Dependency-Update-Toolupdate tool detected
0Fuzzingproject is not fuzzed
10Licenselicense file detected
10Maintained30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10
10Packagingpackaging workflow detected
0Pinned-Dependenciesdependency not pinned by hash detected -- score normalized to 0
10SASTSAST tool is run on all commits
4Security-Policysecurity policy file detected
0Signed-ReleasesProject has not signed or included provenance with any releases.
7Token-Permissionsdetected GitHub workflow tokens with excessive permissions
10Vulnerabilities0 existing vulnerabilities detected
Direct dependencies 27
RegistryPackageVersion constraintManifest
NuGetMicrosoft.SemanticKernelsrc/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj
NuGetMicrosoft.Extensions.DependencyInjectionsrc/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj
NuGetMicrosoft.SemanticKernel.Connectors.OpenAIsrc/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj
NuGetSystem.Text.Jsonsrc/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj
NuGetMicrosoft.SemanticKernelsrc/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj
NuGetSystem.Text.Jsonsrc/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj
NuGetMicrosoft.Extensions.DependencyInjectionsrc/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj
NuGetMicrosoft.SemanticKernel.Connectors.OpenAIsrc/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj
NuGetMicrosoft.Extensions.DependencyInjectionsrc/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj
NuGetMicrosoft.SemanticKernelsrc/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj
NuGetPatternKit.Coresrc/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj
NuGetSystem.Text.Jsonsrc/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj
NuGetMicrosoft.Data.Sqlitesrc/JD.SemanticKernel.Extensions.Memory.Sqlite/JD.SemanticKernel.Extensions.Memory.Sqlite.csproj
NuGetMicrosoft.SemanticKernelsrc/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj
NuGetMicrosoft.Extensions.DependencyInjectionsrc/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj
NuGetMicrosoft.SemanticKernel.Connectors.OpenAIsrc/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj
NuGetSystem.Text.Jsonsrc/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj
NuGetMicrosoft.SemanticKernelsrc/JD.SemanticKernel.Extensions.Plugins/JD.SemanticKernel.Extensions.Plugins.csproj
NuGetSystem.Text.Jsonsrc/JD.SemanticKernel.Extensions.Plugins/JD.SemanticKernel.Extensions.Plugins.csproj
NuGetMicrosoft.SemanticKernelsrc/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj
NuGetYamlDotNetsrc/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj
NuGetMicrosoft.Extensions.DependencyInjectionsrc/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj
NuGetMicrosoft.SemanticKernel.Connectors.OpenAIsrc/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj
NuGetSystem.Text.Jsonsrc/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj
NuGetMicrosoft.Extensions.DependencyInjectionsrc/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj
NuGetMicrosoft.SemanticKernelsrc/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj
NuGetMicrosoft.SemanticKernel.Connectors.OpenAIsrc/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj
All dependencies 14

Full resolved dependency set from the GitHub dependency graph: 7 direct and 7 indirect (transitive) packages. The transitive closure is complete when the repository commits a lockfile.

RegistryPackageVersionRelation
NuGetMicrosoft.Data.Sqlitedirect
NuGetMicrosoft.Extensions.DependencyInjectiondirect
NuGetMicrosoft.SemanticKerneldirect
NuGetMicrosoft.SemanticKernel.Connectors.OpenAIdirect
NuGetPatternKit.Coredirect
NuGetSystem.Text.Jsondirect
NuGetYamlDotNetdirect
NuGetcoverlet.collectorindirect
NuGetMicrosoft.Extensions.Httpindirect
NuGetMicrosoft.NET.Test.Sdkindirect
NuGetNSubstituteindirect
NuGetxunitindirect
NuGetxunit.runner.visualstudioindirect
NuGetXunit.SkippableFactindirect
Dependency advisories not assessed

Advisory matching could not run for this report: No resolved dependencies carried a version and a supported ecosystem

Raw JSON report machine-readable
{
  "data": {
    "repo": {
      "topics": [
        "ai-agents",
        "claude-code",
        "csharp",
        "dotnet",
        "nuget",
        "semantic-kernel",
        "semantic-memory"
      ],
      "is_fork": false,
      "size_kb": 740,
      "has_wiki": true,
      "homepage": "https://jerrettdavis.github.io/JD.SemanticKernel.Extensions/",
      "languages": {
        "C#": 359528,
        "Shell": 1174
      },
      "pushed_at": "2026-07-21T17:59:32Z",
      "created_at": "2026-02-27T03:47:44Z",
      "owner_type": "User",
      "updated_at": "2026-07-21T17:59:44Z",
      "description": "Semantic Kernel extensions for Claude Code skills, hooks, context compaction, and semantic memory.",
      "is_archived": false,
      "is_disabled": false,
      "license_spdx": "MIT",
      "default_branch": "main",
      "license_spdx_raw": "MIT",
      "primary_language": "C#",
      "significant_languages": [
        "C#"
      ]
    },
    "owner": {
      "blog": "jerrettdavis.com",
      "name": "JD Davis",
      "type": "User",
      "login": "JerrettDavis",
      "company": null,
      "location": "Tulsa, OK",
      "followers": 155,
      "avatar_url": "https://avatars.githubusercontent.com/u/2610199?v=4",
      "created_at": "2012-10-21T03:49:18Z",
      "is_verified": null,
      "public_repos": 125,
      "account_age_days": 5021
    },
    "license": {
      "state": "standard",
      "spdx_id": "MIT",
      "raw_spdx": "MIT",
      "file_present": true,
      "scorecard_found": true,
      "profile_has_license": true
    },
    "activity": {
      "releases": [
        {
          "tag": "v0.1.114",
          "kind": "patch",
          "published_at": "2026-07-21T17:59:41Z"
        },
        {
          "tag": "v0.1.113",
          "kind": "patch",
          "published_at": "2026-07-13T23:19:05Z"
        },
        {
          "tag": "v0.1.111",
          "kind": "patch",
          "published_at": "2026-07-07T17:35:39Z"
        },
        {
          "tag": "v0.1.110",
          "kind": "patch",
          "published_at": "2026-07-07T17:31:02Z"
        },
        {
          "tag": "v0.1.109",
          "kind": "patch",
          "published_at": "2026-06-30T20:15:34Z"
        },
        {
          "tag": "v0.1.108",
          "kind": "patch",
          "published_at": "2026-06-22T18:20:22Z"
        },
        {
          "tag": "v0.1.107",
          "kind": "patch",
          "published_at": "2026-06-22T18:12:44Z"
        },
        {
          "tag": "v0.1.106",
          "kind": "patch",
          "published_at": "2026-06-16T02:48:16Z"
        },
        {
          "tag": "v0.1.105",
          "kind": "patch",
          "published_at": "2026-06-16T02:40:10Z"
        },
        {
          "tag": "v0.1.104",
          "kind": "patch",
          "published_at": "2026-06-16T01:41:24Z"
        },
        {
          "tag": "v0.1.103",
          "kind": "patch",
          "published_at": "2026-06-12T15:00:01Z"
        },
        {
          "tag": "v0.1.102",
          "kind": "patch",
          "published_at": "2026-06-12T14:48:48Z"
        },
        {
          "tag": "v0.1.101",
          "kind": "patch",
          "published_at": "2026-06-08T17:05:47Z"
        },
        {
          "tag": "v0.1.100",
          "kind": "patch",
          "published_at": "2026-06-08T17:05:41Z"
        },
        {
          "tag": "v0.1.99",
          "kind": "patch",
          "published_at": "2026-06-02T03:12:36Z"
        },
        {
          "tag": "v0.1.98",
          "kind": "patch",
          "published_at": "2026-06-02T02:35:26Z"
        },
        {
          "tag": "v0.1.97",
          "kind": "patch",
          "published_at": "2026-05-29T16:20:35Z"
        },
        {
          "tag": "v0.1.95",
          "kind": "patch",
          "published_at": "2026-05-23T05:06:35Z"
        },
        {
          "tag": "v0.1.94",
          "kind": "patch",
          "published_at": "2026-05-23T01:26:37Z"
        },
        {
          "tag": "v0.1.93",
          "kind": "patch",
          "published_at": "2026-05-22T21:34:58Z"
        },
        {
          "tag": "v0.1.91",
          "kind": "patch",
          "published_at": "2026-05-22T21:31:01Z"
        },
        {
          "tag": "v0.1.90",
          "kind": "patch",
          "published_at": "2026-05-15T20:26:18Z"
        },
        {
          "tag": "v0.1.89",
          "kind": "patch",
          "published_at": "2026-05-15T20:26:17Z"
        },
        {
          "tag": "v0.1.88",
          "kind": "patch",
          "published_at": "2026-05-15T20:20:22Z"
        },
        {
          "tag": "v0.1.87",
          "kind": "patch",
          "published_at": "2026-05-15T20:15:11Z"
        },
        {
          "tag": "v0.1.86",
          "kind": "patch",
          "published_at": "2026-05-15T20:09:26Z"
        },
        {
          "tag": "v0.1.85",
          "kind": "patch",
          "published_at": "2026-05-15T20:09:00Z"
        },
        {
          "tag": "v0.1.84",
          "kind": "patch",
          "published_at": "2026-05-15T20:08:36Z"
        },
        {
          "tag": "v0.1.83",
          "kind": "patch",
          "published_at": "2026-05-15T20:07:58Z"
        },
        {
          "tag": "v0.1.82",
          "kind": "patch",
          "published_at": "2026-05-15T19:46:54Z"
        },
        {
          "tag": "v0.1.81",
          "kind": "patch",
          "published_at": "2026-05-15T19:42:39Z"
        },
        {
          "tag": "v0.1.80",
          "kind": "patch",
          "published_at": "2026-05-08T15:53:49Z"
        },
        {
          "tag": "v0.1.79",
          "kind": "patch",
          "published_at": "2026-05-08T15:14:10Z"
        },
        {
          "tag": "v0.1.78",
          "kind": "patch",
          "published_at": "2026-05-08T15:14:29Z"
        },
        {
          "tag": "v0.1.77",
          "kind": "patch",
          "published_at": "2026-05-05T00:16:43Z"
        },
        {
          "tag": "v0.1.71",
          "kind": "patch",
          "published_at": "2026-04-24T16:17:25Z"
        },
        {
          "tag": "v0.1.70",
          "kind": "patch",
          "published_at": "2026-04-24T12:37:40Z"
        },
        {
          "tag": "v0.1.69",
          "kind": "patch",
          "published_at": "2026-04-24T12:37:28Z"
        },
        {
          "tag": "v0.1.68",
          "kind": "patch",
          "published_at": "2026-04-24T12:37:27Z"
        },
        {
          "tag": "v0.1.67",
          "kind": "patch",
          "published_at": "2026-04-20T23:45:19Z"
        },
        {
          "tag": "v0.1.66",
          "kind": "patch",
          "published_at": "2026-04-17T15:20:52Z"
        },
        {
          "tag": "v0.1.65",
          "kind": "patch",
          "published_at": "2026-04-17T14:47:08Z"
        },
        {
          "tag": "v0.1.64",
          "kind": "patch",
          "published_at": "2026-04-17T14:47:00Z"
        },
        {
          "tag": "v0.1.63",
          "kind": "patch",
          "published_at": "2026-04-17T14:46:41Z"
        },
        {
          "tag": "v0.1.62",
          "kind": "patch",
          "published_at": "2026-04-17T14:46:20Z"
        },
        {
          "tag": "v0.1.61",
          "kind": "patch",
          "published_at": "2026-04-17T14:46:05Z"
        },
        {
          "tag": "v0.1.60",
          "kind": "patch",
          "published_at": "2026-04-10T15:05:36Z"
        },
        {
          "tag": "v0.1.59",
          "kind": "patch",
          "published_at": "2026-04-10T15:05:22Z"
        },
        {
          "tag": "v0.1.58",
          "kind": "patch",
          "published_at": "2026-04-10T15:01:59Z"
        },
        {
          "tag": "v0.1.57",
          "kind": "patch",
          "published_at": "2026-04-03T13:56:28Z"
        },
        {
          "tag": "v0.1.56",
          "kind": "patch",
          "published_at": "2026-03-31T21:50:42Z"
        },
        {
          "tag": "v0.1.55",
          "kind": "patch",
          "published_at": "2026-03-31T21:50:31Z"
        },
        {
          "tag": "v0.1.54",
          "kind": "patch",
          "published_at": "2026-03-31T21:50:14Z"
        },
        {
          "tag": "v0.1.53",
          "kind": "patch",
          "published_at": "2026-03-20T16:11:25Z"
        },
        {
          "tag": "v0.1.52",
          "kind": "patch",
          "published_at": "2026-03-20T16:11:21Z"
        },
        {
          "tag": "v0.1.51",
          "kind": "patch",
          "published_at": "2026-03-20T16:11:02Z"
        },
        {
          "tag": "v0.1.50",
          "kind": "patch",
          "published_at": "2026-03-17T03:23:17Z"
        },
        {
          "tag": "v0.1.49",
          "kind": "patch",
          "published_at": "2026-03-17T02:55:33Z"
        },
        {
          "tag": "v0.1.48",
          "kind": "patch",
          "published_at": "2026-03-16T19:45:50Z"
        },
        {
          "tag": "v0.1.47",
          "kind": "patch",
          "published_at": "2026-03-16T19:45:46Z"
        },
        {
          "tag": "v0.1.46",
          "kind": "patch",
          "published_at": "2026-03-16T19:44:59Z"
        },
        {
          "tag": "v0.1.45",
          "kind": "patch",
          "published_at": "2026-03-16T19:44:40Z"
        },
        {
          "tag": "v0.1.44",
          "kind": "patch",
          "published_at": "2026-03-08T02:11:57Z"
        },
        {
          "tag": "v0.1.43",
          "kind": "patch",
          "published_at": "2026-03-08T02:06:57Z"
        },
        {
          "tag": "v0.1.42",
          "kind": "patch",
          "published_at": "2026-03-08T01:57:29Z"
        },
        {
          "tag": "v0.1.41",
          "kind": "patch",
          "published_at": "2026-03-03T21:42:45Z"
        },
        {
          "tag": "v0.1.40",
          "kind": "patch",
          "published_at": "2026-03-03T00:19:24Z"
        },
        {
          "tag": "v0.1.39",
          "kind": "patch",
          "published_at": "2026-02-28T02:35:20Z"
        },
        {
          "tag": "v0.1.38",
          "kind": "patch",
          "published_at": "2026-02-28T02:03:12Z"
        },
        {
          "tag": "v0.1.37",
          "kind": "patch",
          "published_at": "2026-02-28T01:47:12Z"
        },
        {
          "tag": "v0.1.36",
          "kind": "patch",
          "published_at": "2026-02-28T01:29:43Z"
        },
        {
          "tag": "v0.1.34",
          "kind": "patch",
          "published_at": "2026-02-27T21:59:27Z"
        },
        {
          "tag": "v0.1.33",
          "kind": "patch",
          "published_at": "2026-02-27T21:47:08Z"
        },
        {
          "tag": "v0.1.32",
          "kind": "patch",
          "published_at": "2026-02-27T21:36:14Z"
        },
        {
          "tag": "v0.1.31",
          "kind": "patch",
          "published_at": "2026-02-27T21:14:54Z"
        },
        {
          "tag": "v0.1.29",
          "kind": "patch",
          "published_at": "2026-02-27T20:49:30Z"
        },
        {
          "tag": "v0.1.28",
          "kind": "patch",
          "published_at": "2026-02-27T20:36:06Z"
        },
        {
          "tag": "v0.1.17",
          "kind": "patch",
          "published_at": "2026-02-27T17:52:56Z"
        },
        {
          "tag": "v0.1.16",
          "kind": "patch",
          "published_at": "2026-02-27T17:50:35Z"
        },
        {
          "tag": "v0.1.14",
          "kind": "patch",
          "published_at": "2026-02-27T16:32:44Z"
        },
        {
          "tag": "v0.1.13",
          "kind": "patch",
          "published_at": "2026-02-27T16:07:47Z"
        },
        {
          "tag": "v0.1.12",
          "kind": "patch",
          "published_at": "2026-02-27T15:33:11Z"
        },
        {
          "tag": "v0.1.11",
          "kind": "patch",
          "published_at": "2026-02-27T15:31:06Z"
        },
        {
          "tag": "v0.1.10",
          "kind": "patch",
          "published_at": "2026-02-27T15:10:53Z"
        },
        {
          "tag": "v0.1.8",
          "kind": "patch",
          "published_at": "2026-02-27T04:50:55Z"
        },
        {
          "tag": "v0.1.7",
          "kind": "patch",
          "published_at": "2026-02-27T04:44:03Z"
        },
        {
          "tag": "v0.1.6",
          "kind": "patch",
          "published_at": "2026-02-27T04:44:05Z"
        },
        {
          "tag": "v0.1.5",
          "kind": "patch",
          "published_at": "2026-02-27T04:44:03Z"
        },
        {
          "tag": "v0.1.4",
          "kind": "patch",
          "published_at": "2026-02-27T04:39:37Z"
        },
        {
          "tag": "v0.1.3",
          "kind": "patch",
          "published_at": "2026-02-27T04:31:37Z"
        },
        {
          "tag": "v0.1.2",
          "kind": "patch",
          "published_at": "2026-02-27T03:53:36Z"
        }
      ],
      "recent_commits": [
        {
          "oid": "8762a256788b743bec7d07ba56bdb097fecda9db",
          "body": "* chore(deps): Bump the nuget-dependencies group with 9 updates\n\nBumps Meziantou.Analyzer from 3.0.122 to 3.0.123\nBumps Microsoft.Data.Sqlite from 10.0.9 to 10.0.10\nBumps Microsoft.Extensions.DependencyInjection from 10.0.9 to 10.0.10\nBumps Microsoft.Extensions.Http from 10.0.9 to 10.0.10\nBumps Micr\n[…]\nthub.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: JerrettDavis <mxjerrett@gmail.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the nuget-dependencies group with 9 updates (#82)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-21T17:58:17Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "ec368cba6a2b31181d0fe3468a2f7bdb5429d2d7",
          "body": "…s (#79)\n\nBumps the github-actions-dependencies group with 2 updates: [marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment) and [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `marocchino/sticky-pull-request-comment` from 3.0.4\n[…]\nemver-minor\n  dependency-group: github-actions-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the github-actions-dependencies group with 2 update…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-13T23:17:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "b02741bb4e1ff98b5b2e100deda3fb9c38b60639",
          "body": "Bumps Meziantou.Analyzer from 3.0.119 to 3.0.122\nBumps Microsoft.SemanticKernel from 1.77.0 to 1.78.0\nBumps Microsoft.SemanticKernel.Connectors.OpenAI from 1.77.0 to 1.78.0\nBumps Nerdbank.GitVersioning from 3.10.85 to 3.10.91\nBumps PatternKit.Core from 0.147.8 to 0.147.10\n\n---\nupdated-dependencies:\n\n[…]\n-update:semver-patch\n  dependency-group: nuget-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the nuget-dependencies group with 5 updates (#80)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-13T23:17:15Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "c750d53a8e9f56e5569cbb389021d11e7839e8e1",
          "body": "…s (#77)\n\nBumps the github-actions-dependencies group with 2 updates: [marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment) and [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `marocchino/sticky-pull-request-comment` from 3 to \n[…]\nemver-patch\n  dependency-group: github-actions-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the github-actions-dependencies group with 2 update…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-07T17:34:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe6b7c51050263da87f18a137e413c36e8a7a1f9",
          "body": "Bumps Meziantou.Analyzer from 3.0.115 to 3.0.119\nBumps PatternKit.Core from 0.147.7 to 0.147.8\n\n---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.119\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: nuget-depe\n[…]\n-update:semver-patch\n  dependency-group: nuget-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the nuget-dependencies group with 2 updates (#78)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-07-07T17:29:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3a1f27fbc9925fb20489d3bab791f5b7ba1be4f9",
          "body": "Bumps Meziantou.Analyzer from 3.0.104 to 3.0.115\nBumps Microsoft.NET.Test.Sdk from 18.6.0 to 18.7.0\nBumps Nerdbank.GitVersioning from 3.9.50 to 3.10.85\nBumps PatternKit.Core from 0.147.2 to 0.147.7\nBumps YamlDotNet from 18.0.0 to 18.1.0\n\n---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyze\n[…]\n-update:semver-minor\n  dependency-group: nuget-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the nuget-dependencies group with 5 updates (#76)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-30T20:14:13Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "7ec9851d74d4df86a3b751ad37fe4eeadbd9a91a",
          "body": "…ctory with 2 updates (#73)\n\nBumps the github-actions-dependencies group with 2 updates in the / directory: [actions/checkout](https://github.com/actions/checkout) and [EnricoMi/publish-unit-test-result-action](https://github.com/enricomi/publish-unit-test-result-action).\n\n\nUpdates `actions/checkout\n[…]\nemver-minor\n  dependency-group: github-actions-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the github-actions-dependencies group across 1 dire…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-22T18:19:07Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fc174fd6e48d2e1244c878c70b3272e41b51a681",
          "body": "… Integration Tests (#75)\n\nSQLitePCLRaw.lib.e_sqlite3 2.1.11 (GHSA-2m69-gcr7-jv3q) is pulled in as\na transitive dependency by Microsoft.Data.Sqlite 10.x. The 2.x series has\nno patched release and the 3.x series is incompatible with the SQLitePCLRaw.core\n2.x managed shim. Set NuGetAuditMode=direct to\n[…]\nt NU1903 from being\nraised on this transitive package while keeping direct dependency auditing active.\n\nCo-authored-by: CI Fix <fix@example.com>\nCo-authored-by: Claude Opus 4.6 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ci): suppress transitive SQLite audit warning blocking CodeQL and…",
          "author_name": "JD Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-06-22T18:10:41Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "54688fb6ab3a1e0f8115bd9035802843f516a7c1",
          "body": "Bumps Meziantou.Analyzer from 3.0.102 to 3.0.104\n\n---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.104\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: nuget-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the nuget-dependencies group with 1 update (#72)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-16T02:40:45Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "0ee9244c9a3e7f9c65aa7b24daceec9837bc0016",
          "body": "Bumps the github-actions-dependencies group with 1 update: [EnricoMi/publish-unit-test-result-action](https://github.com/enricomi/publish-unit-test-result-action).\n\n\nUpdates `EnricoMi/publish-unit-test-result-action` from 2 to 2.23.0\n- [Release notes](https://github.com/enricomi/publish-unit-test-re\n[…]\nemver-minor\n  dependency-group: github-actions-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump EnricoMi/publish-unit-test-result-action (#71)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-16T02:22:00Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "513c882ac17af426e64b993b68188f241963e8fc",
          "body": null,
          "is_bot": false,
          "headline": "chore: harden grouped dependency updates",
          "author_name": "JD Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-06-16T01:18:15Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9ae03e993f95598ebf4853fd0deac3a829534b08",
          "body": "…(#69)\n\nBumps the all-dependencies group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `github/codeql-action` from 4.36.1 to 4.36.2\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/bl\n[…]\non-update:semver-patch\n  dependency-group: all-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump github/codeql-action in the all-dependencies group …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-12T14:58:29Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10bdb41a14d7eb9de8704bdea358647ba9a790d6",
          "body": "Bumps Meziantou.Analyzer from 3.0.96 to 3.0.102\nBumps Microsoft.Data.Sqlite from 10.0.8 to 10.0.9\nBumps Microsoft.Extensions.DependencyInjection from 10.0.8 to 10.0.9\nBumps Microsoft.Extensions.Http from 10.0.8 to 10.0.9\nBumps Microsoft.SemanticKernel from 1.76.0 to 1.77.0\nBumps Microsoft.SemanticKe\n[…]\non-update:semver-patch\n  dependency-group: all-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the all-dependencies group with 8 updates (#70)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-12T14:47:18Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "8b3d595d5ef272352350c3a84e47feb6795b743d",
          "body": "Bumps Meziantou.Analyzer from 3.0.96 to 3.0.98\nBumps Microsoft.SemanticKernel from 1.76.0 to 1.77.0\nBumps Microsoft.SemanticKernel.Connectors.OpenAI from 1.76.0 to 1.77.0\n\n---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.98\n  dependency-type: direct:productio\n[…]\non-update:semver-minor\n  dependency-group: all-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the all-dependencies group with 3 updates (#68)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T17:04:41Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "a4104828284beb0fecdbada3013d3f7b0bab7933",
          "body": "…(#67)\n\nBumps the all-dependencies group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `github/codeql-action` from 4.36.0 to 4.36.1\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/bl\n[…]\non-update:semver-patch\n  dependency-group: all-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump github/codeql-action in the all-dependencies group …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-06-08T17:04:24Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "cdd01bb5850a545d5836932c86b1ab299d4f2ab8",
          "body": null,
          "is_bot": false,
          "headline": "refactor: reuse MCP discovery chain (#66)",
          "author_name": "JD Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-06-02T03:11:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "acb4c517b97705f7507b2382d862fbe13752373e",
          "body": null,
          "is_bot": false,
          "headline": "refactor: dogfood PatternKit MCP registry (#65)",
          "author_name": "JD Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-06-02T02:33:58Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "3bf54b910f48df87802b22729cfe22910f6dcbef",
          "body": "…(#62)\n\nBumps the all-dependencies group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `github/codeql-action` from 4.35.5 to 4.36.0\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/bl\n[…]\non-update:semver-minor\n  dependency-group: all-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump github/codeql-action in the all-dependencies group …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-29T16:19:03Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "1cd889170c5c23f064d2792e204e0edddd22fee2",
          "body": "Bumps Meziantou.Analyzer from 3.0.91 to 3.0.96\nBumps Microsoft.NET.Test.Sdk from 18.5.1 to 18.6.0\n\n---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.96\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all-depe\n[…]\non-update:semver-minor\n  dependency-group: all-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the all-dependencies group with 2 updates (#63)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-29T16:18:40Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "fe0fab1c6a0aec81e71875276641fd7573f6caa7",
          "body": "Bumps coverlet.collector from 10.0.0 to 10.0.1\nBumps Meziantou.Analyzer from 3.0.85 to 3.0.90\nBumps Microsoft.SourceLink.GitHub from 10.0.203 to 10.0.300\nBumps System.Text.Json from 10.0.7 to 10.0.8\n\n---\nupdated-dependencies:\n- dependency-name: coverlet.collector\n  dependency-version: 10.0.1\n  depen\n[…]\ndependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: JD Davis <mxjerrett@gmail.com>",
          "is_bot": true,
          "headline": "chore(deps): Bump the all-dependencies group with 4 updates (#61)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-23T05:05:17Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "5e9cb30fde324a7f3b551240b3f0828281f788f5",
          "body": null,
          "is_bot": false,
          "headline": "fix(ci): fix syntax error in conventional commits workflow",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-23T01:25:09Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5a97e68e90fe96a01be12babc4bac2bf3f6426ed",
          "body": "…(#60)\n\nBumps the all-dependencies group with 1 update: [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `github/codeql-action` from 4 to 4.35.5\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/ma\n[…]\non-update:semver-minor\n  dependency-group: all-dependencies\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "chore(deps): bump github/codeql-action in the all-dependencies group …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-22T21:33:33Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "ce9486abc0a6b61227e1a692dc6f619c6ef9a874",
          "body": "…rides",
          "is_bot": false,
          "headline": "chore(deps): update all dependencies to latest and remove VersionOver…",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-22T21:33:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6829875a55552ded032d32b3fd4915e50f5fe5bf",
          "body": "…ooldown",
          "is_bot": false,
          "headline": "build(ci): configure dependabot grouping, conventional commits, and c…",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-22T21:29:39Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1585aa6757fda94f2661704b6322f9226d1ac0fc",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.SemanticKernel\n  dependency-version: 1.76.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SemanticKernel from 1.75.0 to 1.76.0 (#54)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-15T20:25:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "768361544e4dcc54c4c1be78620af671bdd83f97",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.Http\n  dependency-version: 10.0.8\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.Http from 10.0.7 to 10.0.8 (#53)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-15T20:24:54Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "a53f42c6a6b9075c021d7d8fc7bf90578419113c",
          "body": "Dependabot uses \"Bump package from X to Y\" format which is not a standard\nconventional commit. Allow this pattern alongside the standard types.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "fix(ci): allow dependabot commit format in conventional commits workflow",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-15T20:19:09Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "b59196dd6e681a123b1ec0bc3405d2991d92516d",
          "body": "Aligns OpenAI connector version with the SemanticKernel 1.76.0 update\nto resolve NU1605 downgrade warnings treated as errors.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(deps): bump Microsoft.SemanticKernel.Connectors.OpenAI to 1.76.0",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-15T20:13:28Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "741efc8e4f16c0570729eebd82535322ffaec7ff",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.85\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.58 to 3.0.85 (#50)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-15T20:07:55Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b715d9b8c402476dbdf2cc6396fdb98d41a6f9a4",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Data.Sqlite\n  dependency-version: 10.0.8\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Data.Sqlite from 10.0.7 to 10.0.8 (#51)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-15T20:07:44Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ec57689f25bce1bca569d189de699df34361969d",
          "body": "…#52)\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.DependencyInjection\n  dependency-version: 10.0.8\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.DependencyInjection from 10.0.7 to 10.0.8 (…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-15T20:07:21Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5d54d758f3749b2487dbf45574e1a66980b68b3d",
          "body": "Bumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4 to 5.\n- [Release notes](https://github.com/actions/dependency-review-action/releases)\n- [Commits](https://github.com/actions/dependency-review-action/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dep\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): Bump actions/dependency-review-action from 4 to 5 (#49)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-15T20:06:22Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "f71efaaaf86c451436e137da998500ee8ed7c215",
          "body": "Move commit-msg hook to tracked .githooks directory and configure\ngit to use it via core.hooksPath.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "chore(githooks): add conventional commits git hook",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-15T19:49:15Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "cd56f60a75c11058899f1aeff3d1567ec8ca78fd",
          "body": "Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "[SKExtensions] Group dependabot updates for NuGet and GitHub Actions",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-15T19:41:19Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "19777a938df34f1656a4ea213b16d18968d82d91",
          "body": "---\nupdated-dependencies:\n- dependency-name: System.Text.Json\n  dependency-version: 10.0.7\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump System.Text.Json from 10.0.6 to 10.0.7 (#47)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-08T15:52:22Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "6b030c3b0e0788a9be9353f48eb93f79d5bef399",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.SourceLink.GitHub\n  dependency-version: 10.0.203\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SourceLink.GitHub from 10.0.202 to 10.0.203 (#46)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-08T15:12:38Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "5dfde30925e866817c21d4a40f6d074db892eb8f",
          "body": "---\nupdated-dependencies:\n- dependency-name: YamlDotNet\n  dependency-version: 17.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump YamlDotNet from 17.0.0 to 17.1.0 (#48)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-08T15:12:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "52d1b95ed471ef2c4a5346bc4cf914cbdee44ff6",
          "body": "Fixes NU1605 package downgrade warning treated as error.\n\nCo-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>",
          "is_bot": false,
          "headline": "[SKExtensions] Bump System.Text.Json from 10.0.5 to 10.0.6",
          "author_name": "JerrettDavis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-05-05T00:15:20Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "70a6625f9789fab3f51f842f24f59bcef88533ae",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.Http\n  dependency-version: 10.0.7\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.Http from 10.0.6 to 10.0.7 (#40)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T23:24:36Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "46a616e387b196d5cb4ab73c04d76de806e37278",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.58\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.52 to 3.0.58 (#41)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T23:10:33Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "aff3444734bd150236afd49dfa817ec4029464e2",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.NET.Test.Sdk\n  dependency-version: 18.5.1\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.NET.Test.Sdk from 18.4.0 to 18.5.1 (#42)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T16:07:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "df3dadf35dc3a02d680cb0f593dd9f8022de1e75",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.SemanticKernel\n  dependency-version: 1.75.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SemanticKernel from 1.73.0 to 1.75.0 (#43)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T16:07:14Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "66cba89c446bd117e45c9b35ad53a307a87bc1c6",
          "body": "… (#44)\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.SemanticKernel.Connectors.OpenAI\n  dependency-version: 1.75.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SemanticKernel.Connectors.OpenAI from 1.74.0 to 1.75.0…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-05-04T16:07:05Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "19a4ba3fafffc3c29df1f23d61e45ff6cde78e66",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.DependencyInjection\n  dependency-version: 10.0.7\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.DependencyInjection to 10.0.7 (#39)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-24T16:15:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b1d7f0601130729eaae08ab51334b41a4104ec42",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Data.Sqlite\n  dependency-version: 10.0.7\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Data.Sqlite from 10.0.6 to 10.0.7 (#38)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-24T12:36:16Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "678484348b3dd015d1fb4e18fbc3b6a6436c75d3",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.52\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.48 to 3.0.52 (#37)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-24T12:36:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "deb560498ae40f6d7b100a5a977e24bc54dfc3b3",
          "body": "---\nupdated-dependencies:\n- dependency-name: coverlet.collector\n  dependency-version: 10.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump coverlet.collector from 8.0.1 to 10.0.0 (#36)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-24T12:36:06Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "88bf1a83f9691d5584d469ec29e20d603cddadd2",
          "body": "* Bump Microsoft.Extensions.Http from 10.0.5 to 10.0.6\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.Http\n  dependency-version: 10.0.6\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\n\n* fix:\n[…]\nauthored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: JerrettDavis <mxjerrett@gmail.com>\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.Http from 10.0.5 to 10.0.6 (#34)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-20T23:43:59Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "197f849706b4455697d89c3a4d526e361d334f77",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.48\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.46 to 3.0.48 (#31)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-17T15:19:28Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f35195bde153a55d0fdc89b616103cf1a1ec9863",
          "body": "Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.\n- [Release notes](https://github.com/softprops/action-gh-release/releases)\n- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/softprops/\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): Bump softprops/action-gh-release from 2 to 3 (#29)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-17T14:45:43Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "44b2c34c480400c1993d88b8e39f06a3460176cf",
          "body": "Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 4 to 5.\n- [Release notes](https://github.com/actions/upload-pages-artifact/releases)\n- [Commits](https://github.com/actions/upload-pages-artifact/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): Bump actions/upload-pages-artifact from 4 to 5 (#30)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-17T14:45:31Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "46b43b249204a97f62cdefca0098b4cfee9f42dd",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Data.Sqlite\n  dependency-version: 10.0.6\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Data.Sqlite from 10.0.5 to 10.0.6 (#32)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-17T14:45:08Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "369156561bf5e59173cc2307619061898a82459a",
          "body": "…#33)\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.DependencyInjection\n  dependency-version: 10.0.6\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.DependencyInjection from 10.0.5 to 10.0.6 (…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-17T14:44:53Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "f2f70308187f0e6f510ee32cfe64afb254f39e9e",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.SourceLink.GitHub\n  dependency-version: 10.0.202\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SourceLink.GitHub from 10.0.201 to 10.0.202 (#35)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-17T14:44:40Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "ce5ca00335c19bdf9499ed4249b3a6096bac9253",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.46\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.44 to 3.0.46 (#26)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-10T15:04:23Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7e9f4022d498b4f13beddcb795e84cebfe2e2be8",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.NET.Test.Sdk\n  dependency-version: 18.4.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.NET.Test.Sdk from 18.3.0 to 18.4.0 (#27)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-10T15:04:02Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "8f803befa1c2452e47a28052d22bf2f4876806c1",
          "body": "---\nupdated-dependencies:\n- dependency-name: YamlDotNet\n  dependency-version: 17.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump YamlDotNet from 16.3.0 to 17.0.0 (#28)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-10T15:00:52Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "4a0873168d89929a969f4e049cb3627d528c8d03",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.44\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.28 to 3.0.44 (#25)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-04-03T13:55:20Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "61ddf7b0c3b089d1b1da1411de4ad457501684ba",
          "body": "Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.\n- [Release notes](https://github.com/actions/deploy-pages/releases)\n- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/deploy-pages\n  dependency-\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): Bump actions/deploy-pages from 4 to 5 (#21)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-31T21:49:28Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "3611a4ce71db276faf36c249350ccbbad2b837cf",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.28\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.25 to 3.0.28 (#22)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-31T21:49:17Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "7c6f151b5e300274989d0827fab8da620d0342fd",
          "body": "… (#24)\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.SemanticKernel.Connectors.OpenAI\n  dependency-version: 1.74.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SemanticKernel.Connectors.OpenAI from 1.73.0 to 1.74.0…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-31T21:49:03Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "d135f20e3c4a2d48a741f4e4d7abbd727619ceda",
          "body": "---\nupdated-dependencies:\n- dependency-name: coverlet.collector\n  dependency-version: 8.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump coverlet.collector from 8.0.0 to 8.0.1 (#18)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-20T16:10:00Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "40158106da235ffb4c85ff114c539f596923011b",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.25\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.23 to 3.0.25 (#19)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-20T16:09:51Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "9d3e275d8065ee5af771c2bf0d0d1932bafb16e2",
          "body": "---\nupdated-dependencies:\n- dependency-name: System.Text.Json\n  dependency-version: 10.0.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump System.Text.Json from 10.0.3 to 10.0.5 (#20)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-20T16:09:42Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "1cf3fb8fd0dfdd6e45a995385aec3fb48c396992",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.Http\n  dependency-version: 10.0.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.Http from 10.0.3 to 10.0.5 (#16)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-17T03:21:50Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "400014663559fdb26f23773588ce46867b204a58",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.SourceLink.GitHub\n  dependency-version: 10.0.201\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SourceLink.GitHub from 10.0.103 to 10.0.201 (#17)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-17T02:54:07Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "cbc043620ca33cce93975d8b51918ccc41d0c45c",
          "body": "---\nupdated-dependencies:\n- dependency-name: Microsoft.Data.Sqlite\n  dependency-version: 10.0.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Data.Sqlite from 10.0.3 to 10.0.5 (#14)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-16T19:44:32Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "22614efece3319b85dcbc6ed2550afa1f0711a3a",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.23\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.19 to 3.0.23 (#13)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-16T19:44:18Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "b276049c55dd2e748d57c15ae604d7f182ab7a4b",
          "body": "…#15)\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.Extensions.DependencyInjection\n  dependency-version: 10.0.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.Extensions.DependencyInjection from 10.0.3 to 10.0.5 (…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-16T19:43:47Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "c121b9468abc6d4b4c788157771a74ec2b163348",
          "body": "…(#12)\n\nBumps [marocchino/sticky-pull-request-comment](https://github.com/marocchino/sticky-pull-request-comment) from 2 to 3.\n- [Release notes](https://github.com/marocchino/sticky-pull-request-comment/releases)\n- [Commits](https://github.com/marocchino/sticky-pull-request-comment/compare/v2...v3)\n\n[…]\nirect:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "build(deps): Bump marocchino/sticky-pull-request-comment from 2 to 3 …",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-16T19:43:19Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "10824c5246a8eb118d1c72bbf6f9d7f8a923db78",
          "body": "* Bump Microsoft.SemanticKernel from 1.72.0 to 1.73.0\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.SemanticKernel\n  dependency-version: 1.73.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\n\n* chore:\n[…]\nsions\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: JD Davis <mxjerrett@gmail.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SemanticKernel from 1.72.0 to 1.73.0 (#10)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-08T02:10:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "0eadf7eac7a73547bda034454ca500116685fa83",
          "body": "… (#11)\n\n* Bump Microsoft.SemanticKernel.Connectors.OpenAI from 1.72.0 to 1.73.0\n\n---\nupdated-dependencies:\n- dependency-name: Microsoft.SemanticKernel.Connectors.OpenAI\n  dependency-version: 1.73.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n...\n\nSigned-off-by: d\n[…]\nences\n\n---------\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>\nCo-authored-by: JD Davis <mxjerrett@gmail.com>",
          "is_bot": true,
          "headline": "Bump Microsoft.SemanticKernel.Connectors.OpenAI from 1.72.0 to 1.73.0…",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-08T02:05:37Z",
          "body_truncated": true,
          "is_coding_agent": false
        },
        {
          "oid": "9da97c7f8cb4a4ba5d5fa1bf8db899c67238dc32",
          "body": "---\nupdated-dependencies:\n- dependency-name: Meziantou.Analyzer\n  dependency-version: 3.0.19\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>",
          "is_bot": true,
          "headline": "Bump Meziantou.Analyzer from 3.0.18 to 3.0.19 (#9)",
          "author_name": "dependabot[bot]",
          "author_login": "dependabot[bot]",
          "committed_at": "2026-03-08T01:56:11Z",
          "body_truncated": false,
          "is_coding_agent": false
        },
        {
          "oid": "350a7f4f29d0f5183433ce8f49626505b19a8b80",
          "body": "…viders (#8)\n\n* Initial plan\n\n* feat: Add first-class MCP (Model Context Protocol) support to JD.SemanticKernel.Extensions\n\nCo-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>\n\n* fix: Apply PR review feedback to MCP transport, factory, discovery, and tests\n\nCo-authored-by: J\n[…]\ns@users.noreply.github.com>\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: Add first-class MCP (Model Context Protocol) support across pro…",
          "author_name": "Copilot",
          "author_login": "Copilot",
          "committed_at": "2026-03-03T21:41:22Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "25f349947a3763293c6ed7c1b23644dd4e635d1e",
          "body": "The HookParser expected hooks as a flat JSON array but Claude Code\nplugins use a nested dictionary format where event names are keys\nmapping to arrays of hook groups. Add a custom JsonConverter that\nhandles both the legacy flat array format and the nested dictionary\nformat used by real Claude Code p\n[…]\nsted hook entries. Timeout values specified in seconds (the Claude\nCode convention) are converted to milliseconds for consistency.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix(hooks): support Claude Code nested dictionary hook format",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-03-03T00:18:12Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "2eb1b613beb6033e3a51eb59181f280a73d442a0",
          "body": "The TUI agent has been promoted to its own repository at\nhttps://github.com/JerrettDavis/JD.AI\n\nRemoved:\n- samples/JD.AI.Tui/ (60+ source files)\n- tests/JD.AI.Tui.Tests/ (29 test files, 281 tests)\n- tests/JD.AI.Tui.IntegrationTests/ (3 test files)\n- Solution references to all three projects\n\nThe extensions repo retains 165 unit tests across 6 library projects.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "refactor: extract JD.AI.Tui to standalone repo",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-28T02:34:08Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "7aea416f83597292d6b178c39e15e36b4ee1a5cb",
          "body": "…tion workflow\n\nThe ollama/ollama Docker image doesn't include curl, so the\ncontainer health check was failing during initialization. Removed\nthe health-cmd options and instead rely on the Wait for Ollama step\nwhich runs on the host where curl is available.\n\nAlso added checks: write permission so the test result publisher\ncan create check runs.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: remove Docker health check and add checks permission for integra…",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-28T02:01:42Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a5e3caa2059f89c441ae814317ec54fa838b4cfe",
          "body": "Add a dedicated integration.yml workflow that spins up Ollama as a\nDocker service container and runs all integration tests with real LLM\ninference.\n\nWorkflow triggers:\n- Push to main\n- Nightly schedule (6:00 UTC)\n- Manual dispatch with configurable model inputs\n\nCI models (small/fast for CPU runners\n[…]\nonGuard.OllamaModel\n  instead of hardcoded model names\n\nLocal development defaults remain unchanged (llama3.2:3b, all-minilm:22m).\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add Ollama integration test workflow for GitHub Actions",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-28T01:45:32Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8760cfa858976b91354cc62f439c247e171b4fe8",
          "body": "Implement a comprehensive multi-agent orchestration system with three\nexecution tiers and four orchestration strategies:\n\nExecution Tiers:\n- Single-turn: One-shot prompt→response (existing behavior, refactored)\n- Multi-turn: Agent runs its own conversation loop with tool calling\n- Team: Named group \n[…]\nubagentTools with spawn_team and execution mode parameter.\n64 new unit tests covering TeamContext, AgentEvent, configs, and tools.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add subagent swarms and orchestrated team execution",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-28T01:20:56Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "8c02996f5a86bd4aaa7532d41e1405efb8945c7b",
          "body": "…s, web search, sandbox\n\nImplement five major feature parity additions to the TUI:\n\nPhase 1 - Project Instructions:\n- InstructionsLoader discovers JDAI.md, CLAUDE.md, AGENTS.md, copilot-instructions.md\n- Scans from CWD up to git root, merges all found files into system prompt\n- Supports include: dir\n[…]\n SlashCommandRouter, ToolConfirmationFilter, and Program.cs\nto wire all new features. Fixes rollback to use dynamic system prompt.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add feature parity phases - instructions, subagents, checkpoint…",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T22:49:14Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "249e042ce8a88416b58cbdec04bfb5a12d8fa655",
          "body": "- Ctrl+C during active turn cancels only the current turn (like ESC)\n- Ctrl+C at idle prompt requires double-tap within 1.5s to exit\n- Add CancelTurn() to TurnInputMonitor for external cancellation\n- Track activeTurnMonitor via Volatile.Read/Write for signal safety\n- Wrap compaction in try/catch for\n[…]\nts explicitly after loop to prevent ObjectDisposedException\n- Eliminates TaskCanceledException and ObjectDisposedException crashes\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: graceful Ctrl+C with double-tap exit, no crash",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T21:58:09Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "101c14c1edba7ed8a151ab4c63c932d2bab2afaa",
          "body": "Replace Spectre.Console AnsiConsole.Confirm with custom key handler that\naccepts Y/Enter as yes and N/Escape as no. This prevents ESC from\ntriggering the double-tap cancel flow during y/n confirmation prompts.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: treat ESC as 'no' in tool permission prompts",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T21:45:39Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "9a0b957a9f20a03f5f159a54216361ced06da4b4",
          "body": "- Add PastedContent model with PasteKind enum and InputResult class\n- Detect paste via Ctrl+V (cross-platform clipboard read) and burst timing\n- Collapse large pastes into visual chips [📋 Pasted content #N ...]\n- Support chip navigation (arrow keys skip chips) and removal (backspace)\n- Add ReadLineW\n[…]\n Add InternalsVisibleTo for test access to formatting helpers\n- Add 15 tests for PastedContent formatting and InputResult assembly\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add clipboard paste support with collapsible chips",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T21:34:45Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "d84103c9bbd50e22012f16c3b4924dc11d8700b2",
          "body": "…g input\n\nSetCursorPosition threw ArgumentOutOfRangeException when input text\nexceeded console width. Now properly calculates wrapped row/col:\n- SetCursorPos uses modulo/division for multi-row cursor positioning\n- RedrawInputLine clears all wrapped rows, tracks inputLineCount\n- Dropdown renders belo\n[…]\nbounds\n\nFixes crash: 'The value must be greater than or equal to zero and\nless than the console''s buffer size in that dimension.'\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: handle line wrapping in InteractiveInput to prevent crash on lon…",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T21:13:18Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "6f57769dc68560909840b8c57559bd61dbf08111",
          "body": "When Claude Code or Copilot is installed but IsAuthenticatedAsync fails,\ndetectors now attempt a silent CLI-based refresh before reporting failure:\n- Claude Code: runs 'claude --version' to trigger internal token refresh\n- Copilot: runs 'gh auth status' to validate/refresh OAuth token\n- Shared FindC\n[…]\natform)\n\nIf refresh succeeds, re-checks auth and proceeds normally.\nIf refresh fails, reports actionable error with login command.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: auto-refresh expired auth via CLI when providers are installed",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T21:11:23Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "813d5f46c4517e5f6b7c0a59c806c77b5a88ed53",
          "body": "- UpdateChecker queries NuGet V3 API for latest JD.AI.Tui version\n- 24-hour cache in ~/.jdai/update-check.json to avoid spamming NuGet\n- Non-blocking background check fires at startup, shows result after banner\n- UpdatePrompter renders Spectre.Console notification and runs dotnet tool update\n- /upda\n[…]\nchecks\n- --force-update-check CLI flag bypasses 24-hour cache\n- 18 new tests for version comparison, cache logic, and record types\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add auto-update check on startup with /update command",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T20:47:57Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "3f6e0a209180aa5e056c7003edcf14e1975a30fe",
          "body": "- MA0016: suppress on POCO collection properties (SessionRecord.cs)\n- CA1003: change event Action? to EventHandler? (InteractiveInput.cs)\n- CA1034: move IntegrityResult out of nested class (SessionIntegrity.cs)\n- MA0006: use string.Equals in SlashCommandRouter and CompletionProviderTests\n- CA1849: replace File.WriteAllText with async in test files\n- MA0140: remove identical if/else branches (ToolIntegrationTests.cs)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: resolve all CI analyzer warnings treated as errors",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T20:34:50Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "d05559ee85f488961b5fde491cda91475f600bcb",
          "body": "- HistoryViewer: scrollable turn browser with arrow keys, detail view, Ctrl+R rollback\n- InteractiveInput: double-ESC at empty prompt triggers OnDoubleEscape event\n- Program.cs: wired history viewer with rollback (deletes turns, rebuilds chat history)\n- Shows turn metadata: model, tokens, duration, tool calls, files touched, thinking text\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add interactive history viewer and idle double-ESC handler",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T20:17:34Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "a22841a83272f56d26f07eedd9521bed27a43759",
          "body": "- SessionStore: SQLite-backed CRUD for sessions, turns, tool calls, file touches\n- SessionExporter: JSON import/export for human-readable backups\n- SessionIntegrity: cross-check SQLite vs JSON, auto-repair\n- SessionRecord: POCOs for SessionInfo, TurnRecord, ToolCallRecord, FileTouchRecord\n- AgentSes\n[…]\nflags: --resume <id>, --new for session management\n- CompletionProvider: 17 registered commands\n- 19 new tests (148 total passing)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add conversation persistence with SQLite store and JSON export",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T20:15:53Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a27e41f2f0f09af3307917e6aad10798d92ad4b7",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "docs: add conversation persistence design document",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T20:05:58Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "83d28afae976dba37e5a34666003424aaee8960d",
          "body": "Add StreamingContentParser that detects <think>...</think> blocks\nin streaming output (used by Qwen, DeepSeek, and similar models via\nOllama) and classifies segments as either Thinking or Content.\n\nThinking content renders as dim gray text with a 💭 prefix, visually\nseparated from the response conten\n[…]\n tracking\n- 19 unit tests for parser covering edge cases (split tags,\n  false positives, HTML, char-by-char, nested angles, reset)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: display model thinking/reasoning as dim gray text",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T19:44:13Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "c53a2a12e6c43b9c4f0ecb6007ea74d58c00252e",
          "body": "Replace sequential non-streaming agent turns with real-time streaming:\n- AgentLoop.RunTurnStreamingAsync uses GetStreamingChatMessageContentsAsync\n  so tokens appear as they arrive (tool calls still rendered via filter)\n- ChatRenderer gains BeginStreaming/WriteStreamingChunk/EndStreaming methods\n\nRe\n[…]\np now runs a while-loop per user message, processing any\nchained steering messages until none are queued or the turn is cancelled.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add streaming output and mid-turn steering input",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T19:25:49Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "82a53e375a3c9d643d864c5cc4b404257df42af5",
          "body": "Adds EscapeCancellation monitor that watches for ESC keypresses\nduring agent turns. First ESC shows 'Hit ESC again to cancel...',\nsecond ESC within 1.5s cancels the current turn via a linked\nCancellationToken. The app continues running — only the active\nturn is aborted.\n\n- EscapeCancellation uses a \n[…]\nd (tests/pipes)\n- Main loop catches OperationCanceledException per-turn\n- 7 unit tests for token linking, disposal, and edge cases\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add double-tap ESC to cancel running operations",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T19:17:21Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "00f6c6601312a50736ee065429c633b6d13bb3c5",
          "body": "Add a CLI flag (--dangerously-skip-permissions) and an in-app\nslash command (/permissions [on|off|true|false]) that bypasses\nALL tool confirmation prompts. When enabled, every tool runs\nwithout asking — useful in trusted/dev environments.\n\n- AgentSession.SkipPermissions property gates the behavior\n-\n[…]\n argument\n- CompletionProvider and /help updated with the new command\n- 7 new unit tests for the /permissions command and property\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add --dangerously-skip-permissions flag and /permissions command",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T19:14:55Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "a7484e1114cdc66f844307216588b9d77ab7c21a",
          "body": "…menu\n\nAdd a custom readline replacement (InteractiveInput) that provides:\n- Ghost-text completions in dim gray as you type\n- Dropdown menu below the input line for multiple matches\n- Syntax highlighting for slash commands (cyan)\n- Tab/Right to accept completion, Up/Down to cycle, Esc to dismiss\n- I\n[…]\n14 unit tests for CompletionProvider covering prefix matching,\ncase insensitivity, sorting, exact match exclusion, and edge cases.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: add interactive input with ghost-text completions and dropdown …",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T19:12:15Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "5b67bf21303523021898e1ffc6d4f1704ad6263a",
          "body": "Large models (e.g. qwen3-coder:30b) can take several minutes to\ngenerate complex responses. The default 100s timeout caused\nrequests to fail during multi-tool code generation tasks.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: increase Ollama HttpClient timeout to 10 minutes",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T18:40:24Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "985a00b450e7249ffbef875926bdc4a0b0bc4333",
          "body": "Unit tests (80 tests):\n- ProviderRegistryTests — aggregation, caching, error handling\n- FileToolsTests — read, write, edit, list directory, error cases\n- SearchToolsTests — grep matching, glob patterns, recursive search\n- ShellToolsTests — output, exit codes, cwd, timeout, stderr, truncation\n- GitTo\n[…]\ng\n\nFix: glob regex pattern corruption on Windows (backslash replacement\nwas destroying the character class in the generated regex)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "test: add comprehensive TUI unit and integration tests",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T18:09:24Z",
          "body_truncated": true,
          "is_coding_agent": true
        },
        {
          "oid": "620da8711b5c414c77b55b78c4a5b3552f3587bf",
          "body": "- Auto-discover and load skills from ~/.claude/skills/, .claude/skills/, .jdai/skills/\n- Auto-discover and load plugins from ~/.claude/plugins/, .claude/plugins/, .jdai/plugins/\n- Auto-compaction when token count exceeds threshold\n- Show provider detection status on startup\n- Memory reminder in system prompt\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: integrate SK extensions (skills, plugins, hooks, compaction)",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T17:51:47Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "83c9bab792a3c38dc454acc1bd2ea20e103e78c8",
          "body": "Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "fix: escape markup in model selector to prevent Spectre parse errors",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T17:48:57Z",
          "body_truncated": false,
          "is_coding_agent": true
        },
        {
          "oid": "79004db8e773d712c28f7e18747772ce160bbbec",
          "body": "Add the jdai Semantic Kernel TUI agent sample with:\n\n- Provider registry with auto-detection for Claude Code, Copilot, Ollama\n- Built-in developer tools: file, search, shell, git, web, memory\n- Safety tier system with auto-approve, confirm-once, always-confirm\n- Slash command router (/help, /model, \n[…]\n, markup, status bar)\n- Context compaction via hierarchical summarization\n- Design doc at docs/plans/2026-02-27-jdai-tui-design.md\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>",
          "is_bot": false,
          "headline": "feat: scaffold jdai TUI agent sample",
          "author_name": "Jerrett D. Davis",
          "author_login": "JerrettDavis",
          "committed_at": "2026-02-27T17:46:08Z",
          "body_truncated": true,
          "is_coding_agent": true
        }
      ],
      "releases_count": 91,
      "commits_last_year": 113,
      "latest_release_at": "2026-07-21T17:59:41Z",
      "latest_release_tag": "v0.1.114",
      "releases_from_tags": false,
      "days_since_last_push": 0,
      "active_weeks_last_year": 18,
      "days_since_latest_release": 0,
      "mean_days_between_releases": 4
    },
    "community": {
      "has_readme": true,
      "has_license": true,
      "has_description": true,
      "has_contributing": true,
      "health_percentage": 85,
      "has_issue_template": false,
      "has_code_of_conduct": false,
      "has_pull_request_template": true
    },
    "ecosystem": {
      "packages": [
        {
          "name": "JD.SemanticKernel.Extensions.Compaction",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "compaction",
            "context-management",
            "ai",
            "extensions"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions.Compaction",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 87,
          "total_downloads": 62873,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:27.737000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "JD.SemanticKernel.Extensions.Hooks",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "hooks",
            "claude-code",
            "ai",
            "extensions",
            "filters"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions.Hooks",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 93,
          "total_downloads": 67450,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:27.987000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "JD.SemanticKernel.Extensions.Mcp",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "mcp",
            "model-context-protocol",
            "claude",
            "vscode",
            "ai",
            "extensions",
            "plugins"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions.Mcp",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 69,
          "total_downloads": 55370,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:28.223000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "JD.SemanticKernel.Extensions.Memory.Sqlite",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "memory",
            "sqlite",
            "vector-store",
            "ai",
            "extensions"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions.Memory.Sqlite",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 87,
          "total_downloads": 9007,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:28.760000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "JD.SemanticKernel.Extensions.Memory",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "memory",
            "embeddings",
            "vector-search",
            "mmr",
            "ai",
            "extensions"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions.Memory",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 87,
          "total_downloads": 66176,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:28.497000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "JD.SemanticKernel.Extensions.Plugins",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "plugins",
            "claude-code",
            "ai",
            "extensions"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions.Plugins",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 93,
          "total_downloads": 63591,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:29.023000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "JD.SemanticKernel.Extensions.Skills",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "skills",
            "claude-code",
            "ai",
            "extensions"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions.Skills",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 93,
          "total_downloads": 67424,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:29.270000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        },
        {
          "name": "JD.SemanticKernel.Extensions",
          "exists": true,
          "license": null,
          "keywords": [
            "semantic-kernel",
            "skills",
            "hooks",
            "plugins",
            "claude-code",
            "ai",
            "extensions"
          ],
          "ecosystem": "nuget",
          "matches_repo": true,
          "registry_url": "https://www.nuget.org/packages/JD.SemanticKernel.Extensions",
          "is_deprecated": false,
          "latest_version": "0.1.114",
          "repository_url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
          "versions_count": 93,
          "total_downloads": 59917,
          "dependents_count": null,
          "deprecation_note": null,
          "maintainers_count": null,
          "monthly_downloads": null,
          "first_published_at": null,
          "latest_published_at": "2026-07-21T17:59:27.440000Z",
          "latest_version_yanked": null,
          "days_since_latest_publish": 0
        }
      ]
    },
    "popularity": {
      "forks": 0,
      "stars": 1,
      "watchers": 0,
      "fork_history": {
        "days": [],
        "complete": true,
        "collected": 0,
        "total_forks": 0
      },
      "star_history": {
        "days": [
          {
            "date": "2026-03-17",
            "count": 1
          }
        ],
        "complete": true,
        "collected": 1,
        "total_stars": 1
      },
      "open_issues_and_prs": 1
    },
    "ai_readiness": {
      "has_nix": false,
      "example_dirs": [
        "samples"
      ],
      "has_llms_txt": false,
      "has_dockerfile": false,
      "has_mcp_signal": false,
      "bootstrap_files": [],
      "api_schema_files": [],
      "has_devcontainer": false,
      "typecheck_configs": [],
      "toolchain_manifests": [
        "samples/CompactionDemo/CompactionDemo.csproj",
        "samples/MemoryDemo/MemoryDemo.csproj",
        "samples/PluginDemo/PluginDemo.csproj",
        "samples/SkillDemo/SkillDemo.csproj",
        "src/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj",
        "src/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj",
        "src/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj",
        "src/JD.SemanticKernel.Extensions.Memory.Sqlite/JD.SemanticKernel.Extensions.Memory.Sqlite.csproj",
        "src/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj",
        "src/JD.SemanticKernel.Extensions.Plugins/JD.SemanticKernel.Extensions.Plugins.csproj",
        "src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj",
        "src/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj",
        "tests/JD.SemanticKernel.Extensions.Compaction.Tests/JD.SemanticKernel.Extensions.Compaction.Tests.csproj",
        "tests/JD.SemanticKernel.Extensions.Hooks.Tests/JD.SemanticKernel.Extensions.Hooks.Tests.csproj",
        "tests/JD.SemanticKernel.Extensions.IntegrationTests/JD.SemanticKernel.Extensions.IntegrationTests.csproj",
        "tests/JD.SemanticKernel.Extensions.Mcp.Tests/JD.SemanticKernel.Extensions.Mcp.Tests.csproj",
        "tests/JD.SemanticKernel.Extensions.Memory.Sqlite.Tests/JD.SemanticKernel.Extensions.Memory.Sqlite.Tests.csproj",
        "tests/JD.SemanticKernel.Extensions.Memory.Tests/JD.SemanticKernel.Extensions.Memory.Tests.csproj",
        "tests/JD.SemanticKernel.Extensions.Plugins.Tests/JD.SemanticKernel.Extensions.Plugins.Tests.csproj",
        "tests/JD.SemanticKernel.Extensions.Skills.Tests/JD.SemanticKernel.Extensions.Skills.Tests.csproj"
      ],
      "largest_source_bytes": 15143,
      "source_files_sampled": 120,
      "oversized_source_files": 0,
      "agent_instruction_files": [],
      "agent_instruction_max_bytes": null
    },
    "dependencies": {
      "manifests": [],
      "advisories": {
        "error": "No resolved dependencies carried a version and a supported ecosystem",
        "scope": "repository_graph",
        "source": null,
        "findings": [],
        "collected": false,
        "truncated": false,
        "by_severity": {},
        "advisory_count": 0,
        "affected_count": 0,
        "assessed_count": 0,
        "assessed_package": null,
        "unassessed_count": 14,
        "direct_affected_count": 0
      },
      "ecosystems": [],
      "dependencies": [
        {
          "name": "Microsoft.SemanticKernel",
          "manifest": "src/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.DependencyInjection",
          "manifest": "src/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel.Connectors.OpenAI",
          "manifest": "src/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Text.Json",
          "manifest": "src/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel",
          "manifest": "src/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Text.Json",
          "manifest": "src/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.DependencyInjection",
          "manifest": "src/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel.Connectors.OpenAI",
          "manifest": "src/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.DependencyInjection",
          "manifest": "src/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel",
          "manifest": "src/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "PatternKit.Core",
          "manifest": "src/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Text.Json",
          "manifest": "src/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Data.Sqlite",
          "manifest": "src/JD.SemanticKernel.Extensions.Memory.Sqlite/JD.SemanticKernel.Extensions.Memory.Sqlite.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel",
          "manifest": "src/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.DependencyInjection",
          "manifest": "src/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel.Connectors.OpenAI",
          "manifest": "src/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Text.Json",
          "manifest": "src/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel",
          "manifest": "src/JD.SemanticKernel.Extensions.Plugins/JD.SemanticKernel.Extensions.Plugins.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Text.Json",
          "manifest": "src/JD.SemanticKernel.Extensions.Plugins/JD.SemanticKernel.Extensions.Plugins.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel",
          "manifest": "src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "YamlDotNet",
          "manifest": "src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.DependencyInjection",
          "manifest": "src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel.Connectors.OpenAI",
          "manifest": "src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "System.Text.Json",
          "manifest": "src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.Extensions.DependencyInjection",
          "manifest": "src/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel",
          "manifest": "src/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        },
        {
          "name": "Microsoft.SemanticKernel.Connectors.OpenAI",
          "manifest": "src/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj",
          "ecosystem": "nuget",
          "version_constraint": null
        }
      ],
      "all_dependencies": {
        "error": null,
        "source": "github-sbom",
        "packages": [
          {
            "name": "Microsoft.Data.Sqlite",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.DependencyInjection",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.SemanticKernel",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.SemanticKernel.Connectors.OpenAI",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "PatternKit.Core",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "System.Text.Json",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "YamlDotNet",
            "direct": true,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "coverlet.collector",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.Extensions.Http",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Microsoft.NET.Test.Sdk",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "NSubstitute",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "xunit",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "xunit.runner.visualstudio",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          },
          {
            "name": "Xunit.SkippableFact",
            "direct": false,
            "version": null,
            "ecosystem": "nuget"
          }
        ],
        "collected": true,
        "truncated": false,
        "total_count": 14,
        "direct_count": 7,
        "indirect_count": 7
      }
    },
    "maintainership": {
      "issues": {
        "open_prs": 1,
        "merged_prs": 71,
        "open_issues": 0,
        "closed_ratio": 1,
        "closed_issues": 2,
        "closed_unmerged_prs": 8
      },
      "bus_factor": 1,
      "bot_contributors": 2,
      "top_contributors": [
        {
          "type": "User",
          "login": "JerrettDavis",
          "commits": 46,
          "avatar_url": "https://avatars.githubusercontent.com/u/2610199?v=4"
        }
      ],
      "contributors_sampled": 1,
      "top_contributor_share": 1
    },
    "quality_signals": {
      "has_ci": true,
      "has_tests": true,
      "ci_workflows": [
        "ci.yml",
        "codeql.yml",
        "conventional-commits.yml",
        "dependency-review.yml",
        "docs.yml",
        "integration.yml",
        "labeler.yml",
        "pr-validation.yml",
        "stale.yml"
      ],
      "has_docs_dir": true,
      "linter_configs": [],
      "has_editorconfig": true,
      "has_linter_config": false,
      "has_precommit_config": false
    },
    "security_signals": {
      "lockfiles": [],
      "scorecard": {
        "checks": [
          {
            "name": "Binary-Artifacts",
            "score": 10,
            "reason": "no binaries found in the repo",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
          },
          {
            "name": "Branch-Protection",
            "score": 0,
            "reason": "branch protection not enabled on development/release branches",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
          },
          {
            "name": "CI-Tests",
            "score": 10,
            "reason": "24 out of 24 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/9 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": 10,
            "reason": "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": 10,
            "reason": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
          },
          {
            "name": "Packaging",
            "score": 10,
            "reason": "packaging workflow detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
          },
          {
            "name": "Pinned-Dependencies",
            "score": 0,
            "reason": "dependency not pinned by hash detected -- score normalized to 0",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
          },
          {
            "name": "SAST",
            "score": 10,
            "reason": "SAST tool is run on all commits",
            "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": 7,
            "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": 10,
            "reason": "0 existing vulnerabilities detected",
            "documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
          }
        ],
        "commit": "8762a256788b743bec7d07ba56bdb097fecda9db",
        "ran_at": "2026-07-21T18:06:52Z",
        "aggregate_score": 5.9,
        "scorecard_version": "v5.5.0"
      },
      "has_codeql_workflow": true,
      "has_security_policy": true,
      "has_dependabot_config": true
    }
  },
  "config": {
    "disabled_metrics": [],
    "disabled_categories": [],
    "disabled_components": {}
  },
  "source": {
    "url": "https://github.com/JerrettDavis/JD.SemanticKernel.Extensions",
    "host": "github.com",
    "name": "JD.SemanticKernel.Extensions",
    "owner": "JerrettDavis"
  },
  "metrics": {
    "overall": {
      "key": "overall",
      "band": "moderate",
      "name": "Overall health",
      "note": null,
      "notes": [],
      "value": 67,
      "inputs": {
        "security": 59,
        "vitality": 82,
        "community": 46,
        "governance": 59,
        "engineering": 84
      },
      "components": []
    },
    "categories": [
      {
        "key": "vitality",
        "band": "good",
        "name": "Vitality",
        "value": 82,
        "weight": 0.22,
        "metrics": [
          {
            "key": "development_activity",
            "band": "good",
            "name": "Development activity",
            "note": null,
            "notes": [],
            "value": 76,
            "inputs": {
              "commits_last_year": 113,
              "human_commit_share": 0.39,
              "days_since_last_push": 0,
              "active_weeks_last_year": 18
            },
            "components": [
              {
                "key": "push_recency",
                "name": "Push recency",
                "detail": "last push 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "push_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_cadence",
                "name": "Commit cadence",
                "detail": "18/52 weeks with commits",
                "points": 12.5,
                "status": "partial",
                "details": [
                  {
                    "code": "commit_cadence_weeks",
                    "params": {
                      "weeks": 18
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "commit_volume",
                "name": "Commit volume",
                "detail": "113 commits in the last year",
                "points": 18,
                "status": "met",
                "details": [
                  {
                    "code": "commits_last_year",
                    "params": {
                      "count": 113
                    }
                  }
                ],
                "max_points": 18
              },
              {
                "key": "openssf_scorecard_maintained",
                "name": "OpenSSF Scorecard: Maintained",
                "detail": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "release_discipline",
            "band": "excellent",
            "name": "Release discipline",
            "note": null,
            "notes": [],
            "value": 90,
            "inputs": {
              "releases_count": 91,
              "latest_release_tag": "v0.1.114",
              "releases_from_tags": false,
              "days_since_latest_release": 0,
              "mean_days_between_releases": 4
            },
            "components": [
              {
                "key": "ships_releases",
                "name": "Ships releases",
                "detail": "91 releases published",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "releases_published",
                    "params": {
                      "count": 91
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "release_recency",
                "name": "Release recency",
                "detail": "latest release 0 days ago",
                "points": 36,
                "status": "met",
                "details": [
                  {
                    "code": "release_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 36
              },
              {
                "key": "release_cadence",
                "name": "Release cadence",
                "detail": "a release every ~4 days",
                "points": 27,
                "status": "met",
                "details": [
                  {
                    "code": "release_cadence",
                    "params": {
                      "gap": 4
                    }
                  }
                ],
                "max_points": 27
              },
              {
                "key": "openssf_scorecard_signed_releases",
                "name": "OpenSSF Scorecard: Signed-Releases",
                "detail": "Project has not signed or included provenance with any releases.",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "abandonment",
            "band": "excellent",
            "name": "Abandonment",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "cap": null,
              "state": "unverified",
              "guards": [],
              "signals": [],
              "red_flag": false,
              "multiplier_pct": 100,
              "declared_reason": null,
              "unverified_reason": "repository_too_young",
              "unanswered_open_prs": null,
              "unanswered_open_issues": null,
              "days_since_last_merged_pr": null,
              "days_since_last_human_commit": null,
              "days_since_last_human_commit_is_floor": false
            },
            "components": [
              {
                "key": "project_is_still_maintained",
                "name": "Project is still maintained",
                "detail": "maintenance record not established from the collected data",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "abandonment_unverified",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Is the project alive — is code being written and are releases shipping?"
      },
      {
        "key": "community",
        "band": "at_risk",
        "name": "Community & Adoption",
        "value": 46,
        "weight": 0.18,
        "metrics": [
          {
            "key": "popularity",
            "band": "critical",
            "name": "Popularity & adoption",
            "note": null,
            "notes": [],
            "value": 1,
            "inputs": {
              "forks": 0,
              "stars": 1,
              "watchers": 0,
              "growth_state": "unverified",
              "growth_factor_pct": 100,
              "growth_unverified_reason": "below_threshold"
            },
            "components": [
              {
                "key": "stars",
                "name": "Stars",
                "detail": "1 stars",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "stars",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 60
              },
              {
                "key": "forks",
                "name": "Forks",
                "detail": "0 forks",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "forks",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "watchers",
                "name": "Watchers",
                "detail": "0 watchers",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "watchers",
                    "params": {
                      "count": 0
                    }
                  }
                ],
                "max_points": 15
              }
            ]
          },
          {
            "key": "community_health",
            "band": "good",
            "name": "Community health",
            "note": null,
            "notes": [],
            "value": 77,
            "inputs": {
              "has_readme": true,
              "has_license": true,
              "has_contributing": true,
              "has_issue_template": false,
              "has_code_of_conduct": false,
              "has_pull_request_template": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 22.5,
                "status": "met",
                "details": [],
                "max_points": 22.5
              },
              {
                "key": "license",
                "name": "License",
                "detail": "recognized license (MIT)",
                "points": 22.5,
                "status": "met",
                "details": [
                  {
                    "code": "license_standard",
                    "params": {}
                  },
                  {
                    "code": "license_spdx",
                    "params": {
                      "spdx": "MIT"
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributing_guide",
                "name": "CONTRIBUTING guide",
                "detail": null,
                "points": 18,
                "status": "met",
                "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": 6.3,
                "status": "met",
                "details": [],
                "max_points": 6.3
              }
            ]
          },
          {
            "key": "ecosystem_adoption",
            "band": "good",
            "name": "Ecosystem adoption (downloads)",
            "note": "Excluded from scoring (no data or not applicable): Registry dependents. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "registry_dependents"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 74,
            "inputs": {
              "packages": [
                "JD.SemanticKernel.Extensions.Compaction",
                "JD.SemanticKernel.Extensions.Hooks",
                "JD.SemanticKernel.Extensions.Mcp",
                "JD.SemanticKernel.Extensions.Memory.Sqlite",
                "JD.SemanticKernel.Extensions.Memory",
                "JD.SemanticKernel.Extensions.Plugins",
                "JD.SemanticKernel.Extensions.Skills",
                "JD.SemanticKernel.Extensions"
              ],
              "dependents": null,
              "ecosystems": "nuget",
              "total_downloads": 451808,
              "monthly_downloads": null
            },
            "components": [
              {
                "key": "total_downloads",
                "name": "Total downloads",
                "detail": "451,808 downloads all-time across nuget",
                "points": 58.8,
                "status": "partial",
                "details": [
                  {
                    "code": "downloads_total",
                    "params": {
                      "count": 451808,
                      "ecosystems": "nuget"
                    }
                  }
                ],
                "max_points": 80
              },
              {
                "key": "registry_dependents",
                "name": "Registry dependents",
                "detail": "not reported by this ecosystem",
                "points": 0,
                "status": "excluded",
                "details": [
                  {
                    "code": "not_reported_by_this_ecosystem",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
      },
      {
        "key": "governance",
        "band": "moderate",
        "name": "Sustainability & Governance",
        "value": 59,
        "weight": 0.24,
        "metrics": [
          {
            "key": "maintainer_resilience",
            "band": "critical",
            "name": "Maintainer resilience (bus factor)",
            "note": null,
            "notes": [],
            "value": 10,
            "inputs": {
              "bus_factor": 1,
              "contributors_sampled": 1,
              "top_contributor_share": 1
            },
            "components": [
              {
                "key": "bus_factor",
                "name": "Bus factor",
                "detail": "1 contributor(s) cover half of all commits",
                "points": 9,
                "status": "partial",
                "details": [
                  {
                    "code": "bus_factor",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 54
              },
              {
                "key": "commit_distribution",
                "name": "Commit distribution",
                "detail": "top contributor authored 100% of commits",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "top_contributor_share",
                    "params": {
                      "share": 100
                    }
                  }
                ],
                "max_points": 22.5
              },
              {
                "key": "contributor_breadth",
                "name": "Contributor breadth",
                "detail": "1 contributors",
                "points": 1.4,
                "status": "partial",
                "details": [
                  {
                    "code": "contributors_sampled",
                    "params": {
                      "count": 1
                    }
                  }
                ],
                "max_points": 13.5
              },
              {
                "key": "openssf_scorecard_contributors",
                "name": "OpenSSF Scorecard: Contributors",
                "detail": "project has 0 contributing companies or organizations -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              }
            ]
          },
          {
            "key": "responsiveness",
            "band": "good",
            "name": "Issue & PR responsiveness",
            "note": null,
            "notes": [],
            "value": 81,
            "inputs": {
              "merged_prs": 71,
              "open_issues": 0,
              "closed_issues": 2,
              "issue_closed_ratio": 1,
              "closed_unmerged_prs": 8
            },
            "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": "71/79 decided PRs merged",
                "points": 34.4,
                "status": "partial",
                "details": [
                  {
                    "code": "decided_prs_merged",
                    "params": {
                      "merged": 71,
                      "decided": 79
                    }
                  }
                ],
                "max_points": 38.25
              },
              {
                "key": "openssf_scorecard_code_review",
                "name": "OpenSSF Scorecard: Code-Review",
                "detail": "Found 0/9 approved changesets -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              }
            ]
          },
          {
            "key": "stewardship",
            "band": "moderate",
            "name": "Ownership & stewardship",
            "note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
            "notes": [
              {
                "code": "excluded_no_data",
                "params": {
                  "components": [
                    "verified_domain"
                  ]
                }
              },
              {
                "code": "weights_renormalized",
                "params": {}
              }
            ],
            "value": 64,
            "inputs": {
              "followers": 155,
              "owner_type": "User",
              "is_verified": null,
              "owner_login": "JerrettDavis",
              "public_repos": 125,
              "account_age_days": 5021
            },
            "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": "155 followers of JerrettDavis",
                "points": 15.8,
                "status": "partial",
                "details": [
                  {
                    "code": "owner_followers",
                    "params": {
                      "count": 155,
                      "login": "JerrettDavis"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "track_record",
                "name": "Track record",
                "detail": "125 public repos, account ~13 yr old",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "public_repos",
                    "params": {
                      "count": 125
                    }
                  },
                  {
                    "code": "account_age_years",
                    "params": {
                      "years": 13
                    }
                  }
                ],
                "max_points": 25
              }
            ]
          },
          {
            "key": "package_maintenance",
            "band": "excellent",
            "name": "Package maintenance",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "packages": [
                "JD.SemanticKernel.Extensions.Compaction",
                "JD.SemanticKernel.Extensions.Hooks",
                "JD.SemanticKernel.Extensions.Mcp",
                "JD.SemanticKernel.Extensions.Memory.Sqlite",
                "JD.SemanticKernel.Extensions.Memory",
                "JD.SemanticKernel.Extensions.Plugins",
                "JD.SemanticKernel.Extensions.Skills",
                "JD.SemanticKernel.Extensions"
              ],
              "ecosystems": "nuget",
              "any_deprecated": false,
              "min_days_since_publish": 0
            },
            "components": [
              {
                "key": "published_resolvable",
                "name": "Published & resolvable",
                "detail": "8 package(s) on nuget",
                "points": 25,
                "status": "met",
                "details": [
                  {
                    "code": "packages_published",
                    "params": {
                      "count": 8,
                      "ecosystems": "nuget"
                    }
                  }
                ],
                "max_points": 25
              },
              {
                "key": "publish_recency",
                "name": "Publish recency",
                "detail": "latest publish 0 days ago",
                "points": 35,
                "status": "met",
                "details": [
                  {
                    "code": "publish_recency",
                    "params": {
                      "days": 0
                    }
                  }
                ],
                "max_points": 35
              },
              {
                "key": "version_history",
                "name": "Version history",
                "detail": "93 published versions",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "published_versions",
                    "params": {
                      "count": 93
                    }
                  }
                ],
                "max_points": 20
              },
              {
                "key": "not_deprecated",
                "name": "Not deprecated",
                "detail": "active, not deprecated or yanked",
                "points": 20,
                "status": "met",
                "details": [
                  {
                    "code": "package_not_deprecated",
                    "params": {}
                  }
                ],
                "max_points": 20
              }
            ]
          }
        ],
        "description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
      },
      {
        "key": "engineering",
        "band": "good",
        "name": "Engineering Quality",
        "value": 84,
        "weight": 0.2,
        "metrics": [
          {
            "key": "engineering_practices",
            "band": "good",
            "name": "Engineering practices",
            "note": null,
            "notes": [],
            "value": 74,
            "inputs": {
              "has_ci": true,
              "has_tests": true,
              "has_editorconfig": true,
              "has_linter_config": false,
              "has_precommit_config": false
            },
            "components": [
              {
                "key": "ci_workflows",
                "name": "CI workflows",
                "detail": "9 workflow(s)",
                "points": 24,
                "status": "met",
                "details": [
                  {
                    "code": "ci_workflows",
                    "params": {
                      "count": 9
                    }
                  }
                ],
                "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": 6.4,
                "status": "met",
                "details": [],
                "max_points": 6.4
              },
              {
                "key": "openssf_scorecard_ci_tests",
                "name": "OpenSSF Scorecard: CI-Tests",
                "detail": "24 out of 24 merged PRs checked by a CI test -- score normalized to 10",
                "points": 20,
                "status": "met",
                "details": [],
                "max_points": 20
              }
            ]
          },
          {
            "key": "documentation",
            "band": "excellent",
            "name": "Documentation",
            "note": null,
            "notes": [],
            "value": 100,
            "inputs": {
              "topics": [
                "ai-agents",
                "claude-code",
                "csharp",
                "dotnet",
                "nuget",
                "semantic-kernel",
                "semantic-memory"
              ],
              "has_wiki": true,
              "homepage": "https://jerrettdavis.github.io/JD.SemanticKernel.Extensions/",
              "has_readme": true,
              "has_docs_dir": true,
              "has_description": true
            },
            "components": [
              {
                "key": "readme",
                "name": "README",
                "detail": null,
                "points": 30,
                "status": "met",
                "details": [],
                "max_points": 30
              },
              {
                "key": "documentation_directory",
                "name": "Documentation directory",
                "detail": null,
                "points": 25,
                "status": "met",
                "details": [],
                "max_points": 25
              },
              {
                "key": "documentation_homepage_site",
                "name": "Documentation / homepage site",
                "detail": "https://jerrettdavis.github.io/JD.SemanticKernel.Extensions/",
                "points": 15,
                "status": "met",
                "details": [],
                "max_points": 15
              },
              {
                "key": "repository_description",
                "name": "Repository description",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              },
              {
                "key": "topics",
                "name": "Topics",
                "detail": "7 topics",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "topics_count",
                    "params": {
                      "count": 7
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "wiki",
                "name": "Wiki",
                "detail": null,
                "points": 10,
                "status": "met",
                "details": [],
                "max_points": 10
              }
            ]
          }
        ],
        "description": "Are baseline engineering and documentation practices in place?"
      },
      {
        "key": "security",
        "band": "moderate",
        "name": "Security",
        "value": 59,
        "weight": 0.16,
        "metrics": [
          {
            "key": "security_posture",
            "band": "moderate",
            "name": "Security posture",
            "note": null,
            "notes": [],
            "value": 59,
            "inputs": {
              "source": "openssf_scorecard",
              "checks_evaluated": 18,
              "scorecard_version": "v5.5.0",
              "checks_inconclusive": 0,
              "scorecard_aggregate": 5.9
            },
            "components": [
              {
                "key": "binary_artifacts",
                "name": "Binary-Artifacts",
                "detail": "no binaries found in the repo",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "branch_protection",
                "name": "Branch-Protection",
                "detail": "branch protection not enabled on development/release branches",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "ci_tests",
                "name": "CI-Tests",
                "detail": "24 out of 24 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/9 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": "update tool detected",
                "points": 7.5,
                "status": "met",
                "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": "30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "packaging",
                "name": "Packaging",
                "detail": "packaging workflow detected",
                "points": 5,
                "status": "met",
                "details": [],
                "max_points": 5
              },
              {
                "key": "pinned_dependencies",
                "name": "Pinned-Dependencies",
                "detail": "dependency not pinned by hash detected -- score normalized to 0",
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 5
              },
              {
                "key": "sast",
                "name": "SAST",
                "detail": "SAST tool is run on all commits",
                "points": 5,
                "status": "met",
                "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": 5.2,
                "status": "partial",
                "details": [],
                "max_points": 7.5
              },
              {
                "key": "vulnerabilities",
                "name": "Vulnerabilities",
                "detail": "0 existing vulnerabilities detected",
                "points": 7.5,
                "status": "met",
                "details": [],
                "max_points": 7.5
              }
            ]
          },
          {
            "key": "high_risk_jurisdiction_exposure",
            "band": "excellent",
            "name": "High-Risk Jurisdiction Exposure",
            "note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
            "notes": [
              {
                "code": "jurisdiction_evidence_limits",
                "params": {}
              }
            ],
            "value": 100,
            "inputs": {
              "meaning": "self-published location evidence; not nationality or citizenship",
              "red_flag": false,
              "exposures": [],
              "policy_countries": [
                "Russia",
                "Iran",
                "North Korea"
              ],
              "review_only_matches": 0,
              "assessed_self_published_locations": 2
            },
            "components": [
              {
                "key": "policy_exposure_multiplier",
                "name": "Policy exposure multiplier",
                "detail": "no confirmed policy-scope location match",
                "points": 100,
                "status": "met",
                "details": [
                  {
                    "code": "jurisdiction_no_match",
                    "params": {}
                  }
                ],
                "max_points": 100
              }
            ]
          }
        ],
        "description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
      },
      {
        "key": "ai_readiness",
        "band": "moderate",
        "name": "AI Readiness",
        "value": 59,
        "weight": 0,
        "metrics": [
          {
            "key": "ai_agent_context",
            "band": "at_risk",
            "name": "Agent context & guidance",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "has_llms_txt": false,
              "legible_history_share": 0.974,
              "agent_instruction_files": [],
              "agent_instruction_max_bytes": null
            },
            "components": [
              {
                "key": "agent_instructions",
                "name": "Agent instructions",
                "detail": "no CLAUDE.md / AGENTS.md / editor rules",
                "points": 0,
                "status": "missed",
                "details": [
                  {
                    "code": "no_agent_instructions",
                    "params": {}
                  }
                ],
                "max_points": 45
              },
              {
                "key": "machine_readable_docs_llms_txt",
                "name": "Machine-readable docs (llms.txt)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 15
              },
              {
                "key": "legible_commit_history",
                "name": "Legible commit history",
                "detail": "38 of 39 human commits state their intent (structured subject or explanatory body)",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "legible_history",
                    "params": {
                      "legible": 38,
                      "sampled": 39
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          },
          {
            "key": "ai_verify_loop",
            "band": "moderate",
            "name": "Verify loop (build / test / typecheck)",
            "note": null,
            "notes": [],
            "value": 64,
            "inputs": {
              "has_nix": false,
              "has_tests": true,
              "lockfiles": [],
              "has_dockerfile": false,
              "typed_language": true,
              "bootstrap_files": [],
              "has_devcontainer": false,
              "has_linter_config": false,
              "typecheck_configs": [],
              "agent_commit_share": 0.35,
              "toolchain_manifests": [
                "samples/CompactionDemo/CompactionDemo.csproj",
                "samples/MemoryDemo/MemoryDemo.csproj",
                "samples/PluginDemo/PluginDemo.csproj",
                "samples/SkillDemo/SkillDemo.csproj",
                "src/JD.SemanticKernel.Extensions.Compaction/JD.SemanticKernel.Extensions.Compaction.csproj",
                "src/JD.SemanticKernel.Extensions.Hooks/JD.SemanticKernel.Extensions.Hooks.csproj",
                "src/JD.SemanticKernel.Extensions.Mcp/JD.SemanticKernel.Extensions.Mcp.csproj",
                "src/JD.SemanticKernel.Extensions.Memory.Sqlite/JD.SemanticKernel.Extensions.Memory.Sqlite.csproj",
                "src/JD.SemanticKernel.Extensions.Memory/JD.SemanticKernel.Extensions.Memory.csproj",
                "src/JD.SemanticKernel.Extensions.Plugins/JD.SemanticKernel.Extensions.Plugins.csproj",
                "src/JD.SemanticKernel.Extensions.Skills/JD.SemanticKernel.Extensions.Skills.csproj",
                "src/JD.SemanticKernel.Extensions/JD.SemanticKernel.Extensions.csproj",
                "tests/JD.SemanticKernel.Extensions.Compaction.Tests/JD.SemanticKernel.Extensions.Compaction.Tests.csproj",
                "tests/JD.SemanticKernel.Extensions.Hooks.Tests/JD.SemanticKernel.Extensions.Hooks.Tests.csproj",
                "tests/JD.SemanticKernel.Extensions.IntegrationTests/JD.SemanticKernel.Extensions.IntegrationTests.csproj",
                "tests/JD.SemanticKernel.Extensions.Mcp.Tests/JD.SemanticKernel.Extensions.Mcp.Tests.csproj",
                "tests/JD.SemanticKernel.Extensions.Memory.Sqlite.Tests/JD.SemanticKernel.Extensions.Memory.Sqlite.Tests.csproj",
                "tests/JD.SemanticKernel.Extensions.Memory.Tests/JD.SemanticKernel.Extensions.Memory.Tests.csproj",
                "tests/JD.SemanticKernel.Extensions.Plugins.Tests/JD.SemanticKernel.Extensions.Plugins.Tests.csproj",
                "tests/JD.SemanticKernel.Extensions.Skills.Tests/JD.SemanticKernel.Extensions.Skills.Tests.csproj"
              ],
              "dependency_bot_commit_share": 0.61
            },
            "components": [
              {
                "key": "one_command_bootstrap",
                "name": "One-command bootstrap",
                "detail": "samples/CompactionDemo/CompactionDemo.csproj, samples/MemoryDemo/MemoryDemo.csproj, samples/PluginDemo/PluginDemo.csproj (toolchain convention, no task runner)",
                "points": 12.6,
                "status": "partial",
                "details": [
                  {
                    "code": "toolchain_convention",
                    "params": {
                      "files": "samples/CompactionDemo/CompactionDemo.csproj, samples/MemoryDemo/MemoryDemo.csproj, samples/PluginDemo/PluginDemo.csproj"
                    }
                  }
                ],
                "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": "C# (statically typed)",
                "points": 11,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 11
              },
              {
                "key": "reproducible_environment",
                "name": "Reproducible environment",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 10
              },
              {
                "key": "demonstrated_agent_practice",
                "name": "Demonstrated agent practice",
                "detail": "35 of the last 100 commits agent-authored or agent-credited",
                "points": 10,
                "status": "met",
                "details": [
                  {
                    "code": "agent_authored_commits",
                    "params": {
                      "count": 35,
                      "sampled": 100
                    }
                  }
                ],
                "max_points": 10
              },
              {
                "key": "automated_maintenance",
                "name": "Automated maintenance",
                "detail": "61 of the last 100 commits are automated dependency updates",
                "points": 8,
                "status": "met",
                "details": [
                  {
                    "code": "dependency_bot_commits",
                    "params": {
                      "count": 61,
                      "sampled": 100
                    }
                  }
                ],
                "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": "C#",
              "largest_source_bytes": 15143,
              "source_files_sampled": 120,
              "oversized_source_files": 0
            },
            "components": [
              {
                "key": "type_checkable_code",
                "name": "Type-checkable code",
                "detail": "C# (statically typed)",
                "points": 45,
                "status": "met",
                "details": [
                  {
                    "code": "statically_typed_language",
                    "params": {
                      "language": "C#"
                    }
                  }
                ],
                "max_points": 45
              },
              {
                "key": "manageable_file_sizes",
                "name": "Manageable file sizes",
                "detail": "0/120 source files over 60KB",
                "points": 55,
                "status": "met",
                "details": [
                  {
                    "code": "oversized_source_files",
                    "params": {
                      "kb": 60,
                      "sampled": 120,
                      "oversized": 0
                    }
                  }
                ],
                "max_points": 55
              }
            ]
          },
          {
            "key": "ai_interfaces",
            "band": "at_risk",
            "name": "Machine-readable interfaces",
            "note": null,
            "notes": [],
            "value": 40,
            "inputs": {
              "example_dirs": [
                "samples"
              ],
              "has_mcp_signal": false,
              "api_schema_files": []
            },
            "components": [
              {
                "key": "api_schema_openapi_graphql_proto",
                "name": "API schema (OpenAPI/GraphQL/proto)",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 40
              },
              {
                "key": "mcp_server",
                "name": "MCP server",
                "detail": null,
                "points": 0,
                "status": "missed",
                "details": [],
                "max_points": 20
              },
              {
                "key": "runnable_examples",
                "name": "Runnable examples",
                "detail": "samples",
                "points": 40,
                "status": "met",
                "details": [
                  {
                    "code": "file_list",
                    "params": {
                      "files": "samples"
                    }
                  }
                ],
                "max_points": 40
              }
            ]
          }
        ],
        "description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
      }
    ],
    "metrics_version": "1.13.0"
  },
  "warnings": [
    "No resolved dependencies carried a version and a supported ecosystem"
  ],
  "report_type": "repository",
  "generated_at": "2026-07-21T18:07:08.718443Z",
  "schema_version": "0.23.0",
  "badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/j/JerrettDavis/JD.SemanticKernel.Extensions.svg",
  "full_name": "JerrettDavis/JD.SemanticKernel.Extensions",
  "license_state": "standard",
  "license_spdx": "MIT"
}

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.23.0 — full methodology · metrics wiki.

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