2 Punkte von GN⁺ 2025-06-05 | 1 Kommentare | Auf WhatsApp teilen
  • Die IRS hat einen Großteil des Quellcodes von Direct File als Open Source auf GitHub veröffentlicht
  • Als Werk der US-Regierung gehört der Code zur Public Domain, und jeder kann ihn prüfen
  • Die Veröffentlichung erfolgt im Rahmen der Umsetzung des SHARE IT Act und wurde 3 Wochen vor der gesetzlichen Frist bekannt gegeben
  • Die Open-Source-Veröffentlichung soll die Transparenz erhöhen und Vertrauen bei Steuerzahlern aufbauen
  • Das Direct-File-Team legt außerdem Wert auf Datensicherheit, die faire Anwendung von Steuervergünstigungen und eine bessere Zugänglichkeit für die Öffentlichkeit

Veröffentlichung des Direct-File-Quellcodes auf GitHub

Am 30. Mai 2025 hat die IRS den Großteil des Quellcodes des Direct-File-Dienstes als Open-Source-Software auf GitHub veröffentlicht. Als Werk der US-Regierung gehört der betreffende Code zur Public Domain, und jeder kann den Inhalt frei einsehen.

Zweck und Hintergrund der Veröffentlichung

Die Veröffentlichung des Quellcodes ist eine Maßnahme zur Einhaltung des SHARE IT Act (Gesetzentwurf Nr. 9566 des 118. US-Kongresses) und erfolgte 3 Wochen vor der offiziellen Frist. Es wird erwartet, dass künftig mehr von der IRS betriebene Software für alle zugänglich wird.

Die Bedeutung von Open Source

Die Open-Source-Freigabe des Codes von Direct File ist keine kurzfristige Entscheidung, sondern wurde über lange Zeit vorbereitet. Wie das Direct-File-Team im vergangenen Jahr erklärte, ist Open Source aus folgenden Gründen wichtig:

  • Die IRS kann durch mehr Transparenz öffentliches Vertrauen aufbauen und eine unabhängige Bewertung ihrer Arbeit ermöglichen
  • Es kann nach außen belegt werden, dass die Software so entwickelt wurde, dass alle Steuerzahler die Steuervergünstigungen, auf die sie Anspruch haben, vollständig nutzen können
  • Durch öffentlich zugängliche Software lässt sich die Einhaltung dieser Zusagen technisch nachweisen

Vertrauen der Steuerzahler und die Prinzipien von Direct File

Der Aufbau von Vertrauen bei Steuerzahlern war ein zentrales Prinzip bei der Entwicklung von Direct File. Dazu wurden folgende Punkte hervorgehoben:

  • Bereitstellung der genauesten Option für die Steuererklärung
  • Sicherstellung, dass alle Menschen Zugang zum Steuersystem haben und es nutzen können
  • Strikte Einhaltung der Grundsätze zur Sicherheit von Steuerzahlerdaten
  • Praktische Transparenz durch die direkte Offenlegung des Codes

Persönlicher Hinweis

Der Autor hat seine Tätigkeit bei der IRS vor 2 Wochen offiziell beendet. Der vorliegende Text gibt ausschließlich seine persönliche Meinung wieder.

Adresse des GitHub-Repositorys

