Skip to content

Fix checker defects, promote XML/PO checks to blocking CI; add agent skills - #25

Merged
JMAN730 merged 5 commits into
mainfrom
claude/wayfinder-p23hjl
Jul 7, 2026
Merged

JMAN730 merged 5 commits into
mainfrom
claude/wayfinder-p23hjl

Conversation

@JMAN730

@JMAN730 JMAN730 commented Jul 6, 2026 •

Copy link
Copy Markdown
Owner

Three changes on this branch:

Checker cleanups (resolves #23, decisions from #20)

  • 11 malformed XML files fixed — raw &/< escaped, glued attributes separated (type="button"id="556" → type="button" id="556") in plugin.program.theredwizard/resources/settings.xml and 10 skin files; plus the mis-scoped comment in SettingsProfile.xml that swallowed an </item>.
  • All 5 skin strings.po files now parse — inner double quotes escaped, comment lines space-normalized for polib, and two genuine data bugs in it_it repaired (lost msgstr for #40195, mangled msgstr for #31295). This also clears the checker's bogus "default language en_gb not present" error.
  • Service addons — empty <extension point="xbmc.service"> elements self-closed (schema requires empty content).
  • Obsolete start="startup" removed from mp3streams and gratisred service declarations (attribute removed in Kodi 19; services always start at login).
  • mp3streams — lang attributes added to summary/description; legacy resources/language/english/strings.xml migrated to resource.language.en_gb/strings.po (17 strings, IDs unchanged).
  • redlight — empty <license/> filled with GPL-2.0-or-later (repo convention).
  • chainsliveplayer — fanart rescaled 1365×768 → 1280×720.
  • Versions bumped on all eight touched addons.

The advisory checker now reports only the permanently-accepted noise documented on #20 (skin 1024×600 screenshots, repository <dir minversion/maxversion>, complex-entry-point warnings, .xbt endings) plus the mp3streams asset paths owned by #22.

⚠️ Merge-order note: plugin.audio.mp3streams/addon.xml will conflict trivially with #22 on the version line (this PR bumps to 2026.07.07, above #22's 2026.07.06). Whichever merges second resolves by keeping 2026.07.07 and both news entries.

CI promotion (resolves #24)

Stacked on the cleanups so the fixes and the checks that gate them land atomically:

  • The blocking XML step now parses every .xml under each addon dir (159 files), not just the ten addon.xml manifests.
  • New blocking PO validity step parses every strings.po with polib (9 files).
  • Accepted advisory noise documented in a comment block above the advisory job; kodi-addon-checker stays advisory.

Both new steps are green in CI on this branch.

Agent skills

Adds the skill set from mattpocock/skills under .agents/skills/ plus skills-lock.json, so /wayfinder, /grilling, /prototype etc. referenced by docs/agents/issue-tracker.md and the wayfinder map (#12) are available in fresh sessions. No addon behavior affected.

🤖 Generated with Claude Code

claude added 2 commits July 6, 2026 22:20
Installed via 'npx skills add mattpocock/skills' so the /wayfinder,
/grilling, /prototype and related skills referenced by
docs/agents/issue-tracker.md are available in fresh sessions.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Resolves the cleanups agreed in #20 (executed as #23):

- Escape raw & / < and un-glue attributes in 11 malformed XML files
  (theredwizard settings.xml + 10 skin files); fix the mis-scoped
  comment that swallowed an </item> in SettingsProfile.xml
- Make all 5 skin strings.po files parse: escape inner double quotes,
  space-normalize comment lines, restore a lost msgstr (#40195) and a
  mangled msgstr (#31295) in it_it
- Self-close the empty xbmc.service extensions in both service addons
- Drop the start="startup" attribute (removed in Kodi 19) from
  mp3streams and gratisred service declarations
- Add lang attributes to mp3streams summary/description
- Migrate mp3streams resources/language/english/strings.xml to
  resource.language.en_gb/strings.po (17 strings, IDs unchanged)
- Give redlight a real <license> (GPL-2.0-or-later, repo convention)
- Rescale chainsliveplayer fanart 1365x768 -> 1280x720
- Bump versions of all eight touched addons

Verified: every .xml parses, every strings.po parses via polib,
py_compile clean, build_repo.py clean; advisory checker now reports
only the permanently-accepted noise plus the mp3streams asset paths
owned by the open PR #22.

Note: mp3streams addon.xml version line will conflict trivially with
PR #22 (bumped here to 2026.07.07, above #22's 2026.07.06).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@JMAN730 JMAN730 changed the title Add mattpocock/skills agent skills to the repo Fix checker-reported defects across addon sources; add agent skills Jul 6, 2026
Extends the blocking tier per the decision in #20 (executed as #24):

- The addon.xml well-formedness step now parses every .xml under each
  addon dir (159 files) instead of only the ten addon.xml manifests
- New PO validity step parses every strings.po with polib (9 files)
- The permanently-accepted advisory noise is documented above the
  advisory job so future readers know those findings are deliberate

kodi-addon-checker itself stays advisory; both new steps are green on
the sources fixed in the previous commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@JMAN730 JMAN730 changed the title Fix checker-reported defects across addon sources; add agent skills Fix checker defects, promote XML/PO checks to blocking CI; add agent skills Jul 6, 2026
@JMAN730
JMAN730 marked this pull request as ready for review July 6, 2026 23:05
@JMAN730
JMAN730 force-pushed the claude/wayfinder-p23hjl branch from bf6b2e6 to 6aebcb2 Compare July 6, 2026 23:08

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bf6b2e6ac0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .github/workflows/ci.yml Outdated
sys.exit(1 if bad else 0)
EOF

- name: PO validity (polib)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Gate releases with the new PO validation

I checked .github/workflows/release.yml: its release job runs on tag pushes and workflow_dispatch, performs an independent Blocking validation before Build bundle/Publish GitHub Release, but that validation still only parses */addon.xml and runs py_compile. Because this new PO check lives only in the separate CI workflow, a manual or tag release can still publish a bundle with a malformed strings.po even while CI fails separately; please either share this validation with the release workflow or gate release on the validate job.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — fixed in d401a2e. The full check set (all addon-dir XML, strings.po via polib, py_compile) now lives in tools/validate_sources.py, and both ci.yml and release.yml call it, so the two gates can't drift apart again.


Generated by Claude Code

claude and others added 2 commits July 6, 2026 23:12
Codex review on PR #25 caught that release.yml still ran its own
validation covering only addon.xml + py_compile, so a tag release
could publish a bundle that the promoted CI gates would reject.

Extract the full check set (all addon-dir XML, strings.po via polib,
py_compile) into tools/validate_sources.py and call it from both
workflows so the gates cannot drift apart again.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@JMAN730
JMAN730 merged commit e3f855c into main Jul 7, 2026
4 checks passed
@JMAN730
JMAN730 deleted the claude/wayfinder-p23hjl branch July 7, 2026 16:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Promote all-XML well-formedness and PO validity to blocking CI Apply the agreed checker cleanups across addon sources

2 participants