experiment-engine — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited experiment-engine (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Not / Overlap: Bu skillexperiment-loopile ayni otonom deney dongusu kavramini kapsar (bu dosya TR, experiment-loop EN). Yeni isler icinexperiment-looptercih edilir; v4.0 da birlestirilecek.
Bir hedef belirle, sistematik olarak deneyler yap, sadece iyilestirenleri tut.
HEDEF BELIRLE
└─ "API response time'i %20 dusur"
└─ "Bundle size'i 500KB'nin altina getir"
└─ "Test coverage'i %90'a cikar"
BASELINE OLC
└─ Mevcut metrigi kaydet (ornek: 340ms, 720KB, %78)
DENEY DONGUSU (N kez tekrarla):
┌─────────────────────────────────────┐
│ 1. MODIFY - Tek degisiklik yap │
│ 2. VERIFY - Metrigi olc │
│ 3. COMPARE - Baseline ile kiyasla │
│ 4. DECIDE - Kabul / Reddet │
│ ├─ Iyilesti → COMMIT + yeni │
│ │ baseline │
│ └─ Kotulesti → ROLLBACK │
└─────────────────────────────────────┘
RAPOR OLUSTUR
└─ N deney, X kabul, Y red, final metrik# Hedef: API response time < 200ms
# Baseline: 340ms
# Deney 1: Database query'ye index ekle
git stash # mevcut durumu kaydet
# ... index ekle ...
curl -w "%{time_total}" http://localhost:3000/api/users # 280ms
# 340ms -> 280ms = IYILESTI → COMMIT
# Deney 2: Response'u cache'le
# ... Redis cache ekle ...
curl -w "%{time_total}" http://localhost:3000/api/users # 45ms
# 280ms -> 45ms = IYILESTI → COMMIT
# Deney 3: JSON serializer degistir
# ... fast-json-stringify ekle ...
curl -w "%{time_total}" http://localhost:3000/api/users # 42ms
# 45ms -> 42ms = MINIMAL IYILESME → REDDET (karmasiklik artmaya degmez)
# Sonuc: 340ms -> 45ms (%87 iyilesme), 2/3 deney kabul edildi# Hedef: < 500KB
# Baseline olc
BASELINE=$(npx next build 2>&1 | grep "First Load JS" | awk '{print $4}')
# Deney dongusu
experiments=(
"lodash yerine lodash-es"
"moment yerine dayjs"
"tree-shaking acik mi kontrol"
"dynamic import lazy component'ler"
"image optimize (next/image)"
)
for exp in "${experiments[@]}"; do
echo "=== Deney: $exp ==="
# degisiklik yap...
NEW=$(npx next build 2>&1 | grep "First Load JS" | awk '{print $4}')
if [ "$NEW" -lt "$BASELINE" ]; then
echo "KABUL: $BASELINE -> $NEW"
BASELINE=$NEW
git add -A && git stash # kaydet
else
echo "RED: $NEW >= $BASELINE"
git checkout . # geri al
fi
done# Hedef: %90 coverage
# Baseline
BASELINE=$(npx jest --coverage --silent 2>&1 | grep "All files" | awk '{print $4}')
# Her dosya icin test yaz, coverage'i olc
for file in $(find src -name "*.ts" -not -name "*.test.*"); do
echo "=== Test: $file ==="
# test yaz...
NEW=$(npx jest --coverage --silent 2>&1 | grep "All files" | awk '{print $4}')
if (( $(echo "$NEW > $BASELINE" | bc -l) )); then
echo "KABUL: %$BASELINE -> %$NEW"
BASELINE=$NEW
fi
doneYANLIS: Ayni anda 3 sey degistirip "daha hizli oldu" demek
→ Hangi degisiklik etkili oldugunu bilemezsin
DOGRU: Her seferinde TEK degisiklik yap
→ Neyin ise yaradigini kesin bilirsin# Yontem 1: git stash (basit)
git stash # deney oncesi
# ... deney ...
git stash pop # basarisizsa geri al
# Yontem 2: git worktree (izole)
git worktree add /tmp/experiment-1 -b exp/perf-test
cd /tmp/experiment-1
# ... deney ...
# basarisizsa worktree'yi sil
# Yontem 3: checkpoint (karmasik deneyler)
git add -A && git commit -m "checkpoint: pre-experiment"
# ... deney ...
# basarisizsa: git reset --hard HEAD~1interface ExperimentResult {
id: string
description: string
baseline: number
result: number
improvement: number // yuzde
accepted: boolean
duration: number // saniye
timestamp: string
}
// Deney raporu
interface ExperimentReport {
goal: string
metric: string
baselineValue: number
finalValue: number
totalExperiments: number
accepted: number
rejected: number
totalImprovement: number // yuzde
experiments: ExperimentResult[]
}# Deney Raporu: [Hedef]
## Ozet
- Hedef: [metrik] < [esik]
- Baseline: [baslangic degeri]
- Final: [son deger]
- Iyilesme: [yuzde]
- Deneyler: [kabul]/[toplam]
## Deneyler
| # | Aciklama | Onceki | Sonraki | Degisim | Karar |
|---|----------|-------:|--------:|--------:|-------|
| 1 | Index ekle | 340ms | 280ms | -18% | KABUL |
| 2 | Redis cache | 280ms | 45ms | -84% | KABUL |
| 3 | JSON serializer | 45ms | 42ms | -7% | RED |
## Ogrenim
- En etkili: Redis cache (-84%)
- Degmez: JSON serializer degisimi (karmasiklik > kazanim)# experiment-loop.sh
# Kullanim: ./experiment-loop.sh "response_time" "200" "ms" 10
METRIC=$1 # olculecek metrik
TARGET=$2 # hedef deger
UNIT=$3 # birim
MAX_ROUNDS=$4 # max deney sayisi
ROUND=0
BASELINE=$(measure_$METRIC)
while [ $ROUND -lt $MAX_ROUNDS ]; do
ROUND=$((ROUND + 1))
# Claude'a optimize ettir
claude -p "Optimize $METRIC. Current: ${BASELINE}${UNIT}. Target: <${TARGET}${UNIT}. Make ONE small change." --no-input
# Olc
NEW=$(measure_$METRIC)
if [ "$NEW" -lt "$BASELINE" ]; then
echo "Round $ROUND: KABUL ($BASELINE -> $NEW)"
BASELINE=$NEW
git add -A && git commit -m "experiment: $METRIC improved to ${NEW}${UNIT}"
else
echo "Round $ROUND: RED ($NEW >= $BASELINE)"
git checkout .
fi
# Hedefe ulastik mi?
if [ "$BASELINE" -le "$TARGET" ]; then
echo "HEDEF ULASILDI: ${BASELINE}${UNIT} <= ${TARGET}${UNIT}"
break
fi
done~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.