#!/usr/bin/env bash
# create-aria-skill — Cookiecutter fuer neue Aria-Skills
# Adoptiert aus BMW MCP-Template `create-mcp-repo` Pattern.
# Adopt-Item: G2-4 / A1 (siehe aria-tech-stack-gaps.md, bmw-adopt-items-v3.md)
#
# Usage:
#   ./create-aria-skill.sh <skill-name> "<description>" [--linked-kar KAR-N]
#
# Erstellt:
#   /root/.claude/skills/<skill-name>/SKILL.md (mit DoR/DoD-Skelett)
#
# Standing Order:
#   - Jeder neue Skill bekommt automatisch DoR/DoD
#   - Brain-Note-Skelett unter 02-Wissen/skills/<skill-name>.md
#   - Eintrag in skill-curator-friendly Format
set -euo pipefail

SKILL_NAME="${1:?usage: create-aria-skill.sh <skill-name> <description> [--linked-kar KAR-N]}"
SKILL_DESC="${2:?usage: create-aria-skill.sh <skill-name> <description> [--linked-kar KAR-N]}"
LINKED_KAR=""
if [[ "${3:-}" == "--linked-kar" ]]; then
  LINKED_KAR="${4:-}"
fi

# Normalize skill name to kebab-case
SKILL_NAME=$(echo "$SKILL_NAME" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9-]/-/g; s/-\+/-/g; s/^-//; s/-$//')
SKILL_TITLE=$(echo "$SKILL_NAME" | sed 's/-/ /g')
CREATED_DATE=$(date -u +%Y-%m-%d)
AUTHOR="${AUTHOR:-aria}"

SKILL_DIR="/root/.claude/skills/$SKILL_NAME"
BRAIN_NOTE="/root/aria/brain/02-Wissen/skills/$SKILL_NAME.md"

if [[ -d "$SKILL_DIR" ]]; then
  echo "ERROR: Skill $SKILL_NAME already exists at $SKILL_DIR"
  exit 1
fi

mkdir -p "$SKILL_DIR"
mkdir -p "$(dirname "$BRAIN_NOTE")"

cat > "$SKILL_DIR/SKILL.md" <<EOF
---
name: $SKILL_NAME
description: "$SKILL_DESC"
date: $CREATED_DATE
status: draft
linked_kar: $LINKED_KAR
author: $AUTHOR
brain_note: 02-Wissen/skills/$SKILL_NAME.md
---

# $SKILL_TITLE

> $SKILL_DESC

## Wann triggern

TODO: Definiere konkrete Trigger-Bedingungen:
- User sagt "..."
- System-Event "..."
- Cron-Schedule "..."

## Definition of Ready (DoR)

- [ ] Eingabe-Format definiert
- [ ] Required-Tools verfuegbar und permissioned
- [ ] Vorbedingungen dokumentiert

## Workflow

TODO: Schritt-fuer-Schritt:

1. Lade Eingabe
2. Validiere
3. Fuehre Action aus
4. Schreibe Output

## Definition of Done (DoD)

- [ ] Output entspricht Spec
- [ ] Brain-Note geschrieben (falls Wissen)
- [ ] Verify-Loop durchgefuehrt
- [ ] Side-Effects dokumentiert
- [ ] Errors mit Recovery-Path

## Tests / Golden Questions

TODO: 3-5 Test-Cases um den Skill zu validieren.

## Verwandt

- [[02-Wissen/skills/$SKILL_NAME]] (Brain-Note)
$([ -n "$LINKED_KAR" ] && echo "- $LINKED_KAR (Linear)")
EOF

cat > "$BRAIN_NOTE" <<EOF
---
title: Skill — $SKILL_TITLE
type: reference
tags: [skill, aria, $SKILL_NAME]
date: $CREATED_DATE
status: draft
related: []
linear: $LINKED_KAR
---

# Skill — $SKILL_TITLE

## Zweck

$SKILL_DESC

## Why we built this

TODO: Beschreibe den Use-Case, den der Skill loest.

## Architektur

TODO: Wie der Skill technisch funktioniert.

## Anti-Cognitive-Debt-Checkliste

- [ ] SKILL.md mit DoR/DoD
- [ ] Brain-Note (diese Datei) mit Why+How
- [ ] Tests / Golden-Questions in SKILL.md
- [ ] Linked-KAR-Issue: $LINKED_KAR

## Verwandt

- [[/root/.claude/skills/$SKILL_NAME/SKILL.md]] (Skill-Definition)
- [[aria-kadi-anti-cognitive-debt-stack]] (Standing-Order)
EOF

echo "OK: Skill scaffold created"
echo "  Skill:      $SKILL_DIR/SKILL.md"
echo "  Brain-Note: $BRAIN_NOTE"
echo ""
echo "Next steps:"
echo "  1. Fill TODO sections in both files"
echo "  2. Run skill-curator to verify Cognitive-Debt-Score"
echo "  3. Test with 3-5 Golden-Questions"
echo "  4. Move status: draft -> aktiv when complete"
