Skip to content

fotis89/nomos

v1.1.0MIT

Έρευνα ελληνικής νομοθεσίας («τι ισχύει σήμερα για το Χ») με επαληθευμένες παραπομπές σε ΦΕΚ: agents, skills και MCP server που διαβάζει τα ΦΕΚ από το Εθνικό Τυπογραφείο (search.et.gr).

nomos: Έρευνα ελληνικής νομοθεσίας με GitHub Copilot

Plugin του GitHub Copilot για ερωτήματα του τύπου «τι ισχύει σήμερα για το Χ» στην ελληνική νομοθεσία, με επαληθευμένες πηγές και παραπομπές σε ΦΕΚ. Μόλις εγκατασταθεί, δουλεύει σε κάθε φάκελο και συνεδρία.

Περιεχόμενα

ΑρχείοΡόλος
plugin.jsonManifest του plugin (μορφή Agent Plugins 1.0)
mcp.jsonΔηλώνει τον MCP server nomos
tools/fek_mcp.pyMCP server (stdio) με τα εργαλεία fek_*
tools/fek.pyΗ λογική για τα ΦΕΚ· χρησιμοποιείται και ως CLI
com.github.copilot/agents/nomikos-erevnitis.agent.mdΚύριος ερευνητής: νομική βάση, έλεγχος, απάντηση
com.github.copilot/agents/elegktis-ischyos.agent.mdΈλεγχος ισχύος μίας συγκεκριμένης διάταξης
skills/nomos/Σημείο εισόδου: οποιαδήποτε νομική ερώτηση, από την αρχή ως το τέλος
skills/anazitisi-fek/Ιεράρχηση πηγών και εντοπισμός ΦΕΚ
skills/elegxos-tropopoiiseon/Έλεγχος τροποποιήσεων και καταργήσεων
skills/morfi-apantisis/Πρότυπο απάντησης
.github/copilot-instructions.mdΒασικοί κανόνες, όταν δουλεύεις μέσα σε αυτό το αποθετήριο
.github/plugin/marketplace.jsonMarketplace με αυτό το plugin
tests/test_mcp_smoke.pySmoke test του MCP server

Εγκατάσταση

Προαπαιτούμενα

  • Python 3.9 ή νεότερη, διαθέσιμη ως python στο PATH. Σε Linux/macOS, αν υπάρχει μόνο το python3, άλλαξε το command στο mcp.json.
  • pip install pymupdf (εναλλακτικά pypdf, πιο αργό).
  • GitHub Copilot CLI ή η εφαρμογή Copilot, συνδεδεμένα με λογαριασμό GitHub με Copilot.

Copilot CLI και εφαρμογή Copilot

Μέσω του marketplace του αποθετηρίου (προτεινόμενο):

copilot plugin marketplace add fotis89/nomos
copilot plugin install nomos@nomos

Η απευθείας εγκατάσταση copilot plugin install fotis89/nomos λειτουργεί ακόμη, αλλά το CLI τη χαρακτηρίζει deprecated.

Μετά την εγκατάσταση άνοιξε νέα συνεδρία. Οι ήδη ανοιχτές δεν βλέπουν το plugin. Έλεγχος: copilot plugin list και copilot mcp list, όπου πρέπει να εμφανίζεται ο server nomos, και μέσα σε συνεδρία /agent και /skills list.

Ενημέρωση: copilot plugin update nomos. Απεγκατάσταση: copilot plugin uninstall nomos.

Για αυτόματη ενημέρωση σε κάθε νέα συνεδρία, πρόσθεσε "autoUpdate": true στην καταχώριση του marketplace στο ~/.copilot/settings.json:

"extraKnownMarketplaces": {
  "nomos": {
    "source": { "source": "github", "repo": "fotis89/nomos" },
    "autoUpdate": true
  }
}

Η αυτόματη ενημέρωση γίνεται σε διαδραστικές συνεδρίες και με -p, όχι στις συνεδρίες SDK/server.

Τα εργαλεία fek_* είναι εργαλεία MCP: δεν χρειάζονται τερματικό ούτε έγκριση εντολών shell.

Χρήση

Ο απλούστερος τρόπος είναι το skill /nomos, σε οποιαδήποτε συνεδρία: γράψε την ερώτηση και αυτό κάνει μόνο του όσα χρειάζονται.

/nomos Τι ισχύει σήμερα για την άδεια πατρότητας;
/nomos ν. 4624/2019, άρθρο 11, παρ. 6: ισχύει;

Το skill φορτώνεται και αυτόματα, όταν η ερώτηση είναι νομική.

Εναλλακτικά, επίλεξε έναν agent (/agent στο CLI ή από τη λίστα agents) και γράψε το ερώτημα. Οι agents του plugin εμφανίζονται με πρόθεμα: nomos:nomikos-erevnitis και nomos:elegktis-ischyos.

Με τον agent nomikos-erevnitis:

Τι ισχύει σήμερα για την προθεσμία υποβολής δήλωσης φορολογίας εισοδήματος φυσικών προσώπων;

Με τον agent elegktis-ischyos:

ν. 4624/2019, άρθρο 11, παρ. 6

Απευθείας από το CLI. Το --allow-tool=nomos επιτρέπει χωρίς ερώτηση μόνο τα εργαλεία του MCP server nomos:

copilot --agent nomos:elegktis-ischyos --allow-tool=nomos -p "ν. 4172/2013, άρθρο 15, παρ. 1: ισχύει;"

Στο τεστ για τον ν. 4624/2019, άρθρο 11, παρ. 6, ο έλεγχος διήρκεσε περίπου 2 λεπτά, μαζί με την πρώτη λήψη 210 ΦΕΚ.

Εργαλεία ΦΕΚ

