65 lines
1.9 KiB
Bash
Executable File
65 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
BASE_REF="${1:-}"
|
|
HEAD_REF="${2:-HEAD}"
|
|
|
|
if [[ -z "$BASE_REF" ]]; then
|
|
if git rev-parse --verify origin/master >/dev/null 2>&1; then
|
|
BASE_REF="origin/master"
|
|
elif git rev-parse --verify origin/main >/dev/null 2>&1; then
|
|
BASE_REF="origin/main"
|
|
else
|
|
BASE_REF="HEAD~1"
|
|
fi
|
|
fi
|
|
|
|
TS="$(date '+%Y%m%d_%H%M%S')"
|
|
OUT_DIR="docs/task_briefs"
|
|
OUT_FILE="$OUT_DIR/task_brief_${TS}.md"
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
CHANGED_FILES_RAW="$(git diff --name-only "$BASE_REF"..."$HEAD_REF" || true)"
|
|
if [[ -z "$CHANGED_FILES_RAW" ]]; then
|
|
CHANGED_FILES="- (no file changes detected)"
|
|
else
|
|
CHANGED_FILES="$(printf '%s\n' "$CHANGED_FILES_RAW" | sed 's#^#- #')"
|
|
fi
|
|
|
|
SCOPE_SUMMARY="- Backend/API: $(printf '%s\n' "$CHANGED_FILES_RAW" | grep -c '^backend/' || true) files\n- Frontend: $(printf '%s\n' "$CHANGED_FILES_RAW" | grep -c '^frontend/' || true) files\n- Docs/Scripts/CI: $(printf '%s\n' "$CHANGED_FILES_RAW" | grep -E -c '^(docs/|scripts/|\.github/)' || true) files"
|
|
|
|
RISKS="- Contract drift risk when backend API changes without TS sync.\n- Routing regression risk when function_name or route tier changes.\n- Async planner failure should not block signal main flow."
|
|
|
|
{
|
|
echo "# Task Brief"
|
|
echo
|
|
echo "## Meta"
|
|
echo "- Generated At: $(date '+%Y-%m-%d %H:%M:%S %z')"
|
|
echo "- Base Ref: $BASE_REF"
|
|
echo "- Head Ref: $HEAD_REF"
|
|
echo
|
|
echo "## Changed Files"
|
|
printf '%b\n' "$CHANGED_FILES"
|
|
echo
|
|
echo "## Scope"
|
|
printf '%b\n' "$SCOPE_SUMMARY"
|
|
echo
|
|
echo "## Risks"
|
|
printf '%b\n' "$RISKS"
|
|
echo
|
|
echo "## Verification"
|
|
echo "- Backend: \`python3 -m py_compile backend/app\`"
|
|
echo "- Frontend: \`npm run build\` + \`npx tsc --noEmit\`"
|
|
echo
|
|
echo "## Delivery Checklist"
|
|
echo "- [ ] Code completed"
|
|
echo "- [ ] Contracts synchronized"
|
|
echo "- [ ] Docs synchronized"
|
|
echo "- [ ] Build/lint/tests passed"
|
|
} > "$OUT_FILE"
|
|
|
|
echo "$OUT_FILE"
|