Grunnleggende arkitekturbeslutninger tatt og dokumentert: - Alt er noder (brukere, team, innhold, mediefiler, samlings-noder) - Edges definerer hva en node er (freeform typer, metadata i JSONB) - Materialisert tilgangsmatrise (node_access) erstatter workspace-RLS - Visibility (hidden/discoverable/readable/open) på noder - Aliaser via usynlige system-edges - Maskinrommet eier all skriving (SpacetimeDB først, PG asynk) - SpacetimeDB holder hele grafen, PG er persistent backup - Node- og edge-skjema spesifisert (docs/primitiver/) Fjernet workspace-konseptet fra hele dokumentasjonen (~40 filer). Fem retninger besluttet, én åpen (rom, ikke forum). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
81 lines
2.4 KiB
Bash
Executable file
81 lines
2.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Samler all prosjektdokumentasjon til én fil for deling med AI-er etc.
|
|
# Bruk: ./scripts/summary.sh → skriver scripts/synops.md
|
|
# ./scripts/summary.sh - → skriver til stdout (for piping)
|
|
#
|
|
# Rekkefølge: overblikk → arkitektur → konsepter → tekniske detaljer → drift
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
OUT="$SCRIPT_DIR/synops.md"
|
|
|
|
# Prioritert rekkefølge av mapper under docs/
|
|
# Fra overblikk og visjon → ned til implementeringsdetaljer
|
|
DOC_ORDER=(
|
|
retninger # Arkitektoniske teser og vedtatte retninger
|
|
primitiver # Spesifikasjoner for kjerneprimitivene
|
|
concepts # Brukeropplevelser og produktområder
|
|
features # Tekniske byggeklosser
|
|
infra # Infrastruktur og drift
|
|
setup # Oppsett og driftsprosedyrer
|
|
erfaringer # Lærdommer fra implementering
|
|
proposals # Idébank (uimplementerte forslag)
|
|
)
|
|
|
|
collect() {
|
|
# 1. Prosjektguide (CLAUDE.md) først — gir komplett overblikk
|
|
if [[ -f "$ROOT/CLAUDE.md" ]]; then
|
|
emit "$ROOT/CLAUDE.md"
|
|
fi
|
|
|
|
# 2. Overordnet arkitektur
|
|
if [[ -f "$ROOT/docs/arkitektur.md" ]]; then
|
|
emit "$ROOT/docs/arkitektur.md"
|
|
fi
|
|
|
|
# 3. Dokumentmapper i prioritert rekkefølge
|
|
for dir in "${DOC_ORDER[@]}"; do
|
|
[[ -d "$ROOT/docs/$dir" ]] || continue
|
|
for f in "$ROOT/docs/$dir"/*.md; do
|
|
[[ -f "$f" ]] || continue
|
|
emit "$f"
|
|
done
|
|
done
|
|
|
|
# 4. Eventuelle docs/-mapper som ikke er i DOC_ORDER (fang nye mapper automatisk)
|
|
for dir in "$ROOT"/docs/*/; do
|
|
[[ -d "$dir" ]] || continue
|
|
dirname="$(basename "$dir")"
|
|
# Hopp over de vi allerede har tatt
|
|
skip=false
|
|
for known in "${DOC_ORDER[@]}"; do
|
|
[[ "$dirname" == "$known" ]] && skip=true && break
|
|
done
|
|
$skip && continue
|
|
for f in "$dir"*.md; do
|
|
[[ -f "$f" ]] || continue
|
|
emit "$f"
|
|
done
|
|
done
|
|
}
|
|
|
|
emit() {
|
|
local f="$1"
|
|
local rel="${f#"$ROOT/"}"
|
|
echo "================================================================"
|
|
echo "FILE: $rel"
|
|
echo "================================================================"
|
|
echo ""
|
|
cat "$f"
|
|
echo ""
|
|
echo ""
|
|
}
|
|
|
|
if [[ "${1:-}" == "-" ]]; then
|
|
collect
|
|
else
|
|
collect > "$OUT"
|
|
echo "Wrote $OUT ($(wc -l < "$OUT") lines)"
|
|
fi
|