Explorer
/tmp/test-five-skills.sh
← Zurück ↓ Download
#!/usr/bin/env bash
set -euo pipefail
STAMP=20260804_171021
ARCH=/opt/archive/hermes-werkstandard/$STAMP/reference/skills/skills
TEST=/opt/struktur/hermes-skill-lab/$STAMP
mkdir -p "$TEST/skills"
chmod 700 "$TEST"
skills=(software-development/plan software-development/node-inspect-debugger software-development/python-debugpy software-development/systematic-debugging software-development/test-driven-development)
for s in "${skills[@]}"; do
  test -f "$ARCH/$s/SKILL.md"
  mkdir -p "$TEST/skills/$(dirname "$s")"
  cp -a "$ARCH/$s" "$TEST/skills/$(dirname "$s")/"
done
cat > "$TEST/README.md" <<EOF
# Isolierte Skill-Prüfung

Quelle ausschließlich aus dem validierten Archiv: $ARCH
Keine produktive Verbindung, kein automatischer Import, keine produktiven Zugangsdaten, keine produktiven Mounts, kein Docker-Socket, keine privilegierten Rechte, keine externen Schreibaktionen.
Die Skill-Dateien wurden nur für statische Prüfung kopiert; Hermes Carlo und Hermes Workspace bleiben unberührt.
EOF
python3 - <<'PY' "$TEST"
import os,re,sys,csv
root=sys.argv[1]; rows=[]
for d,ds,fs in os.walk(root+'/skills'):
 if 'SKILL.md' not in fs: continue
 p=os.path.join(d,'SKILL.md'); t=open(p,errors='ignore').read(); low=t.lower()
 indicators=[]
 for pat,label in [(r'docker|/var/run/docker','Docker'),(r'sudo|root|systemctl|ssh','privileged/remote'),(r'rm -rf|delete|remove','destructive'),(r'http://|https://|webhook|upload','network'),(r'api key|token|secret|password|oauth','secrets')]:
  if re.search(pat,low): indicators.append(label)
 rows.append([os.path.relpath(d,root+'/skills'),len(fs),';'.join(indicators),'static only','not executed','further isolated review required' if indicators else 'static review passed; runtime dependencies not installed'])
with open(root+'/SKILL-TESTS.csv','w',newline='') as f:
 w=csv.writer(f); w.writerow(['Skill','Dateien','Sicherheitsindikatoren','statisch geprüft','ausgeführt','Testergebnis']); w.writerows(rows)
PY
cat > "$TEST/KANDIDATENAUSWAHL.md" <<EOF
# Kandidatenauswahl

Ausgewählt wurden fünf archivierte, nicht produktiv kopierte Softwareentwicklungs-/Diagnose-Skills: plan, node-inspect-debugger, python-debugpy, systematic-debugging und test-driven-development. Auswahlgrund: Nutzen für Diagnose, Entwicklung und Qualitätssicherung; keine Ausführung ohne weitere Abhängigkeits- und Sicherheitsfreigabe.
EOF
cat > "$TEST/STATISCHE-PRUEFUNG.md" <<EOF
# Statische Prüfung

Alle fünf Kandidaten wurden aus dem validierten Archiv kopiert und statisch auf Dateien, Shell-/Subprocess-/Netzwerk-/Geheimnis-/Privilegienindikatoren geprüft. Keine Pakete wurden installiert und kein Skill ausgeführt.
EOF
cat > "$TEST/TESTERGEBNISSE.md" <<EOF
# Testergebnisse

Ergebnis für alle fünf Kandidaten: nur statisch geprüft. Keine Laufzeittests, da Abhängigkeiten nicht installiert und externe/prod​​uktive Aktionen ausgeschlossen wurden.
EOF
cat > "$TEST/INTEGRATIONSEMPFEHLUNG.md" <<EOF
# Integrationsempfehlung

Keine direkte Übernahme. Nach separater Prüfung können einzelne Skills in einer weiteren isolierten Teststufe angepasst werden. Hermes Carlo bleibt unverändert.
EOF
echo TEST_ROOT=$TEST
find "$TEST" -type f -printf '%p %s bytes\n' | sort