This record maps the skills this marketplace bundles to the work the Devantler Tech portfolio actually does. For each gap it gives one decision: covered, owned by an existing issue, adopt an upstream skill, or do not add. It answers #637. Whether agents load the skills they have is measured separately: the activation baseline is in #642, and the eval suite is #651.
This is an engineering inventory. It makes no legal or compliance claim.
- Skills: 39 skills at
73c39b3: 35 inagentic-engineering, 1 inksailand 3 invibe-coding. The monorepo also carries 4 deployment overlays and 17 product cards under.claude/skills/. Three of the overlays extend the bundledportfolio-maintenance,product-engineeringandself-improvementskills for that deployment. The fourth,finops, is a deployment-only procedure for the engineer's spend mandate. None of the overlays is bundled here. - Portfolio use: code search scoped to
devantler-techand the product manifests, read on 2026-11-04. Product evidence links are pinned to that day's default-branch commit. - Candidates: official vendor or project repositories first. Licence, maintainer and last push were read from the GitHub API on 2026-11-04. Skill directories that mirror other repositories were not used as sources.
- Importance: High means production or personal data, customer-facing legal exposure, or a security boundary. Medium means recurring work on a production system. Low means no product does this work today.
| Area | Portfolio use | Bundled resources | Gap | Importance | Decision |
|---|---|---|---|---|---|
| Privacy and GDPR | contact handling, customer identity and invoices in the business-site portal; guest RSVPs in wedding-app | privacy-engineering (purpose, legal basis, retention, rights, providers, transfers, impact assessments, breach reporting, with Danish additions) |
what the skill's source list says it does not claim: disputed interpretation and sector rules (health, finance, telecoms). Each product still names its own data, its accountable person and where its record of processing is kept | High | Covered since 7.6.0 by the first-party privacy-engineering (#638): no upstream candidate could be adopted, as the candidate table says |
| Danish commerce, consumer and accessibility rules | client sites with service offerings and booking (ascoachingogvaner); business-site invoicing | danish-business-rules (which rules apply and to whom: cookies, marketing, purchase information, withdrawal, subscriptions, invoices, accessibility); web-design-guidelines for accessible UI |
everything its source list lists as not covered, among them the E-commerce Act, price labelling in detail, invoices to private customers, environmental claims, sales law, payment rules, sector rules and sales to other countries | High | Covered since 7.6.0 by the first-party danish-business-rules (#639): no upstream skill for Danish rules exists |
| Application security and tenant isolation | the business-site customer portal, KHoist's data product API, tenant apps on the shared platform | application-security (threat model, access rules, tenant isolation, webhooks, uploads, limits and the tests that prove them). CI and supply chain: github-actions-hardening, codeql, secret-scanning, dependency-scanning, dependabot. Cluster tenants: gitops-tenant-onboarding |
none in guidance. Each product still writes its own isolation tests, and its own instructions name its roles and tenants | High | Covered since 7.5.0 by the first-party application-security (#640): no upstream candidate could be adopted, as the candidate table says |
| SvelteKit and TypeScript | business-site web/, wedding-app, ascoachingogvaner |
svelte-core-bestpractices and the svelte documentation server (documentation, autofixer and playground links), beside the framework-neutral frontend-design and web-design-guidelines |
none for Svelte. TypeScript itself is not treated as a gap; if that needs checking, add a TypeScript case to #651 | Medium | Covered since 7.0.0 (#652) |
| Astro | the KSail docs and the KHoist website | product-documentation, write-docs-introduction |
Astro framework guidance: the astro skill left the bundle in 7.0.0 |
Medium | Not bundled. The 7.0.0 entry in the plugin's changelog has the one command that installs astro from its upstream for work on these two sites |
| Go | ksail, khoist, the business-site server, platform helpers | golang-pro, test-driven-development, refactor |
activation only: 0 loads in a week with at least 34 Go sessions (#642) | Medium | Covered; measured by #651 |
| API and form validation | request handling in the SvelteKit sites (for example the wedding-app RSVP endpoint) and the Go portal | web-design-guidelines covers form markup |
none for validation, limits and uploads (application-security); personal data in forms belongs to privacy |
Medium | Do not add a separate skill: application-security covers validation, limits and uploads, and #638 owns personal data |
| PostgreSQL schema and migrations | the business-site portal schema, wedding-app on Drizzle migrations, KHoist's CloudNativePG provider | none | schema design, query plans, lock-safe migrations | High | Open. The one vendor-maintained candidate was evaluated and not adopted (#653); the candidate table says why. Each repository's own migration and tenant-isolation rules stay the authority |
| PostgreSQL backup and restore | the platform's CloudNativePG and Velero procedures | none | none for a skill: the procedure is specific to one repository | High | Do not add: stays in the platform's docs and verifiers |
| ClickHouse | only as Coroot's log and trace storage, which the platform runs but no product queries | none | none today | Low | Do not add. Revisit when a product writes ClickHouse schemas or queries |
| Prometheus and OpenTelemetry | Coroot with its bundled Prometheus, which Flagger and KEDA query in PromQL; Alertmanager; an OpenTelemetry log forwarder | promql (writing and checking PromQL) and prometheus (alert and recording rules, Alertmanager routing); gitops-cluster-debug reads metrics only through the Flux MCP server |
OpenTelemetry collector pipelines: the only vendor-maintained candidate defaults to a hosted service the platform does not use. Look collector configuration up through the context7 documentation server |
Medium | Covered for PromQL and alert rules since 7.3.0 (#654); collector pipelines not added |
| SLOs | the platform alerts on Coroot's built-in per-application SLOs; no repository sets its own SLO targets or error-budget policy | none | SLO targets and error-budget policy, which nobody authors today | Low | Do not add. Tuning Coroot's SLO alerts goes with #654. Revisit when a product sets its own SLO targets |
| FinOps | the engineer's spend mandate (stewardship disabled by contract) | the agentic-engineer agent and the github-actions-efficiency skill; the monorepo finops overlay is outside this repository |
none | Medium | Covered |
| Payments, subscriptions and webhooks | no product takes payments: the code search org:devantler-tech stripe on 2026-11-04 returned 7 matches, all dependency metadata, a bookmark, game assets or a skill reference |
none | none today | Low | Do not add. Webhook verification is in application-security; subscription disclosures belong to #639. Revisit when a product commits to payments |
| GitOps, Kubernetes and deployment | the platform, ksail and the templates | skills gitops-knowledge, gitops-cluster-debug, gitops-tenant-onboarding, ksail and siderolabs; the bundled Flux MCP server |
activation only: 0 loads with at least 11 manifest sessions (#642) | High | Covered; measured by #651 |
Owned means the audit hands the gap to an existing issue instead of filing an overlapping one. The candidate comparison and the adopt-or-build decision for those three gaps happen there: each issue's acceptance criteria require a candidate assessment before anything is built.
The matrix maps the 19 domain skills it names. The other 20 bundled skills are about how engineering work is run, not about a stack, so they have no domain row:
- run procedures and roles:
portfolio-maintenance,product-engineering,self-improvement,agent-improvement; - repository workflow:
ways-of-working,git-commit,conventional-release,github-issues,gh-cli,gh-stack,github-actions-docs; - writing:
agent-instructions,write-readme,write-contributing; - thinking aids:
grilling,prototype,find-skills; - conversational building (
vibe-coding):needs-stack-mapping,allowed-stack-guardrail,jargon-free-voice.
Whether these load when they should is part of #642's baseline and #651's suite. The adoption process itself belongs to #641.
Activation conditions for the adopted skills are their trigger cases. Each follow-up issue lists them: should-trigger, near-miss and over-trigger cases that #651's suite runs.
| Gap | Candidate | Licence and owner | Last push | Fit and risk | Decision |
|---|---|---|---|---|---|
| SvelteKit | svelte-core-bestpractices, svelte-code-writer |
MIT, the Svelte team | 2026-11-04 | Official. The code writer runs npx @sveltejs/mcp without a pinned version |
svelte-core-bestpractices adopted in 7.0.0. svelte-code-writer rejected: it downloads and runs an unpinned package on every call, and the bundled svelte server already offers the same documentation and autofixer tools (#652) |
| PostgreSQL | supabase-postgres-best-practices |
MIT, Supabase | 2026-11-07 | Text only and actively maintained, for "Postgres running anywhere". A review of its v0.1.9 examples found defects where they matter most here: row-level security keyed on a session setting that any querying role can change and that carries over between pooled connections, a helper function whose execute right is revoked from the role that needs it, constraint checks that match by name on any table, and a migration example that takes a blocking lock |
Not adopted at v0.1.9 (#653). Re-evaluate when the upstream corrects these or a better candidate appears |
| PostgreSQL | infra-postgres |
Apache-2.0, ClickHouse | 2026-11-02 | Provisions Postgres through the clickhousectl CLI; no schema, query or migration guidance |
Do not add |
| Observability | promql, prometheus, opentelemetry, alerting-irm |
Apache-2.0, Grafana Labs | 2026-11-09 | Official. promql and prometheus are general Prometheus guidance. opentelemetry sends telemetry to Grafana Cloud by default and builds on Grafana Alloy. alerting-irm configures Grafana's own alerting product, which the platform does not run |
promql and prometheus adopted in 7.3.0. Two examples in the promql pattern library are known to be wrong: the "stale exporter" test matches every healthy target, and the Alloy label-drop snippet is not valid configuration. Both fail loudly and are reported for an upstream fix in #676. opentelemetry and alerting-irm rejected (#654) |
| Observability | community skills such as opentelemetry and observability-sre |
MIT, individual maintainers | 2026-05-22, 2026-11-04 | General-purpose. The vendor-maintained Grafana skills cover the same scope | Rejected |
| ClickHouse | clickhouse-best-practices |
Apache-2.0, ClickHouse | 2026-11-02 | Strong, but no product authors ClickHouse work | Do not add yet |
| Payments | stripe-best-practices |
MIT, Stripe | 2026-11-04 | Official, but no product takes payments and no provider is chosen | Do not add yet |
| Application security | security-review, security-model |
Apache-2.0 repository, Sentry; the references of security-review are CC BY-SA 4.0 |
2026-11-05 | security-review reviews finished code by vulnerability class and is well made, but its references derive from OWASP material under share-alike terms, and it has no threat model, tenant design or webhook guidance. security-model writes a policy file for scanners and needs Python helpers |
Rejected for now: the licence review is #581's. Revisit security-review for the review-time half when #581 clears share-alike redistribution |
| Application security | security-review, threat-model-analyst |
MIT, github/awesome-copilot | 2026-11-10 | The first is a scanner procedure that repeats the secret and dependency checks this plugin already has. The second is threat modelling only, as a multi-agent report generator of 17 files and 335 KB | Rejected |
| Application security | owasp-security |
MIT, one maintainer | 2026-11-03 | Closest in content, with evaluation cases upstream. Its frontmatter uses a field the open skill format does not define, so the copy fails validation here unmodified, and its largest reference restates OWASP material under an MIT label | Rejected |
| Application security | VibeSec-Skill |
Apache-2.0, one maintainer | 2026-02-17 | One long secure-coding file. Its name is not a valid skill name, so it fails validation unmodified | Rejected |
| Application security | the Trail of Bits collection | CC BY-SA 4.0, Trail of Bits | 2026-11-06 | Audit workflows for security researchers, not design guidance. Share-alike terms | Rejected for now: the licence review is #581's |
| Privacy | gdpr-compliant |
MIT, github/awesome-copilot | 2026-03-30 | Engineering-focused and the closest fit, but it states coding preferences as legal duties, and two of the three reference files it links do not resolve | Rejected |
| Privacy | compliance-check |
Apache-2.0, Anthropic | 2026-11-09 | Written for an in-house legal team checking a business initiative across many jurisdictions; would not load for engineering work | Rejected |
| Privacy | a collection of 824 privacy skills, secpriv-skill |
Apache-2.0 and MIT | 2026-03-16, 2026-10-06 | The first is too large to review for correctness. The second has no frontmatter, so it is not in the open skill format | Rejected |
| Danish rules | none found | — | — | Four repository searches on 2026-11-11 returned no skill for Danish or EU consumer, marketing or cookie rules | Built |
| Any gap | author a first-party skill | this repository | — | A maintained official candidate exists for every gap adopted so far. Application security, privacy and the Danish rules are the gaps where none could be adopted, so application-security, privacy-engineering and danish-business-rules were built after the comparisons above |
Built only where the comparison rejects every candidate (the adoption-first workflow of #637) |
The Sentry and trailofbits/skills candidates above carry CC BY-SA 4.0 terms. Share-alike redistribution needs the review that #581 owns before anything under those terms is bundled.
- A skill here holds guidance that is true for any repository using the tool: Svelte, Postgres, PromQL, a GDPR engineering checklist. A skill never names a portfolio product.
- A product's
AGENTS.md, or its monorepo product card, holds the facts about that one product: which data is personal, which customers are consumers, how its database is backed up and restored, its tenant values. A product card never restates a skill. - A monorepo deployment overlay (
portfolio-maintenance,product-engineering,self-improvement,finops) binds a reviewed plugin role to this deployment.
One drift found (monorepo#4845): the
business-site product card still describes an Astro application, but the site now builds
with SvelteKit and a Go server. An agent that trusts the card would choose astro.
- Prerequisites for every adoption: the adopt-or-build rubric and pinning lifecycle are
delivered in 7.4.0 as the
skill-lifecycleskill andskill-lifecycle.md(#641); still open are updater pull requests that say what changed upstream (#583, under #581), the activation suite (#651), and stale user-level copies that shadow plugin skills (monorepo#4840). Each adoption also adds description text, and #642 found 30 of 94 listed skills shown by name only. So every adoption PR reports how many description characters it adds. - Application security and tenant isolation (#640). Covered in 7.5.0 by the first-party
application-securityskill. What remains is per product: the isolation tests themselves. - Privacy and GDPR (#638). Covered in 7.6.0 by the first-party
privacy-engineeringskill. - PostgreSQL schema and migrations (#653). Evaluated: the candidate was not adopted, so the gap stays open.
- Danish commerce, consumer and accessibility rules (#639). Covered in 7.6.0 by the
first-party
danish-business-rulesskill, within the limits its source list states. - Prometheus and OpenTelemetry (#654). PromQL and alert rules adopted in 7.3.0; collector pipelines not added, as the matrix says.
Done: SvelteKit (#652), covered since 7.0.0.
Not now: ClickHouse, payments, SLOs and a separate validation skill. Each row above says what would change that.
Update this file in place, never by adding another. Revisit it when a product adopts a new stack, when an adoption issue above closes, or after #651's first two baselines.