Add tooling to refresh community extension projects page#1087
Merged
jbw976 merged 3 commits intocrossplane:masterfrom May 4, 2026
Merged
Add tooling to refresh community extension projects page#1087jbw976 merged 3 commits intocrossplane:masterfrom
jbw976 merged 3 commits intocrossplane:masterfrom
Conversation
Stop ignoring all of .claude/ so shared skills under .claude/skills/ are tracked. Per-user state in .claude/settings.local.json stays ignored. Signed-off-by: Jared Watts <jbw976@gmail.com>
Add a discovery script that queries the crossplane-contrib org via gh and emits sorted JSON, plus a Claude Code skill that drives the script, diffs against the page, alphabetizes by target name, and copies the result to the latest versioned docs derived from config.yaml's `latest:` key. Signed-off-by: Jared Watts <jbw976@gmail.com>
Sync the page with the current crossplane-contrib org via the community-extensions-update skill. Net +4 repos (10 added, 6 renamed or removed), plus a handful of reorderings to match the skill's target-based sort. Signed-off-by: Jared Watts <jbw976@gmail.com>
✅ Deploy Preview for crossplane ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
jbw976
commented
Apr 29, 2026
Member
Author
jbw976
left a comment
There was a problem hiding this comment.
a big question for reviewers - are we good with having skills committed to this repo? i'm seeing more of that pattern out in the wild and i've been enjoying the automation benefits it brings...what do others think?
Member
Author
|
thanks @phisco! yeah it's a bit more deterministic than other skills i've created recently 😂 - i do like having the script to deterministically fetch the repos/status, then the skill takes over for some light judgement calls like categorization and non-standard alphabetizing rules 🤓 |
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.

The community extension projects page lists every public, non-archived repo under the crossplane-contrib GitHub org. The list drifts out of date as repos are added, archived, or renamed, and we're not doing a great job keeping up with it.
This PR adds tooling to automate the refresh, plus the first run against the current org state.
Tooling
scripts/discover-community-extensions.shqueries the crossplane-contrib org viaghand emits a sorted JSON array ofname,url,description,topics, andforkfor each public, non-archived repo..claude/skills/community-extensions-update/SKILL.mdis a Claude Code skill that drives the script, diffs the output against the page, prompts for ambiguous categorizations, rewrites each section using a target-based alphabetical sort (soprovider-upjet-awssits next toprovider-aws, not down in the U's), and copies the updated page fromcontent/master/to the matchingcontent/v${LATEST}/derived fromconfig.yaml'slatest:key..gitignorenarrows the.claude/ignore so shared skills under.claude/skills/are tracked. Per-user state in.claude/settings.local.jsonstays ignored.Page refresh
Added:
provider-dynatrace,provider-k3s,provider-sonarqube,provider-upjet-cloudflare,provider-upjet-zitadel,function-deletion-protection,function-gitlab-importer,resource-state-metrics,typescript-models,xprin.Removed:
provider-cloudflare,provider-cloudinit,provider-ibm-cloud,provider-newrelic,provider-secret,provider-jet-vault.A handful of reorderings to match the skill's target-based sort (e.g.
provider-upjet-gcpbeforeprovider-gcp-beta).