Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,6 +10,8 @@ Please choose versions by [Semantic Versioning](http://semver.org/).

## Unreleased

- fix: `license-assistant` Step 0 visibility detection — read the repo's own `isPrivate` flag via `gh repo view --json isPrivate` instead of inferring from the remote host. Host-based detection misclassifies private `Seibert-Data/*` repos hosted on `github.com` as public, causing MUST-tier LICENSE false positives that block merges org-wide (surfaced 2026-08 on Seibert-Data/moco#5). Matches `docs/go-licensing-guide.md` § Public vs Private and `scripts/rule-checks.sh`.

- feat: promote 2 m3 findings deepseek-verified as real into the golden set (`golden-curated-1` → `golden-curated-2`, 155 → 157 entries). `recurring-task-creator#30` — `make precommit` genuinely red (govulncheck reproduced GO-2026-6179/6180 against `golang.org/x/mod@v0.37.0`, neither in `VULNCHECK_IGNORE`); `discord-assistant#5` — `strip_wake_phrase` lstrip omits the apostrophe, so `"hey bot's weather"` becomes `"'s weather"` (reproduced exactly). These are the first entries backed by **two models' independent agreement** (m3 found, deepseek verified with runnable evidence) rather than a single model's opinion — the evidence class the golden-set design has always specified for promotion. Two other deepseek-verified candidates (unbounded `uncaughtException` swallow, supervise orphan) were dropped: the aliasing check showed they were re-statements of entries the set already held, so promoting them would have double-counted. Net effect on scores vs `golden-curated-1`: m3 recall 0.052 → 0.066, deepseek 0.096 → 0.109, opus self-match 0.844 → 0.832 (new entries are findings opus missed — the tautology loosening, as intended)

## v0.43.3
Expand Down
8 changes: 4 additions & 4 deletions agents/license-assistant.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -23,10 +23,10 @@ You are a license management specialist. Ensure consistent licensing across all

License requirements only apply to **public** repositories. Skip all checks for private/internal repos.

**Detection rules:**
- `git remote -v` contains `github.com` → **public** → continue
- `git remote -v` contains `bitbucket.seibert.tools` or other internal hosting → **private** → report "No licensing required for internal repos" and STOP
- No remote → assume public, continue
**Detection rules (authoritative signal is the repo's own visibility flag, NOT the host):**
- Read the flag: `gh repo view --json isPrivate -q .isPrivate` → `false` = **public** → continue; `true` = **private** → report "No licensing required for private repos" and STOP.
- **Do NOT infer visibility from the host.** `github.com` no longer means public — the Octopus migration moved 73 private `Seibert-Data` repos onto `github.com`; host-based detection misclassifies nearly every private repo as public and causes MUST-tier false positives that block merges org-wide. `bitbucket.seibert.tools` hosting also no longer implies private — always check the flag.
- Visibility cannot be determined (no `gh`, no remote, offline, not a repo) → **do not fire** any licensing rule. These are MUST-tier rules; a false positive blocks every PR in the org, while a missed finding on a public repo is caught at the next review.

### Step 1: Detect Project Type

Expand Down
Loading