AntFleet

Disagreement · 1a8e53aa-openai-1

PARENT_REPO is referenced but never defined, breaking operator-authored skill detection

mismatch
repo 6f7fc663·PR #21·reviewed 1 week ago

Primary finding

PARENT_REPO is referenced but never defined, breaking operator-authored skill detection

mediumbughigh
  • skills/contributor-spotlight/SKILL.md:121
  • skills/contributor-spotlight/SKILL.md:86-89
The spec relies on ${PARENT_REPO} to differentiate upstream vs operator-authored skills but never derives it. The repo API response can include .parent.full_name for forks, but it is neither requested nor assigned, so the comparison to upstream cannot be performed.

Recommendation

Fetch and store the upstream repo identifier: include parent.full_name in the gh api jq projection and assign PARENT_REPO=$(jq -r '.parent.full_name // "owner/repo"' from a separate call to repos/${FEATURED_FORK}). Use that to list upstream skills and compute OPERATOR_AUTHORED.

Counterpart finding

`var` parsing strips `dry-run` prefix but spec is ambiguous about whitespace/separator

lowapi-contractmedium
  • skills/contributor-spotlight/SKILL.md:85-89
  • skills/contributor-spotlight/SKILL.md:7
The regex `^dry-run` matches `dry-run`, `dry-runs`, `dry-runfoo`, and `dry-run owner/repo`. After stripping the prefix, the remainder for `dry-runs` is `s`, which fails the owner/repo regex → `OVERRIDE_FORK=auto`. But for `dry-runowner/repo` (no separator) the remainder is `owner/repo` and is silently treated as an override — which is probably not intended. Also, in the third bullet `OVERRIDE_FORK=$var` references `$var` not the *remaining* var, which after the strip would re-include `dry-run`. The bullet should say `OVERRIDE_FORK=$remaining_var`. This is a small but real spec bug that will produce confusing behavior when the implementing agent follows the literal text.

Recommendation

Tighten the regex to `^dry-run($|[[:space:]])` and explicitly require a separator. Fix the third bullet to reference `$remaining_var` (the post-strip value). Document the canonical forms: `dry-run`, `dry-run owner/repo`, `owner/repo`.

Why this didn't post

This finding didn't meet AntFleet's unanimous agreement threshold. Both frontier models review every PR independently; only findings they both flag with the same severity and category are posted to the PR. This one fell through.

read the methodology →