Χρησιμοποιούν το API που χρησιμοποιεί και η σελίδα search.et.gr του Εθνικού Τυπογραφείου, χωρίς λογαριασμό.

Εργαλείο MCPCLIΤι κάνει
fek_findpython tools/fek.py find 4624/2019Σε ποιο ΦΕΚ δημοσιεύτηκε μια πράξη
fek_textpython tools/fek.py text 4624/2019 --article 11Κείμενο ΦΕΚ ή άρθρου, όπως δημοσιεύτηκε· με grep αναζήτηση φράσης
fek_amendmentspython tools/fek.py amendments 4624/2019 --article 11Μεταγενέστερες τροποποιήσεις/καταργήσεις, με σελίδα και σύνδεσμο
fek_searchpython tools/fek.py search "4624/2019" --issue Β --from 2025-01-01Αναζήτηση πλήρους κειμένου
fek_crosscheckpython tools/fek.py crosscheck 4624/2019 --article 11Διασταύρωση με κωδικοποιημένο κείμενο (taxheaven.gr)

Το CLI είναι χρήσιμο για χειροκίνητους ελέγχους. Όλες οι εντολές δέχονται --json. Λεπτομέρειες: python tools/fek.py <εντολή> --help.

Χρόνοι και cache

  • Το fek_amendments διαβάζει όλα τα μεταγενέστερα ΦΕΚ που αναφέρουν την πράξη. Την πρώτη φορά τα κατεβάζει: για τον ν. 4624/2019, 210 ΦΕΚ (836 MB PDF) σε περίπου 30 s. Τα επόμενα τρεξίματα διαρκούν περίπου 5 s.
  • Κρατά μόνο το κείμενο, συμπιεσμένο (περίπου 25 MB για 360 ΦΕΚ). Στο plugin η cache βρίσκεται στον μόνιμο φάκελο δεδομένων του plugin (${PLUGIN_DATA}/fek-cache). Το CLI χρησιμοποιεί τον φάκελο nomos-fek-cache των προσωρινών αρχείων. Και τα δύο αλλάζουν με τη μεταβλητή FEK_CACHE.
  • Πάνω από 400 ΦΕΚ, το εργαλείο ζητά περιορισμό του διαστήματος (since).
  • Ένας πλήρης έλεγχος διάταξης από τον elegktis-ischyos διαρκεί λίγα λεπτά, κυρίως σκέψη του μοντέλου. Για πιο γρήγορες απαντήσεις, όρισε ελαφρύτερο μοντέλο με model: στο frontmatter του agent.

Πηγές

  • ΦΕΚ (search.et.gr): η τελική πηγή.
  • taxheaven.gr: κωδικοποιημένα κείμενα νόμων, μόνο για διασταύρωση (fek_crosscheck).
  • Δεν χρησιμοποιούνται: kodiko.gr, που απαιτεί σύνδεση και μπλοκάρει την αυτόματη ανάγνωση, και lawspot.gr, που δεν έχει πάντα ενοποιημένα κείμενα.

Ανάπτυξη

  • Smoke test του MCP server (χρειάζεται δίκτυο): python tests/test_mcp_smoke.py.
  • Για να δοκιμάσεις τοπικές αλλαγές: copilot plugin marketplace add . και copilot plugin install nomos@nomos από τη ρίζα του αποθετηρίου. Μετά από αλλαγές, άνοιξε νέα συνεδρία. Σε εγκατάσταση από GitHub, τρέξε πρώτα copilot plugin update nomos.
  • Ο cloud agent του GitHub δεν φορτώνει plugins χρήστη. Εκεί ισχύουν μόνο το .github/copilot-instructions.md και το CLI tools/fek.py, με allowlist για τα searchetv99.azurewebsites.net, ia37rg02wpsa01.blob.core.windows.net και www.taxheaven.gr.

Περιορισμοί

  • Αυτόματος εντοπισμός: το fek_amendments βρίσκει ρητές τροποποιήσεις που αναφέρουν τον αριθμό της πράξης. Δεν εντοπίζει παραπομπές του τύπου «του ίδιου νόμου» ούτε ΦΕΚ εκτός του διαστήματος και των τευχών που ελέγχθηκαν (προεπιλογή: τεύχος Α'). Γι' αυτό κάθε εύρημα επαληθεύεται στο ΦΕΚ.
  • Ανάγνωση PDF: μερικά ΦΕΚ είναι σαρωμένα ή χρησιμοποιούν γραμματοσειρές χωρίς αντιστοίχιση χαρακτήρων. Το κείμενό τους λείπει ή είναι αλλοιωμένο. Το εργαλείο αναφέρει τα σαρωμένα.
  • Σιωπηρή κατάργηση: όταν νεότερη ρύθμιση καλύπτει το ίδιο θέμα χωρίς ρητή παραπομπή, η κατάργηση μπορεί να μην εντοπιστεί. Σε αυτή την περίπτωση η βεβαιότητα δηλώνεται «Μέτρια».
  • Εξάρτηση από τρίτους: το API του search.et.gr δεν είναι δημόσια τεκμηριωμένο. Αν αλλάξει, το εργαλείο χρειάζεται προσαρμογή.
  • Δεν είναι νομική συμβουλή. Για συγκεκριμένη υπόθεση, συμβουλέψου δικηγόρο.

Κανόνας για τον χρήστη

Άνοιγε πάντα το ΦΕΚ που παρατίθεται και διάβαζε το ίδιο το άρθρο πριν βασιστείς στην απάντηση.

Άδεια

MIT. Το λογισμικό παρέχεται «ως έχει» και δεν αποτελεί νομική συμβουλή. Χρησιμοποιεί δημόσιες πηγές (search.et.gr, taxheaven.gr) με μετριοπαθή αιτήματα· μην το χρησιμοποιείς για μαζική λήψη.