Context
The Logtalk/SWI-Prolog rule engine (engine/, ~28 .lgt files) was retired and its logic absorbed into the Elixir ruleset (lib/rules/*.ex) — see docs/architecture/topology.md ("RULES ENGINE (Elixir — absorbed from Logtalk 2026-03-06)"), .machine_readable/6a2/STATE.a2ml (Logtalk purge 2026-04-14), .machine_readable/6a2/NEUROSYM.a2ml (Logtalk removed 2026-04-14). The engine is genuinely gone; Elixir won.
But ~60 files on main still mention logtalk/swi-prolog. A blanket sed is unsafe — the matches fall into very different categories. This issue tracks a categorized cleanup.
Ground-truth the current set with:
git grep -l -iE "logtalk|swi-prolog" origin/main
Triage
(A) Safe to update — stale docs describing Logtalk as a current component. These misdescribe the live architecture and should be rewritten to say the ruleset is Elixir:
.github/workflows/ci.yml:3 header comment …Haskell (registry), and Logtalk (engine) (both the Haskell and Logtalk clauses are now dormant/retired)
README.adoc, docs/guides/developer-guide.adoc, ROADMAP.adoc, poc-scanner.sh, and the architecture docs that present an engine/ Logtalk runtime as if extant
(B) MUST KEEP — live scanner functionality (do NOT touch).
hooks/lib/common.sh — Logtalk language detection for scanned repos (grep -qE '\.(lgt|logtalk)…'). hypatia still scans other repos that may contain Logtalk; removing this breaks the scanner.
lib/rules/*.ex — comments/migration facts that legitimately reference the absorbed origin.
.machine_readable/6a2/{STATE,NEUROSYM}.a2ml — these document the purge; they should mention Logtalk (as retired history), not be scrubbed.
(C) Owner-gated — do NOT auto-edit (doctrine #4: contractiles/invariants are provisional + supervised).
.machine_readable/MUST.contractile:79 — (must "Logtalk rule engine for error catalog and pattern detection must be preserved"). This is a stale normative invariant that now contradicts the purge. It must be reconciled by the owner (retire or re-point to the Elixir ruleset), not mechanically deleted.
.machine_readable/INTENT.contractile — check for the same.
(D) Leave / author's call — scholarly & training artifacts.
arcvix-neurosymbolic-ci-intelligence.tex — research paper making a claim about "20 declarative Logtalk/Prolog rules"; that's the author's scholarly record, not stale config.
.audittraining/security-errors/*.md — training corpus using Logtalk examples; editing corrupts the data.
Suggested sequencing
- Do (A) in one small PR (docs + the two workflow header comments) — low risk, no owner sign-off needed.
- Raise (C) to the owner as a discrete decision (supervised contractile edit).
- Explicitly do not touch (B)/(D).
Related: #483 (doc + contractile currency pass). This issue is the Logtalk-specific slice of that sweep.
Context
The Logtalk/SWI-Prolog rule engine (
engine/, ~28.lgtfiles) was retired and its logic absorbed into the Elixir ruleset (lib/rules/*.ex) — seedocs/architecture/topology.md("RULES ENGINE (Elixir — absorbed from Logtalk 2026-03-06)"),.machine_readable/6a2/STATE.a2ml(Logtalk purge 2026-04-14),.machine_readable/6a2/NEUROSYM.a2ml(Logtalk removed 2026-04-14). The engine is genuinely gone; Elixir won.But ~60 files on
mainstill mentionlogtalk/swi-prolog. A blanket sed is unsafe — the matches fall into very different categories. This issue tracks a categorized cleanup.Ground-truth the current set with:
Triage
(A) Safe to update — stale docs describing Logtalk as a current component. These misdescribe the live architecture and should be rewritten to say the ruleset is Elixir:
.github/workflows/ci.yml:3header comment…Haskell (registry), and Logtalk (engine)(both the Haskell and Logtalk clauses are now dormant/retired)README.adoc,docs/guides/developer-guide.adoc,ROADMAP.adoc,poc-scanner.sh, and the architecture docs that present anengine/Logtalk runtime as if extant(B) MUST KEEP — live scanner functionality (do NOT touch).
hooks/lib/common.sh— Logtalk language detection for scanned repos (grep -qE '\.(lgt|logtalk)…'). hypatia still scans other repos that may contain Logtalk; removing this breaks the scanner.lib/rules/*.ex— comments/migration facts that legitimately reference the absorbed origin..machine_readable/6a2/{STATE,NEUROSYM}.a2ml— these document the purge; they should mention Logtalk (as retired history), not be scrubbed.(C) Owner-gated — do NOT auto-edit (doctrine #4: contractiles/invariants are provisional + supervised).
.machine_readable/MUST.contractile:79—(must "Logtalk rule engine for error catalog and pattern detection must be preserved"). This is a stale normative invariant that now contradicts the purge. It must be reconciled by the owner (retire or re-point to the Elixir ruleset), not mechanically deleted..machine_readable/INTENT.contractile— check for the same.(D) Leave / author's call — scholarly & training artifacts.
arcvix-neurosymbolic-ci-intelligence.tex— research paper making a claim about "20 declarative Logtalk/Prolog rules"; that's the author's scholarly record, not stale config..audittraining/security-errors/*.md— training corpus using Logtalk examples; editing corrupts the data.Suggested sequencing
Related: #483 (doc + contractile currency pass). This issue is the Logtalk-specific slice of that sweep.