All 17 ports are products, not reference material — so thinness is a gap to close.
Current state: 3 real cores — jagentic-core (7.5k LOC, 94 tests), ports/go (8.9k, 94 tests, go vet clean and all packages passing), ports/pyagentic (6k, 93 tests, zero runtime deps, imports clean on 3.9–3.14) — plus 14 thin adapters, most written in 1–3 commits on 2026-06-14/15 and never revisited.
Gaps:
- 9 port directories have no build file at all (~2,200 LOC). Every consumer reaches the core via
sys.path.insert, five of those in library code.
spring and quarkus have zero tests. quarkus has no quarkus-maven-plugin, so it cannot even be packaged.
ports/{celery,dask,ray,faust,airflow,nats} shadow the PyPI packages they port to as implicit namespace packages — verified: from ports/, import celery resolves to the port directory. This is the root cause of every hand-rolled "engine not installed" guard in the tree, and the README tells readers to run tests from exactly that directory.
- Proven runtime bugs:
airflow raises NameError on an undefined helper and imports an API removed in Airflow 3; celery keys its single-writer queue with hash(), which is per-process salted, so the same conversation reaches different workers — breaking the exact invariant the port demonstrates; spring double-appends every message because it appends around a core call that already appends; gos YAML router iterates a map, so the same spec routes nondeterministically and differently from Java/Python.
Event field order diverges across the three cores — Pythons second positional arg is text, Java/Gos is userId. Porting a call site silently swaps them.
- Only 3 of 12 engines are selectable
backend: values, so the "same spec on any backend" claim needs narrowing or widening.
Roadmap epic. Detailed findings, file:line citations and sub-tasks live in the AI-grind tracker (project AGS), which is the source of truth for this work. Local dev — build, test, tracking, profiling — is managed with AI-grind.
Tracked as AGS-17 in the devtools-mcp tracker.
All 17 ports are products, not reference material — so thinness is a gap to close.
Current state: 3 real cores —
jagentic-core(7.5k LOC, 94 tests),ports/go(8.9k, 94 tests,go vetclean and all packages passing),ports/pyagentic(6k, 93 tests, zero runtime deps, imports clean on 3.9–3.14) — plus 14 thin adapters, most written in 1–3 commits on 2026-06-14/15 and never revisited.Gaps:
sys.path.insert, five of those in library code.springandquarkushave zero tests.quarkushas noquarkus-maven-plugin, so it cannot even be packaged.ports/{celery,dask,ray,faust,airflow,nats}shadow the PyPI packages they port to as implicit namespace packages — verified: fromports/,import celeryresolves to the port directory. This is the root cause of every hand-rolled "engine not installed" guard in the tree, and the README tells readers to run tests from exactly that directory.airflowraisesNameErroron an undefined helper and imports an API removed in Airflow 3;celerykeys its single-writer queue withhash(), which is per-process salted, so the same conversation reaches different workers — breaking the exact invariant the port demonstrates;springdouble-appends every message because it appends around a core call that already appends;gos YAML router iterates a map, so the same spec routes nondeterministically and differently from Java/Python.Eventfield order diverges across the three cores — Pythons second positional arg istext, Java/Gos isuserId. Porting a call site silently swaps them.backend:values, so the "same spec on any backend" claim needs narrowing or widening.Roadmap epic. Detailed findings, file:line citations and sub-tasks live in the AI-grind tracker (project
AGS), which is the source of truth for this work. Local dev — build, test, tracking, profiling — is managed with AI-grind.Tracked as
AGS-17in the devtools-mcp tracker.