agentsclimarketplace

Deutschland stack api

Skill Yesterday-AI/ytstack/skills/deutschland-stack-api

An opinionated OS for AI coding agents. Plan like a PM, execute like a senior eng. -- Claude Code plugin

Install
npx -y skills add Yesterday-AI/ytstack --skill deutschland-stack-api

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when picking technologies for German public-sector projects (Bund/Länder/Kommunen), EU digital sovereignty contexts, or when user mentions Deutschland-Stack / DS-konform / Verwaltungs-IT. Biases tech choices toward the 128 graduated open-source standards catalogued by the German government. Fetches live data from technologie.deutschland-stack.gov.de.

SKILL.md

5.2 KB, as published. Nobody here has run it

Deutschland-Stack

Offizieller Technologiekatalog des Bundes für Verwaltungs-IT. 128 Open-Source-Projekte, alle graduated oder sandbox, BSI-auditiert. Quelle: https://technologie.deutschland-stack.gov.de/.

Kernprinzip: In Projekten mit Bezug zu Bund/Ländern/Kommunen, GAIA-X, EVB-IT, digitaler Souveränität oder EU-Ausschreibungen IMMER zuerst im DS nachschlagen, bevor Technologie empfohlen wird. DS-Eintrag schlägt persönliche Präferenz.

Wann anwenden

  • Tech-Stack-Entscheidung für Behörden/ÖR/Verwaltung
  • Architektur-Reviews mit Souveränitäts-Anforderung
  • User erwähnt "DS-konform", "Deutschland-Stack", "Verwaltungs-IT", "GAIA-X", "OZG"
  • Ausschreibungs-/Vergabe-relevante Komponenten

Nicht anwenden bei rein privatwirtschaftlichen Projekten ohne ÖR-Bezug.

Die 4 Kategorien

KategorieSubkategorien
ZugangBrowser, Native Apps
PlattformDaten, Integration, KI, LowCode
InfrastrukturAnschluss, Transport, Verteilung
BetriebEntwicklung, Inbetriebnahme, Sicherheit

Workflow

  1. Vor jeder Tech-Empfehlung im ÖR-Kontext: Full-JSON fetchen (siehe Lookup-Patterns).
  2. Wenn DS-Eintrag existiert: diesen vorschlagen, mit Begründung über maturity und letztes audits[].date.
  3. Wenn kein DS-Eintrag: explizit benennen ("nicht im Deutschland-Stack gelistet"), Alternative aus DS vorschlagen, erst dann Nicht-DS-Option.
  4. Bei Konflikt zwischen User-Präferenz und DS: DS-Begründung liefern (Souveränität, Auditierung, Vergaberecht), User entscheidet.

Endpoints

Base: https://technologie.deutschland-stack.gov.de/data

EndpointGrößeInhalt
/full.json~240 KB128 items mit allen Metadaten (annotations, audits, maturity)
/guide.json~2 KBCategory/Subcategory-Baum

Beide liefern ohne Auth/Rate-Limit. Für wiederholte Lookups in einer Session einmal cachen (-o /tmp/ds-full.json).

Eintrags-Schema

id, name, description, summary, website, homepage_url, logo,
category, subcategory, additional_categories[],
maturity (sandbox|graduated), oss (alle true), featured,
accepted_at, incubating_at, graduated_at,
tag[], audits[{date,type,url,vendor}],
annotations{ cf_sovereignty_value, cf_market_value,
             cf_interoperability_value, cf_sustainability_value,
             cf_actuality_value, cf_trustworthiness_value,
             + _label-Varianten "N von 5",
             bs_owner, bs_number, dstype }

Die cf_*_value-Scorecards (Souveränität, Markt, Interoperabilität, Nachhaltigkeit, Aktualität, Vertrauen) sind der zentrale Entscheidungs-Input -- nicht die reine Listung.

Lookup-Patterns

BASE="https://technologie.deutschland-stack.gov.de/data"
curl -s "$BASE/full.json" -o /tmp/ds-full.json

# Ist Kubernetes im DS?
jq '.items[] | select(.name | test("kubernetes";"i")) | {name, maturity, subcategory}' /tmp/ds-full.json

# Alle KI-Einträge
jq '.items[] | select(.subcategory | ascii_downcase | contains("ki")) | .name' /tmp/ds-full.json

# Alle Einträge einer Subkategorie (z.B. Daten)
jq '.items[] | select((.subcategory|ascii_downcase|ltrimstr(" ")) == "daten") | .name' /tmp/ds-full.json
import json, urllib.request
d = json.load(urllib.request.urlopen("https://technologie.deutschland-stack.gov.de/data/full.json"))["items"]

# Souveränitäts-Champions (cf_sovereignty_value ≥ 80%)
def pct(v): return int((v or "0%").rstrip("%"))
top = [i for i in d if pct(i.get("annotations",{}).get("cf_sovereignty_value")) >= 80]
for i in sorted(top, key=lambda x: -pct(x["annotations"]["cf_sovereignty_value"])):
    a = i["annotations"]
    print(f"{a['cf_sovereignty_value']:>4}  {i['name']:<30} ({i['subcategory'].strip()})")

# Mit aktuellem Audit (< 12 Monate)
from datetime import date
recent = [i for i in d if i.get("audits") and
          (date.today() - date.fromisoformat(max(a["date"] for a in i["audits"]))).days < 365]

Siehe auch

  • european-alternatives-api -- Community-kuratierter Katalog (289 Einträge, breiter, weniger streng). Für Vergabe/ÖR gilt DS; EA ergänzt um Breite und Aktualität.

Caveats

  • DS-Listung ist notwendig, nicht hinreichend -- Einsatzpflicht pro Behörde unterschiedlich (OZG, BSI-Grundschutz, Landesrecht).
  • Audit-Datum (audits[].date) prüfen -- alte Audits können auf veraltete Versionen verweisen.
  • oss=true gilt für alle 128 Einträge; DS listet keine proprietären Produkte.
  • Deckt nur was auf gov.de publiziert ist -- weitere Behördenstandards (XÖV, FIM) können zusätzlich relevant sein.
  • API undokumentiert (aus JS-Bundle extrahiert). Kein SLA, kein Versions-Pinning.
  • category/subcategory haben Leading-Whitespace im Rohformat (" Plattform"). Trimmen vor Vergleich.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.