claude-harness/new-project.sh

41 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# claude-harness: каркас нового проекта под обвязку.
# Запуск: bash new-project.sh <папка> [ssh-url репозитория в Gitea]
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
DIR="${1:?usage: new-project.sh <dir> [git-remote-url]}"
REMOTE="${2:-}"
NAME="$(basename "$DIR")"
mkdir -p "$DIR" && cd "$DIR"
[ -d .git ] || git init -b main
sed "s/{{PROJECT_NAME}}/$NAME/" "$HERE/project-template/CLAUDE.md" > CLAUDE.md
cp "$HERE/project-template/ARCHITECTURE.md" ARCHITECTURE.md
cp "$HERE/project-template/gitignore" .gitignore
mkdir -p tests/fixtures docs/superpowers/plans
if command -v openspec >/dev/null 2>&1; then
[ -d openspec ] || openspec init --tools claude 2>/dev/null || openspec init
else
echo "WARN: openspec не установлен (npm i -g @fission-ai/openspec)"
fi
if command -v codegraph >/dev/null 2>&1; then
[ -d .codegraph ] || codegraph init >/dev/null 2>&1 || echo "WARN: codegraph init не удался"
fi
git add -A
git commit -qm "chore: bootstrap project skeleton (claude-harness)" || true
if [ -n "$REMOTE" ]; then
git remote get-url origin >/dev/null 2>&1 || git remote add origin "$REMOTE"
git push -u origin main
fi
cat <<MSG
Проект $NAME готов. Дальше:
1. Заполните {{...}} в CLAUDE.md и ARCHITECTURE.md.
2. Положите первые фикстуры в tests/fixtures/.
3. cd $DIR && claude
«Хочу сделать ... Описание и ограничения в CLAUDE.md. Давай начнём.»
MSG