ch-bootstrap: persona pipeline + Design-First + 안전-최대 권한

- Redmine 8단계 페르소나 파이프라인 (.claude/agents, workflows)
- Design-First docs 골격 (docs/design, docs/adr, docs/pipeline)
- 안전-최대 권한 정책 (.claude/settings.json)
- Tasteby 고유 규칙 보존 (CLAUDE.md 병합)
- scripts/enqueue.sh: Redmine 큐 투입

Refs: tasteby bootstrap
This commit is contained in:
joungmin
2026-06-15 10:20:50 +09:00
parent f2861b6b79
commit c78f928a2d
37 changed files with 3633 additions and 0 deletions

21
scripts/enqueue.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
# 새 작업을 파이프라인 큐에 투입 = 01-Planner/신규 Redmine 이슈 생성.
# 사용법: ./scripts/enqueue.sh "제목" ["요구사항"]
set -euo pipefail
cd "$(dirname "$0")/.."
set -a; . ./.env; set +a
SUBJECT="${1:?사용법: enqueue.sh \"제목\" [\"요구\"]}"; BODY="${2:-}"
PLANNER=$(curl -s -H "X-Redmine-API-Key: $REDMINE_API_KEY" \
"$REDMINE_URL/projects/$REDMINE_PROJECT/issue_categories.json" \
| python3 -c "import sys,json;[print(c['id']) for c in json.load(sys.stdin)['issue_categories'] if c['name']=='01-Planner']")
DESC=$(printf '## [AI] Planner\n\n(요구사항)\n%s\n\n---\nWorking dir: %s' "$BODY" "$(pwd)")
python3 - "$REDMINE_URL" "$REDMINE_API_KEY" "$REDMINE_PROJECT" "$SUBJECT" "$DESC" "$PLANNER" <<'PY'
import sys,json,urllib.request
base,key,proj,subject,desc,cat=sys.argv[1:7]
p={"issue":{"project_id":proj,"tracker_id":2,"subject":subject,"description":desc,
"category_id":int(cat),"status_id":1}}
r=urllib.request.Request(base+"/issues.json",data=json.dumps(p).encode(),
headers={"X-Redmine-API-Key":key,"Content-Type":"application/json"},method="POST")
i=json.load(urllib.request.urlopen(r))["issue"]
print(f"enqueued #{i['id']}: {i['subject']} -> 01-Planner/신규")
PY