Repository navigation
feat(ai): generate the SDK agent skills from bugsee-for-ai - #78
Merged
Merged
Conversation
The skills served at docs.bugsee.com/ai/agent-skills/sdk/** were hand-kept forks of bugsee/bugsee-for-ai and had drifted (Android 7.0.0-beta3 vs 7.3.0, Flutter ^8.0.0 vs 9.0.4, KMP 0.1.1 vs 0.1.2, old CLI guidance). Make bugsee-for-ai the only place a skill is edited: - scripts/mirror-skills.mjs generates the docs copies from a pinned bugsee-for-ai commit (frontmatter rewritten for Docusaurus, plugin breadcrumbs removed, sibling links made absolute, unknown links fail). --check fails on hand edits; --update moves the pin to main. - .github/workflows/sync-agent-skills.yml opens one rolling PR with the regenerated copies when bugsee-for-ai changes (repository_dispatch, plus a 6-hourly poll as a fallback). It runs spell check and the build itself and opens a draft PR if either fails. - deploy.yml runs the unit tests and --check on every PR. - Existing curl URLs are unchanged. sdk/ios/v7 has no plugin source yet and stays docs-owned (listed in skills-map.json). - Index table: Android is now 6.x / 7.x (7.3.0 is released, not a beta). - cspell: add unbreak, Podspec. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Change-Id: Ibfb9ed25686dcce24fc1396ea070ccf77049a756
Generated by scripts/sync-skills.mjs from docs/ai/agent-skills/index.md (Android 6.x / 7.x labels). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Change-Id: I169dc9b3f89f689f8d866c4f878b9e952b08a65c
Picks up the Gradle plugin 4.0.8 pins (bugsee-for-ai#16) and the KMP Verification section (bugsee-for-ai#17). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Change-Id: I16c0db16a0ddb9062c02db058988305dea0d68f2
krassx
marked this pull request as ready for review
October 8, 2026 13:10
Mint a short-lived installation token per run (actions/create-github-app-token, pinned to a commit) for opening the sync PR, so the credential is not tied to a person and the PR triggers the normal checks. Falls back to GITHUB_TOKEN while the app is not configured. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Change-Id: Idf302f0d6d8648f1e17c4e20e9377d46c7397344
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Finding #5 of the 2026-10-07 public-repo review: two diverged copies of the agent skills. The docs copies pinned Android
7.0.0-beta3(current 7.3.0), Flutter^8.0.0(9.0.4), KMP0.1.1(0.1.2), whilebugsee-for-aiis maintained and says the docs copies "must not be used". Every SDK install page tells agents tocurlthe docs copies.What
bugsee/bugsee-for-aibecomes the single source; the docs copies are generated.scripts/mirror-skills.mjs(+skills-map.json,skills-source.json, unit tests): generatesdocs/ai/agent-skills/sdk/**/SKILL.mdfrom a pinned bugsee-for-ai commit. Docusaurus frontmatter added, plugin-only keys (parent,disable-model-invocation,allowed-tools) dropped, breadcrumb removed, links to sibling skills made absolute (docs URL if mirrored, GitHub otherwise); an unhandled relative link fails instead of shipping a dead link.--checkfails on hand edits,--updatemoves the pin.sync-agent-skills.yml: when bugsee-for-ai changes (dispatch from that repo, plus a 6-hourly poll as fallback), opens/updates one rolling PR with the regenerated copies. It runs cspell + the site build itself and opens the PR as a draft if either fails (PRs created with the defaultGITHUB_TOKENdon't trigger the normal checks).deploy.yml: PRs now also run the mirror unit tests and--check.curlURLs are unchanged.sdk/ios/v7has no plugin counterpart yet, so it stays docs-owned (docsOwnedin the map).unbreak,Podspec.Behaviour changes to be aware of
/sdk/android/SKILL.md(the 6.x skill) now hasname: bugsee-android-sdk-6x(plugin naming);/sdk/android/v7/SKILL.mdnow hasname: bugsee-android-sdk, and is no longer "beta". URLs unchanged.MIT(as in the plugin), wasproprietary.Verified locally
npm run test:mirror8/8;npm run check-skillsOK, and exits 1 on a hand edit (tested).npm run build: success, no warnings. Staticcurlcopies keep onlyname/description/license/category.18c2542.Setup (once, org owner)
Authenticates as a GitHub App owned by the
bugseeorg (not a person's token):bugsee/docsonly.SYNC_APP_CLIENT_IDand the private key as theSYNC_APP_PRIVATE_KEYsecret of theskills-syncenvironment (limited to themainbranch, so a feature-branch workflow can't read it). Done on 2026-10-08.Without the app the workflow still works: it falls back to
GITHUB_TOKEN(the PR then does not get the normal checks, so the job runs cspell + build itself and opens a draft on failure).Companion: bugsee/bugsee-for-ai#18 (sends the instant notification; same app, same two values there).
Open PR #77 edits
sdk/ios/v7/SKILL.md, which stays docs-owned here, so no conflict.🤖 Generated with Claude Code