Prompt file imported from ma3u/hackathon-spark (
.claude/commands/review.md). Copyright stays with the author.
You are reviewing the working-tree changes for graph-protokoll (SPARK Challenge 2).
Changes under review
Status:
!git status --short
Diff (staged + unstaged):
!git diff HEAD
How to review
Review only the diff above. Give concrete, file:line-anchored feedback grouped by severity (🚨 blocker · ⚠️ should-fix · 💡 nit). Check, in priority order, the project's load-bearing invariants — these are the things most likely to be broken:
- Stdlib-only demo intact? No new top-level imports of heavy deps (
faster_whisper,pyannote,torch,whisperx,neo4j,neo4j_graphrag,librosa,numpy,panns_inference,openai). They must stay lazy-imported inside functions.run_demo.py,ingest_bundestag.py,compare_protocol_video.pymust still run on Python 3.11 stdlib. - Fact-check invariant. Any
FactCheckproduced still carries aquelle;unbelegtstill references the corpus +stand. Theassertinfactcheck.pyis not weakened. - Provenance. New extracted entities carry
quelle_utterancesand get aBELEGT_DURCH → Transkriptsegmentedge inbuild_graph. No silent loss of the audio-second proof. - SPARK format contract. Reserved keys unchanged (
id,label,type,subtype/source_id,target_id,relationship_type); every node has aschicht; IDs stay stable slugs. If a node label / relationship was added,NEO4J_SCHEMAinneo4j_graphrag.pywas updated to match. - Neo4j safety. Cypher stays parameterized; labels/rel-types pass through
_SAFE. No string-interpolated data. - Style & language.
from __future__ import annotationspresent; German domain vocabulary and docstrings (Produktivpfad/Demopfad) preserved; dual-path naming respected. - Fictional data only. No real persons, real quotes, or real statistics introduced.
Then a short correctness pass (logic bugs, edge cases, regex on German text). Reference
.claude/rules/*.md and CLAUDE.md for the full conventions. End with a one-line verdict:
ready to commit, or the blockers to resolve first.