SPEC v0.1 and project rules for Kvitt

Write SPEC.md v0.1 from the owner interview (requirements, data model,
stack, API outline, security, business rules, deployment, milestones,
UX sprint brief, contracts). Fill the CLAUDE.md blanks, move the Gradle
pin files into android/, point the tools at android/ and server/, and
record the git bootstrap exception in the handoff.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 20:39:02 +02:00
parent 8bef22afb2
commit cab3e935d6
12 changed files with 2412 additions and 48 deletions
+4 -2
View File
@@ -1,9 +1,11 @@
#!/bin/sh
# Runs ./gradlew with the given arguments, one Gradle build at a time across every worktree and agent on this machine
# (CLAUDE.md › Build and verify: parallel builds exhaust memory). Waits for a running build to finish, then runs.
# Usage from any worktree root: tools/gradle-serial.sh check
# The Gradle project lives in android/; the wrapper there is used whatever directory this is started from.
# Usage from any directory of a checkout or worktree: tools/gradle-serial.sh check (or ../tools/gradle-serial.sh from android/)
lock=/tmp/kvitt-gradle.lock
top=$(git rev-parse --show-toplevel) || exit 1
[ -x "$top/android/gradlew" ] || { echo "gradle-serial: no android/gradlew in $top yet" >&2; exit 1; }
while ! mkdir "$lock" 2>/dev/null; do
pid=$(cat "$lock/pid" 2>/dev/null)
if [ -n "$pid" ] && ! kill -0 "$pid" 2>/dev/null; then rm -rf "$lock"; continue; fi
@@ -11,4 +13,4 @@ while ! mkdir "$lock" 2>/dev/null; do
done
echo $$ > "$lock/pid"
trap 'rm -rf "$lock"' EXIT INT TERM HUP
cd "$top" && ./gradlew "$@"
cd "$top/android" && ./gradlew "$@"