nomos: Έρευνα ελληνικής νομοθεσίας με GitHub Copilot
Plugin του GitHub Copilot για ερωτήματα του τύπου «τι ισχύει σήμερα για το Χ» στην ελληνική νομοθεσία, με επαληθευμένες πηγές και παραπομπές σε ΦΕΚ. Μόλις εγκατασταθεί, δουλεύει σε κάθε φάκελο και συνεδρία.
Περιεχόμενα
| Αρχείο | Ρόλος |
|---|---|
plugin.json | Manifest του plugin (μορφή Agent Plugins 1.0) |
mcp.json | Δηλώνει τον MCP server nomos |
tools/fek_mcp.py | MCP 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.json | Marketplace με αυτό το plugin |
tests/test_mcp_smoke.py | Smoke 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 του Εθνικού Τυπογραφείου, χωρίς λογαριασμό.
| Εργαλείο MCP | CLI | Τι κάνει |
|---|---|---|
fek_find | python tools/fek.py find 4624/2019 | Σε ποιο ΦΕΚ δημοσιεύτηκε μια πράξη |
fek_text | python tools/fek.py text 4624/2019 --article 11 | Κείμενο ΦΕΚ ή άρθρου, όπως δημοσιεύτηκε· με grep αναζήτηση φράσης |
fek_amendments | python tools/fek.py amendments 4624/2019 --article 11 | Μεταγενέστερες τροποποιήσεις/καταργήσεις, με σελίδα και σύνδεσμο |
fek_search | python tools/fek.py search "4624/2019" --issue Β --from 2025-01-01 | Αναζήτηση πλήρους κειμένου |
fek_crosscheck | python 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και το CLItools/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) με μετριοπαθή αιτήματα· μην το χρησιμοποιείς για μαζική λήψη.