You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First roadmap anchor for devantler-tech/skills, the agent-neutral, cross-tool skill library
consumed across the portfolio (via install.sh, the setup-agent-skills / update-agent-skills
actions, and the update-agent-skills reusable workflow).
Where the product is. Mature and well-governed: 22 indexed skills (18 upstream pointers + 4
in-house β agent-instructions, conventional-release, gitops-tenant-onboarding, ways-of-working), strict CI (agentskills.io spec validation, shellcheck, README
index lockstep), conventional-commit release β CD publish. The recent agent-neutral + CI-hardening
push (#24β#31) is complete β index is agent-neutral, install helper targets both Copilot and
Claude, AGENTS.md trust gate aligned with the canonical contract. No open issues, no rough edges.
Where it should go next. With the agent-neutral foundation settled, the next phase is about growing curated value and hardening the single-source-of-truth index against silent drift as the
catalogue scales. Three candidate themes below (each problem β direction β rough size); they are
directions to weigh, not commitments. Pick up the children as normal labelled issues; implementing
PRs use Fixes #<child>.
Theme 1 β Grow the in-house skill set from proven portfolio patterns (size: M, per skill) β PHASE 1 DELIVERED; now opportunistic
Problem. When this epic was filed only ways-of-working was authored in-house. The obvious
high-leverage patterns have since been extracted into spec-conformant in-house skills: gitops-tenant-onboarding (#45), agent-instructions (#47), and conventional-release β so 4 of
the 22 indexed skills are now in-house (child #34 closed). Remaining devantler-tech patterns either
already live in one of these four skills or are too product-specific / immature to generalise. Direction (refreshed). Phase 1 is done. Add a new in-house skill only when a fresh generic
pattern proves out across 2+ products (the holistic shared-library trigger) β evidence-gated and
opportunistic, not on a schedule. Each new skill still follows the agentskills.io spec + README
lockstep + the #37 inclusion bar and stays tool-neutral. Why this framing. The four in-house skills already cover the curated value that distinguishes the
library from a bare list of upstream links; forcing a fifth without a proven, non-overlapping pattern
would fail the #37 quality bar (generic & reusable). Curate quality over count.
Theme 2 β Harden the index against install-target drift (size: SβM) β DONE
Problem. The README index is the single source of truth for install.sh and every consumer. The
original lockstep CI check asserted entry-count == table-row-count (catches malformed/duplicate rows)
but did not verify each gh skill install <owner/repo> <skill> target actually resolves. A typo'd
repo or skill slug passed count-lockstep and only failed at consume time β rippling across every
consumer of the index, the highest-blast-radius failure for a shared library. Delivered. The gap between "the table is well-formed" and "the table is correct" is now closed on
both halves of the lockstep:
In-house targets (offline, PR-blocking):check-readme-index.sh check 4 resolves every devantler-tech/skills <skill> self-pointer to a real on-disk <skill>/SKILL.md β the indexβdisk
reverse of the existing diskβindex check (ci: guard that in-house README index entries resolve on diskΒ #33).
Cross-column consistency (offline, PR-blocking): check 5 asserts, per row, that the Install
command, the Skill name, and the Upstream link/URL all agree (install owner/repo == link owner/repo
== URL owner/repo; install slug == skill name == URL trailing segment), so a row whose columns disagree β e.g. a typo'd install repo/slug β can no longer ship a broken install command while
passing count-lockstep and upstream resolution (ci: guard README index cross-column consistency (offline)Β #41).
Upstream targets (network, scheduled):check-upstream-skills.sh confirms via the GitHub API
that each upstream row's <path>/SKILL.md still exists at its pinned ref; deliberately not
PR-blocking (an upstream outage must never flake a contributor PR) β it runs on a schedule, retries
transients to a non-fatal ::warning::, and hard-fails only on a definitive 404 (feat(ci): validate upstream skill targets resolveΒ #38).
Theme 3 β Codify the skill inclusion / quality bar (size: S) β DONE (#36 β #37)
Problem. There is no written criteria for what makes a skill index-worthy: upstream-pointer vs.
author-in-house, naming, category placement, spec-conformance, agent-neutrality. Curation criteria are
implicit in reviewers' heads; find-skills aids discovery but not contribution. Direction. A short contribution / quality-bar doc codifying the inclusion criteria and the
existing validation gate, referenced from AGENTS.md. Keeps the index consistent as it scales and
lowers the bar for outside contributions. Why now. Low-risk, compounding: every future addition is more consistent and faster to review.
Deferred to maintainer (not a theme)
skillsβplugins consistency is currently a manual maintenance task (AGENTS.md lists "consistency
with plugins" but there is no sync mechanism). Whether to automate alignment between the skills index
and the plugins marketplace bundle is a cross-repo call left to the maintainer. This is about consistency tooling only β the scope of plugins itself is settled
(devantler-tech/agent-plugins#15) and not in question here.
Labeling note (resolved): this epic now carries the roadmap label β devantler-tech/actions#253 added roadmap to the
canonical labels.yaml, so the weekly Sync labels job (delete-other-labels: true, Mon 07:00 UTC)
preserves it rather than deleting it.
Refreshed 2026-06-16:Theme 2 marked DELIVERED against live main β the install-target-drift
gap is closed on all three fronts (in-house resolve #33, cross-column consistency #41, upstream
resolution #38), all landed 2026-06-09β06-13 after this epic was first written (2026-06-08). Themes 1
(grow in-house skills) and 3 (codify the inclusion/quality bar) remain the open directions; the plugins-consistency item stays deferred to the maintainer.
Refreshed 2026-06-24 (strategy review #2):all three children are now closed/merged and the
catalogue grew 19 β 22 skills (in-house 1 β 4). Theme 3 DONE (#36 β #37 inclusion-criteria doc
merged 2026-06-10); Theme 2 DONE (above); Theme 1 phase-1 delivered (#34 closed; the obvious
patterns are extracted) and reframed to opportunistic / evidence-gated β add a new in-house skill
only when a fresh generic pattern proves out across 2+ products, per the holistic trigger. The product
is in a healthy steady-state: no forced children. This epic stays open as the standing strategy
anchor; its live guards (PR-blocking README lockstep + the scheduled upstream-resolution check) keep
the index correct between runs. The plugins-consistency item remains deferred to the maintainer
(devantler-tech/agent-plugins#15 settled the plugins scope). Full review in the comment below.
skills β strategy & roadmap (June 2026)
First roadmap anchor for
devantler-tech/skills, the agent-neutral, cross-tool skill libraryconsumed across the portfolio (via
install.sh, thesetup-agent-skills/update-agent-skillsactions, and the
update-agent-skillsreusable workflow).Where the product is. Mature and well-governed: 22 indexed skills (18 upstream pointers + 4
in-house β
agent-instructions,conventional-release,gitops-tenant-onboarding,ways-of-working), strict CI (agentskills.io spec validation, shellcheck, READMEindex lockstep), conventional-commit release β CD publish. The recent agent-neutral + CI-hardening
push (#24β#31) is complete β index is agent-neutral, install helper targets both Copilot and
Claude, AGENTS.md trust gate aligned with the canonical contract. No open issues, no rough edges.
Where it should go next. With the agent-neutral foundation settled, the next phase is about
growing curated value and hardening the single-source-of-truth index against silent drift as the
catalogue scales. Three candidate themes below (each problem β direction β rough size); they are
directions to weigh, not commitments. Pick up the children as normal labelled issues; implementing
PRs use
Fixes #<child>.Theme 1 β Grow the in-house skill set from proven portfolio patterns (size: M, per skill) β PHASE 1 DELIVERED; now opportunistic
Problem. When this epic was filed only
ways-of-workingwas authored in-house. The obvioushigh-leverage patterns have since been extracted into spec-conformant in-house skills:
gitops-tenant-onboarding(#45),agent-instructions(#47), andconventional-releaseβ so 4 ofthe 22 indexed skills are now in-house (child #34 closed). Remaining devantler-tech patterns either
already live in one of these four skills or are too product-specific / immature to generalise.
Direction (refreshed). Phase 1 is done. Add a new in-house skill only when a fresh generic
pattern proves out across 2+ products (the holistic shared-library trigger) β evidence-gated and
opportunistic, not on a schedule. Each new skill still follows the agentskills.io spec + README
lockstep + the #37 inclusion bar and stays tool-neutral.
Why this framing. The four in-house skills already cover the curated value that distinguishes the
library from a bare list of upstream links; forcing a fifth without a proven, non-overlapping pattern
would fail the #37 quality bar (generic & reusable). Curate quality over count.
Theme 2 β Harden the index against install-target drift (size: SβM) β DONE
Problem. The README index is the single source of truth for
install.shand every consumer. Theoriginal lockstep CI check asserted entry-count == table-row-count (catches malformed/duplicate rows)
but did not verify each
gh skill install <owner/repo> <skill>target actually resolves. A typo'drepo or skill slug passed count-lockstep and only failed at consume time β rippling across every
consumer of the index, the highest-blast-radius failure for a shared library.
Delivered. The gap between "the table is well-formed" and "the table is correct" is now closed on
both halves of the lockstep:
check-readme-index.shcheck 4 resolves everydevantler-tech/skills <skill>self-pointer to a real on-disk<skill>/SKILL.mdβ the indexβdiskreverse of the existing diskβindex check (ci: guard that in-house README index entries resolve on diskΒ #33).
command, the Skill name, and the Upstream link/URL all agree (install owner/repo == link owner/repo
== URL owner/repo; install slug == skill name == URL trailing segment), so a row whose columns
disagree β e.g. a typo'd install repo/slug β can no longer ship a broken install command while
passing count-lockstep and upstream resolution (ci: guard README index cross-column consistency (offline)Β #41).
check-upstream-skills.shconfirms via the GitHub APIthat each upstream row's
<path>/SKILL.mdstill exists at its pinned ref; deliberately notPR-blocking (an upstream outage must never flake a contributor PR) β it runs on a schedule, retries
transients to a non-fatal
::warning::, and hard-fails only on a definitive 404 (feat(ci): validate upstream skill targets resolveΒ #38).Theme 3 β Codify the skill inclusion / quality bar (size: S) β DONE (#36 β #37)
Problem. There is no written criteria for what makes a skill index-worthy: upstream-pointer vs.
author-in-house, naming, category placement, spec-conformance, agent-neutrality. Curation criteria are
implicit in reviewers' heads;
find-skillsaids discovery but not contribution.Direction. A short contribution / quality-bar doc codifying the inclusion criteria and the
existing validation gate, referenced from
AGENTS.md. Keeps the index consistent as it scales andlowers the bar for outside contributions.
Why now. Low-risk, compounding: every future addition is more consistent and faster to review.
Deferred to maintainer (not a theme)
skillsβ
pluginsconsistency is currently a manual maintenance task (AGENTS.md lists "consistencywith plugins" but there is no sync mechanism). Whether to automate alignment between the skills index
and the
pluginsmarketplace bundle is a cross-repo call left to the maintainer. This is aboutconsistency tooling only β the scope of
pluginsitself is settled(devantler-tech/agent-plugins#15) and not in question here.
Labeling note (resolved): this epic now carries the
roadmaplabel βdevantler-tech/actions#253 added
roadmapto thecanonical
labels.yaml, so the weeklySync labelsjob (delete-other-labels: true, Mon 07:00 UTC)preserves it rather than deleting it.
Refreshed 2026-06-16: Theme 2 marked DELIVERED against live
mainβ the install-target-driftgap is closed on all three fronts (in-house resolve #33, cross-column consistency #41, upstream
resolution #38), all landed 2026-06-09β06-13 after this epic was first written (2026-06-08). Themes 1
(grow in-house skills) and 3 (codify the inclusion/quality bar) remain the open directions; the
plugins-consistency item stays deferred to the maintainer.Refreshed 2026-06-24 (strategy review #2): all three children are now closed/merged and the
catalogue grew 19 β 22 skills (in-house 1 β 4). Theme 3 DONE (#36 β #37 inclusion-criteria doc
merged 2026-06-10); Theme 2 DONE (above); Theme 1 phase-1 delivered (#34 closed; the obvious
patterns are extracted) and reframed to opportunistic / evidence-gated β add a new in-house skill
only when a fresh generic pattern proves out across 2+ products, per the holistic trigger. The product
is in a healthy steady-state: no forced children. This epic stays open as the standing strategy
anchor; its live guards (PR-blocking README lockstep + the scheduled upstream-resolution check) keep
the index correct between runs. The
plugins-consistency item remains deferred to the maintainer(devantler-tech/agent-plugins#15 settled the
pluginsscope). Full review in the comment below.