1 Kommentare

 
GN⁺ 2025-06-05
Hacker-News-Kommentare
  • Direct File enthält eine deklarative, XML-basierte Wissensgraph-Datenstruktur namens Fact Graph, die dafür ausgelegt ist, mit unvollständigen Informationen wie teilweise ausgefüllten Steuererklärungen Schlussfolgerungen zu ziehen. Fact Graph ist in Scala geschrieben, läuft im Backend auf der JVM und wird auf dem Client über Scala.js transpiliert und ausgeführt. Der Fact Graph von Direct File ist nicht auf eine bestimmte Domäne beschränkt und könnte daher auch als Referenz für Steuerbehörden oder die Implementierung anderer Business-Rule-Engines nützlich sein

    • Der Code, der definiert, wie der Fact Graph funktioniert, ist hier zu sehen. Die eigentlichen Steuerdefinitionen und abgeleiteten Berechnungen finden sich hier. Als Beispiele gibt es den Standardabzug (Standard Deduction) und die Steuersatzberechnung. Diese Definitionen scheinen auf dem MeF-(Modernized e-File)-Schema zu basieren, da das System die Eingabedaten in XML des MeF-Schemas umwandeln und an das MeF-System senden muss. Weitere Details stehen auf der offiziellen IRS-Seite

    • So interessant, dass man unbedingt weiter darüber lesen möchte

  • Ich habe noch vor zwei Wochen bei der IRS gearbeitet, spreche hier aber als Privatperson. Es ist bedauerlich, dass die aktuelle Regierung Direct File abschafft und das zugehörige Personal ebenfalls vollständig entlassen hat

  • Leider wird dieses Programm derzeit von der aktuellen Regierung eingestellt. Das Code-Repository ist wirklich hervorragend, und auch die Scala-Fact-Graph-Struktur ist großartig. Man sieht, wie viel Sorgfalt sogar in die Tutorials gesteckt wurde

    • Ich denke, die Leute in diesem Projekt wussten schon vor der ersten geschriebenen Codezeile, dass sein Schicksal besiegelt war. Beim nächsten Machtwechsel zu einer Person der (R, Republikaner) würde das Projekt sofort sterben. Dass die Software überhaupt öffentlich gemacht wurde, ist eine bemerkenswerte Leistung, aber allen war klar, dass sie nicht lange bestehen würde. Die Pay-to-File-Steuerlobby ist zu stark und zu korrupt

    • Dieser Gesetzentwurf wurde von dem Republikaner Nick Langworthy eingebracht und von William Timmons mitgetragen. Bitte keine falschen oder erfundenen Informationen verbreiten

  • Frage, ob diese Art in Java üblich ist, mit einem geteilten Beispielcode-Link

    • Das ist ein Beispiel für reaktive Programmierung in Java. Es wird ein Callback zurückgegeben, der ausgeführt wird, wenn die Aufgabe abgeschlossen ist. Der Typ Mono<T> ist ein typisches Merkmal davon

    • Ich nutze Java seit langer Zeit, aber solchen Code sieht man selten. Vieles stammt aus dem Stil der reaktiven Programmierung (reactor.core.publisher.Mono). Vielleicht wollte man auch nur alles auf einen Bildschirm quetschen. Wenn ich Teamleiter wäre, hätte ich das starke Bedürfnis, um Vereinfachung zu bitten

    • Diesen Coding-Stil sieht man in Regierungsprojekten oft, wenn jemand auf eine Stelle fürs Leben hofft oder denkt, es sei von Vorteil, wenn andere den Code schwer lesen können. Oder wenn das eigentliche Ziel der Verkauf von Ultrawide-Monitoren ist

    • Atomics wirken etwas merkwürdig, aber wenn man Reactor verwendet und sequentielles blockierendes Verhalten braucht, gerät die gesamte Codestruktur leicht durcheinander

    • So etwas sieht man gelegentlich sowohl in Java als auch in anderen Sprachen. Wahrscheinlich ist es nicht die bevorzugte Vorgehensweise

  • Ich denke, für die Veröffentlichung durch die IRS ist weniger der Quellcode selbst schwierig als vielmehr die Anbindung an das Steuersystem und die Gewährleistung der Einhaltung des geltenden Steuerrechts. Selbst wenn der Quellcode offengelegt wird, kann die Regierung diesen Teil jederzeit stoppen

    • Stimme absolut zu. Laut der Beschreibung im Repository übersetzt Direct File das US-Steuerrecht (26 USC) in verständliche Fragen, die Steuerzahler direkt ohne zusätzliche Erläuterung beantworten können. Die Antworten der Steuerzahler werden in standardisierte Steuerformulare umgewandelt und über die offizielle API Modernized e-File (MeF) übermittelt. Theoretisch könnte man es sofort nutzen, aber wie gesagt könnte es bei einem Politikwechsel bedeutungslos werden

    • Zusätzlich gehört zu den Schwierigkeiten, dass die Steuererklärungsbranche seit Jahrzehnten Lobbyarbeit zum Schutz ihrer Interessen betreibt. Mehr Bundesstaaten als im letzten Jahr erlauben inzwischen kostenlose Direktabgabe, aktuell sind es 25 Bundesstaaten plus DC, aber warum es in den übrigen 25 Bundesstaaten nicht möglich ist, bleibt unklar. (Ich lebe in DC)

    • Das stimmt. Politiker oder Beamte, die für die Steuerlobby arbeiten, können das Steuerrecht jederzeit so ändern, dass die Software nutzlos wird

    • Ich weiß nicht, ob diese Funktion derzeit existiert, aber wenn eFile ausreichend Funktionen hat, könnte es vielleicht auch Papierformulare erzeugen

    • Das fühlt sich eher wie eine Geschäftschance an

  • Im Abschnitt Exempted Code steht, dass nicht der gesamte bei der Entwicklung von Direct File verwendete Quellcode, die gesamte Dokumentation und sämtliche Metadaten im öffentlichen Repository enthalten sind. PII, Federal Tax Information (FTI), sensible, aber nicht klassifizierte (SBU) Daten und Quellcode für National Security Systems (NSS) sind gesetzlich ausgenommen. Aufgrund dieser Einschränkungen wurden einige Funktionen offenbar entfernt oder neu geschrieben. Ich würde sehr gern wissen, welche Teile entfernt wurden

  • Jeder hat wohl schon einmal den Fehler gemacht, in ein Repository nicht die eigentlichen Dateien hochzuladen, sondern nur einen Submodule-Pointer hinzuzufügen. Siehe diesen Beispiel-Commit-Link. Interessant ist auch, dass man bei Code aus den USA nicht einfach CC0 verwenden kann, sondern den Status als „Public Domain“ gesondert klarstellen muss

    • Anders gesagt bedeutet das, dass Creative Commons (mit Sitz in Kalifornien) keine Lizenz veröffentlicht hat, die für die Software der größten öffentlichen Einrichtung der USA geeignet ist. Das lässt zusätzlich Fragen zu diesen Unterschieden offen
  • Für alle, die es interessiert, hier der Link zum Repository

    • Es könnte sinnvoll sein, es schnell zu forken, bevor jemand das Repository löscht. Vielleicht kommt irgendwann sogar der Punkt, an dem schon das bloße Ansehen bestraft wird
  • Nicht nur der Code, auch der Ordner /docs/design ist voll mit hervorragenden Designdokumenten und Notizen. Darin enthalten sind auch detaillierte Ablaufdiagramme nach User Flow (keine Live-Ansicht, sondern als ZIP-Dateien, siehe flow1.zip und flow2.zip)

  • Auch letzte Woche (Stand Mai 2025) gab es dazu eine Diskussion: IRS Direct File - Hacker News (62 Kommentare)