Skip to content

refactor(skills)!: convert to curated index of upstream skills#16

Merged
botantler[bot] merged 1 commit intomainfrom
devantler/lean-into-gh-skill-frontmatter
Apr 19, 2026
Merged

refactor(skills)!: convert to curated index of upstream skills#16
botantler[bot] merged 1 commit intomainfrom
devantler/lean-into-gh-skill-frontmatter

Conversation

@devantler
Copy link
Copy Markdown
Contributor

Stop re-hosting upstream skills in this repo. With gh skill install natively recording upstream provenance in each installed SKILL.md's metadata.github-* frontmatter, a curator re-publishing copies would strip the very metadata gh skill update --all relies on — so this repo becomes a curated index instead.

Type of change

  • 🧹 Refactor
  • ⛓️‍💥 Breaking change
  • 📚 Documentation update

What changed

  • Deleted all 19 vendored skill directories — consumers install directly from the original upstream (see the new README table).
  • Deleted skills-lock.yaml, .github/scripts/update-skill.sh, and .github/workflows/update-skills.yaml — the bespoke upstream-sync bot is no longer needed; gh skill update --all handles drift natively from the github-* metadata each installed skill already carries.
  • Guarded .github/workflows/ci.yaml so both gh skill publish --dry-run and the skills-ref validate matrix cleanly no-op on an empty repo. The publish pipeline (cd.yaml, release.yaml, .releaserc) stays scaffolded for future in-house skills.
  • Rewrote README.md as a curated index — per-category tables with Skill | Upstream | Install columns showing literal gh skill install <upstream> <skill> snippets, plus a migration notice for anyone currently pinning devantler-tech/skills@v0.2.5 or earlier (those tags still work).

Breaking change

gh skill install devantler-tech/skills <skill> against main no longer resolves — install from each skill's true upstream (one-line snippets in the README) or keep pinning to an existing release tag. Companion PRs in devantler-tech/actions, devantler-tech/reusable-workflows, devantler-tech/ksail, and devantler-tech/platform migrate the automation + downstream consumers accordingly.

Stop re-hosting upstream skills in this repo. With `gh skill install`
natively recording upstream provenance in each installed SKILL.md's
`metadata.github-*` frontmatter, a curator re-publishing copies would
strip the very metadata `gh skill update --all` relies on.

- Delete all 19 vendored skill directories.
- Delete skills-lock.yaml and the bespoke upstream-sync bot
  (.github/scripts/update-skill.sh, .github/workflows/update-skills.yaml).
- Guard .github/workflows/ci.yaml so both the publish dry-run and the
  skills-ref validate matrix cleanly no-op on an empty repo, keeping the
  publish pipeline scaffolded for future in-house skills.
- Rewrite README.md as a curated index with per-category tables of
  Skill | Upstream | Install snippets, and a migration notice pointing
  pinned v0.2.5/earlier consumers at the still-working release tags.

BREAKING CHANGE: `gh skill install devantler-tech/skills <skill>` no
longer resolves against main. Install directly from each skill's
upstream repo (see README for the full table) or keep pinning to an
existing release tag (v0.2.5 and earlier).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 19, 2026 15:58
@botantler botantler Bot enabled auto-merge (squash) April 19, 2026 15:58
@botantler botantler Bot merged commit c786e7d into main Apr 19, 2026
10 checks passed
@botantler botantler Bot deleted the devantler/lean-into-gh-skill-frontmatter branch April 19, 2026 15:59
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Refactors the repository from re-hosting upstream skills to acting as a curated index, removing vendored skill content and upstream-sync automation, and adjusting CI to handle an empty repo gracefully.

Changes:

  • Removed vendored skill directories and their associated docs/schemas/evals.
  • Removed the upstream-sync bot workflow and script.
  • Updated CI to skip gh skill publish --dry-run and the validation matrix when no skills are present.

Reviewed changes

Copilot reviewed 62 out of 144 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
gitops-knowledge/assets/schemas/artifactgenerator-source-v1beta1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-knowledge/assets/schemas/alert-notification-v1beta3.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-knowledge/assets/schemas/alert-notification-v1beta2.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/references/troubleshooting.md Removes re-hosted skill reference documentation.
gitops-cluster-debug/references/flux-crds.md Removes re-hosted skill reference documentation.
gitops-cluster-debug/evals/evals.json Removes re-hosted skill eval documentation.
gitops-cluster-debug/assets/schemas/receiver-notification-v1beta2.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/receiver-notification-v1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/provider-notification-v1beta3.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/provider-notification-v1beta2.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/imagerepository-image-v1beta2.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/imagerepository-image-v1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/imagepolicy-image-v1beta2.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/imagepolicy-image-v1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/helmrepository-source-v1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/helmchart-source-v1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/fluxreport-fluxcd-v1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/externalartifact-source-v1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/artifactgenerator-source-v1beta1.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/alert-notification-v1beta3.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/assets/schemas/alert-notification-v1beta2.json Removes vendored schema content as part of dropping re-hosted skill assets.
gitops-cluster-debug/SKILL.md Removes the vendored skill definition/documentation.
github-issues/references/templates.md Removes re-hosted skill reference documentation.
github-issues/references/sub-issues.md Removes re-hosted skill reference documentation.
github-issues/references/search.md Removes re-hosted skill reference documentation.
github-issues/references/projects.md Removes re-hosted skill reference documentation.
github-issues/references/issue-types.md Removes re-hosted skill reference documentation.
github-issues/references/issue-fields.md Removes re-hosted skill reference documentation.
github-issues/references/images.md Removes re-hosted skill reference documentation.
github-issues/references/dependencies.md Removes re-hosted skill reference documentation.
github-issues/SKILL.md Removes the vendored skill definition/documentation.
github-actions-docs/references/topic-map.md Removes re-hosted skill reference documentation.
github-actions-docs/SKILL.md Removes the vendored skill definition/documentation.
git-commit/SKILL.md Removes the vendored skill definition/documentation.
frontend-design/SKILL.md Removes the vendored skill definition/documentation.
frontend-design/LICENSE.txt Removes vendored skill licensing file as part of dropping the skill.
find-skills/SKILL.md Removes the vendored skill definition/documentation.
copilot-instructions-blueprint-generator/SKILL.md Removes the vendored skill definition/documentation.
bubbletea/references/emoji-width-fix.md Removes re-hosted skill reference documentation.
bubbletea/SKILL.md Removes the vendored skill definition/documentation.
astro/SKILL.md Removes the vendored skill definition/documentation.
.github/workflows/update-skills.yaml Removes the bespoke upstream-sync workflow.
.github/workflows/ci.yaml Adds guards so CI cleanly no-ops when no skills exist.
.github/scripts/update-skill.sh Removes the bespoke upstream-sync script.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/ci.yaml
Comment on lines 90 to +93
validate-spec:
name: Validate spec (${{ matrix.skill }})
needs: discover-skills
if: needs.discover-skills.outputs.skills != '[]'
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

Using a job-level if to skip validate-spec when there are no skills will mark the job as skipped, not successful. If branch protection rules require this check, merges can be blocked even though the empty-repo case is expected. Consider keeping the job running and short-circuiting inside a first step (exit 0) when the skills list is empty, or introduce a separate always-running 'validate-spec' wrapper job that succeeds for empty repos while only running the matrix when non-empty.

Copilot uses AI. Check for mistakes.
Comment thread .github/workflows/ci.yaml
if ! jq -e 'type == "array" and length > 0' >/dev/null 2>&1 <<<"$skills"; then
echo "::error::Skill discovery output was empty or invalid. Ensure skill directories contain SKILL.md at the expected path and that discovery logic is working."
if ! jq -e 'type == "array"' >/dev/null 2>&1 <<<"$skills"; then
echo "::error::Skill discovery produced invalid output."
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

The updated error message is much less actionable than before (it no longer hints at the expected SKILL.md path or the discovery logic). Consider including the expected directory layout and/or the exact discovery command assumptions (e.g., ./<skill>/SKILL.md at depth 2) to make CI failures easier to debug.

Suggested change
echo "::error::Skill discovery produced invalid output."
echo "::error::Skill discovery produced invalid output. Expected skills to be discovered from manifests at './<skill>/SKILL.md' using 'find . -mindepth 2 -maxdepth 2 -name SKILL.md', and for the result to be converted into a JSON array of skill directories."

Copilot uses AI. Check for mistakes.
devantler added a commit to devantler-tech/ksail that referenced this pull request Apr 19, 2026
Re-install each agent skill from its original upstream repo via
`gh skill install`, so every installed SKILL.md now carries
`metadata.github-*` frontmatter pointing at the true origin instead
of `devantler-tech/skills`. `gh skill update --all` reads that
metadata directly, making the sidecar `skills-lock.json` redundant.

- Delete `skills-lock.json` + remove its mega-linter exclusions.
- Reinstall 15 skills from upstream via `gh skill install <owner/repo> <path>
  --agent github-copilot --scope project --dir .agents/skills`.
- Bump `update-skills.yaml` to pin the refreshed reusable workflow and
  swap `skills-lock` for the new `dir` input.

BREAKING CHANGE: `skills-lock.json` is removed. Tooling that reads it
must now discover skills under `.agents/skills/` instead.

Refs: devantler-tech/skills#16, devantler-tech/actions#95,
devantler-tech/reusable-workflows#207

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
devantler added a commit to devantler-tech/platform that referenced this pull request Apr 19, 2026
Re-install each agent skill from its original upstream repo via
`gh skill install`, so every installed SKILL.md now carries
`metadata.github-*` frontmatter pointing at the true origin instead
of `devantler-tech/skills`. `gh skill update --all` reads that
metadata directly, making the sidecar `skills-lock.json` redundant.

- Delete `skills-lock.json`.
- Reinstall 11 of 12 skills from upstream via
  `gh skill install <owner/repo> <path> --agent github-copilot
   --scope project --dir .agents/skills`.
- `siderolabs/docs` is not re-installed: the upstream ships
  `public/skill.md` (lowercase) which `gh skill install` rejects
  (it only recognises `SKILL.md`). Tracking upstream for a fix —
  until then, manage that skill out-of-band or drop it.
- Bump `update-skills.yaml` to pin the refreshed reusable workflow and
  swap `skills-lock` for the new `dir` input.

BREAKING CHANGE: `skills-lock.json` is removed. The `siderolabs`
skill is temporarily unavailable pending an upstream rename to
`SKILL.md`.

Refs: devantler-tech/skills#16, devantler-tech/actions#95,
devantler-tech/reusable-workflows#207

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
github-merge-queue Bot pushed a commit to devantler-tech/platform that referenced this pull request Apr 19, 2026
)

* refactor(skills)!: reinstall from upstreams, drop skills-lock.json

Re-install each agent skill from its original upstream repo via
`gh skill install`, so every installed SKILL.md now carries
`metadata.github-*` frontmatter pointing at the true origin instead
of `devantler-tech/skills`. `gh skill update --all` reads that
metadata directly, making the sidecar `skills-lock.json` redundant.

- Delete `skills-lock.json`.
- Reinstall 11 of 12 skills from upstream via
  `gh skill install <owner/repo> <path> --agent github-copilot
   --scope project --dir .agents/skills`.
- `siderolabs/docs` is not re-installed: the upstream ships
  `public/skill.md` (lowercase) which `gh skill install` rejects
  (it only recognises `SKILL.md`). Tracking upstream for a fix —
  until then, manage that skill out-of-band or drop it.
- Bump `update-skills.yaml` to pin the refreshed reusable workflow and
  swap `skills-lock` for the new `dir` input.

BREAKING CHANGE: `skills-lock.json` is removed. The `siderolabs`
skill is temporarily unavailable pending an upstream rename to
`SKILL.md`.

Refs: devantler-tech/skills#16, devantler-tech/actions#95,
devantler-tech/reusable-workflows#207

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(update-skills): pin to merged reusable-workflows commit on main

The previous PR-head SHA was unreachable from the default branch after
reusable-workflows#207 squash-merged, triggering zizmor's
"commit with no history in referenced repository" alert. Repoint at
the merge commit on `main`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
github-merge-queue Bot pushed a commit to devantler-tech/ksail that referenced this pull request Apr 19, 2026
)

* refactor(skills)!: reinstall from upstreams, drop skills-lock.json

Re-install each agent skill from its original upstream repo via
`gh skill install`, so every installed SKILL.md now carries
`metadata.github-*` frontmatter pointing at the true origin instead
of `devantler-tech/skills`. `gh skill update --all` reads that
metadata directly, making the sidecar `skills-lock.json` redundant.

- Delete `skills-lock.json` + remove its mega-linter exclusions.
- Reinstall 15 skills from upstream via `gh skill install <owner/repo> <path>
  --agent github-copilot --scope project --dir .agents/skills`.
- Bump `update-skills.yaml` to pin the refreshed reusable workflow and
  swap `skills-lock` for the new `dir` input.

BREAKING CHANGE: `skills-lock.json` is removed. Tooling that reads it
must now discover skills under `.agents/skills/` instead.

Refs: devantler-tech/skills#16, devantler-tech/actions#95,
devantler-tech/reusable-workflows#207

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(update-skills): pin to merged reusable-workflows commit on main

The previous PR-head SHA was unreachable from the default branch after
reusable-workflows#207 squash-merged, triggering zizmor's
"commit with no history in referenced repository" alert. Repoint at
the merge commit on `main`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
github-merge-queue Bot pushed a commit to devantler-tech/ksail that referenced this pull request Apr 19, 2026
)

* refactor(skills)!: reinstall from upstreams, drop skills-lock.json

Re-install each agent skill from its original upstream repo via
`gh skill install`, so every installed SKILL.md now carries
`metadata.github-*` frontmatter pointing at the true origin instead
of `devantler-tech/skills`. `gh skill update --all` reads that
metadata directly, making the sidecar `skills-lock.json` redundant.

- Delete `skills-lock.json` + remove its mega-linter exclusions.
- Reinstall 15 skills from upstream via `gh skill install <owner/repo> <path>
  --agent github-copilot --scope project --dir .agents/skills`.
- Bump `update-skills.yaml` to pin the refreshed reusable workflow and
  swap `skills-lock` for the new `dir` input.

BREAKING CHANGE: `skills-lock.json` is removed. Tooling that reads it
must now discover skills under `.agents/skills/` instead.

Refs: devantler-tech/skills#16, devantler-tech/actions#95,
devantler-tech/reusable-workflows#207

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(update-skills): pin to merged reusable-workflows commit on main

The previous PR-head SHA was unreachable from the default branch after
reusable-workflows#207 squash-merged, triggering zizmor's
"commit with no history in referenced repository" alert. Repoint at
the merge commit on `main`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
github-merge-queue Bot pushed a commit to devantler-tech/ksail that referenced this pull request Apr 19, 2026
)

* refactor(skills)!: reinstall from upstreams, drop skills-lock.json

Re-install each agent skill from its original upstream repo via
`gh skill install`, so every installed SKILL.md now carries
`metadata.github-*` frontmatter pointing at the true origin instead
of `devantler-tech/skills`. `gh skill update --all` reads that
metadata directly, making the sidecar `skills-lock.json` redundant.

- Delete `skills-lock.json` + remove its mega-linter exclusions.
- Reinstall 15 skills from upstream via `gh skill install <owner/repo> <path>
  --agent github-copilot --scope project --dir .agents/skills`.
- Bump `update-skills.yaml` to pin the refreshed reusable workflow and
  swap `skills-lock` for the new `dir` input.

BREAKING CHANGE: `skills-lock.json` is removed. Tooling that reads it
must now discover skills under `.agents/skills/` instead.

Refs: devantler-tech/skills#16, devantler-tech/actions#95,
devantler-tech/reusable-workflows#207

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(update-skills): pin to merged reusable-workflows commit on main

The previous PR-head SHA was unreachable from the default branch after
reusable-workflows#207 squash-merged, triggering zizmor's
"commit with no history in referenced repository" alert. Repoint at
the merge commit on `main`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
devantler added a commit to devantler-tech/ksail that referenced this pull request Apr 20, 2026
)

* refactor(skills)!: reinstall from upstreams, drop skills-lock.json

Re-install each agent skill from its original upstream repo via
`gh skill install`, so every installed SKILL.md now carries
`metadata.github-*` frontmatter pointing at the true origin instead
of `devantler-tech/skills`. `gh skill update --all` reads that
metadata directly, making the sidecar `skills-lock.json` redundant.

- Delete `skills-lock.json` + remove its mega-linter exclusions.
- Reinstall 15 skills from upstream via `gh skill install <owner/repo> <path>
  --agent github-copilot --scope project --dir .agents/skills`.
- Bump `update-skills.yaml` to pin the refreshed reusable workflow and
  swap `skills-lock` for the new `dir` input.

BREAKING CHANGE: `skills-lock.json` is removed. Tooling that reads it
must now discover skills under `.agents/skills/` instead.

Refs: devantler-tech/skills#16, devantler-tech/actions#95,
devantler-tech/reusable-workflows#207

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(update-skills): pin to merged reusable-workflows commit on main

The previous PR-head SHA was unreachable from the default branch after
reusable-workflows#207 squash-merged, triggering zizmor's
"commit with no history in referenced repository" alert. Repoint at
the merge commit on `main`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

2 participants