Skip to content

Add prelude.pl: a Prolog file consulted at conversation start - #3

Merged
vbergeron merged 1 commit into
mainfrom
claude/prelude-pl-consultation-5ho5ts
Aug 5, 2026
Merged

vbergeron merged 1 commit into
mainfrom
claude/prelude-pl-consultation-5ho5ts

Conversation

@vbergeron

Copy link
Copy Markdown
Owner

Point MANIFOLD_PRELUDE (config :manifold, :prelude_path) at a .pl file and
it is consult/1'ed into every conversation's own engine at boot, ahead of
replay and ahead of the unknown=fail flag — so a directive that references
something undefined still throws instead of silently failing, and anything
the prelude defines is already there for the first replayed clause or live
turn to see.

It is background knowledge shared by every conversation's engine, not a
conversation input: never part of kb_snapshot, never written to the
per-conversation log, and reconsulted fresh into each conversation's own
swipl process (never shared, per the per-conversation-engine architecture).
A prelude that fails to load — missing file, an erroring directive — fails
that conversation's startup the same way a dead swipl does, surfacing as
error{prolog_unavailable} rather than booting a conversation silently short
of the rules it was told to have.

Unset by default, so no existing deployment or test is affected.

Point MANIFOLD_PRELUDE (config :manifold, :prelude_path) at a .pl file and
it is consult/1'ed into every conversation's own engine at boot, ahead of
replay and ahead of the unknown=fail flag — so a directive that references
something undefined still throws instead of silently failing, and anything
the prelude defines is already there for the first replayed clause or live
turn to see.

It is background knowledge shared by every conversation's engine, not a
conversation input: never part of kb_snapshot, never written to the
per-conversation log, and reconsulted fresh into each conversation's own
swipl process (never shared, per the per-conversation-engine architecture).
A prelude that fails to load — missing file, an erroring directive — fails
that conversation's startup the same way a dead swipl does, surfacing as
error{prolog_unavailable} rather than booting a conversation silently short
of the rules it was told to have.

Unset by default, so no existing deployment or test is affected.
@vbergeron
vbergeron merged commit 69e4d11 into main Aug 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants