Commit 15cab96
📖 ADR 0015 on skill packaging and delivery (#141)
Proposes dropping skillctl for an ordinary Containerfile, letting one
image carry a bundle of skills, and assembling `/opt/skills` in an init
container that validates what it assembled. Inline and git sources stop
needing an image at all: inline becomes a ConfigMap, git is cloned at
pod start, and the controller still builds nothing.
skillctl was already producing a plain OCI image from a directory, and
charging us a `skill.yaml` that duplicated the SKILL.md frontmatter.
`skillctl install --target goose` isn't supported at v0.7.2 either, so
the local dev story ADR 0001 promised was never reachable.
Cloning git at pod start is the thing ADR 0001 rejected as "pallet as
runtime sync engine", so this supersedes that explicitly rather than
contradicting it quietly, and takes the loss: a git source needs the
network at startup, isn't auditable by digest, and doesn't work
air-gapped. That's bounded to `spec.source`, and the remedy is to build
the repo into an image. Image and inline still need no network at pod
start, so the air-gap requirement is scoped rather than overturned.
Resolving git controller-side into a ConfigMap would remove the cost and
stays open: `spec.source` means the same thing either way, so it can be
adopted later without an API change.
Also revises where ADR 0014 sources its rules list. `KONVEYOR_RULES` set
from `spec.type` can't work for a bundle, since the controller never
sees inside the image and so can't say which of the skills is a rule.
#135 needs updating alongside this if the decision holds.
One question is left open rather than settled: whether a SkillCard
should be able to demote a skill whose frontmatter declares it a rule.
Promotion is harmless, demotion turns a constraint into a suggestion,
which is what ADR 0014 rejected an alternative over. I'd like a second
opinion on that one before it hardens.
The ADR lists the docs in CONTEXT.md and README.md that stop being true.
They aren't touched here on purpose: this merges as `proposed` with no
implementation, so those docs still describe the system as it actually
is, and editing them now would make them wrong.
A prototype of all of it exists and produced the measurements quoted in
the ADR, including the four-case probe on minikube with CRI-O 1.35.0 and
k8s v1.34.0. It's held back pending review of the decisions, so this PR
is the ADR alone.
Refs #44
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Documentation**
* Updated the glossary to clarify AgentSkills.io `SKILL.md` formatting
and distinguish on-demand skills from always-loaded rules.
* Documented support for skills delivered through OCI images, Git
sources, and inline configuration.
* Added guidance for selecting skills from multi-skill packages using
`subPath`.
* Added an architectural decision record describing skill assembly,
validation, naming, and delivery workflows.
* Updated infrastructure and relationship documentation to reflect the
revised skill packaging model.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Signed-off-by: Fabian von Feilitzsch <fabian@fabianism.us>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 6a0cfcd commit 15cab96
2 files changed
Lines changed: 570 additions & 33 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
17 | 20 | | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
27 | 35 | | |
28 | 36 | | |
29 | 37 | | |
| |||
111 | 119 | | |
112 | 120 | | |
113 | 121 | | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
121 | 131 | | |
122 | 132 | | |
123 | 133 | | |
| |||
250 | 260 | | |
251 | 261 | | |
252 | 262 | | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
258 | 268 | | |
259 | 269 | | |
260 | 270 | | |
| |||
0 commit comments