Files
hermes-brain/projects/passepartout/architecture/design/the-symbolic-engine/the-gate-to-fact-bootstrap-extracting-the-first-ontology-from-code.org

45 lines
2.9 KiB
Org Mode

---
title: The Gate-to-Fact Bootstrap — Extracting the First Ontology from Code
type: reference
tags: :passepartout:architecture:
---
* The Gate-to-Fact Bootstrap — Extracting the First Ontology from Code
:PROPERTIES:
:ID: 28a8caf7-c0a1-4154-8ca3-3a0d11cf121a
:ID: design-gate-bootstrap
:CREATED: [2026-05-08 Fri]
:WEIGHT: 40
:END:
The Dispatcher gate stack already encodes an implicit ontology. Every gate vector asserts the existence of a category of things:
- Gate vector 2 asserts there exists a class of files called /secrets/.
- Gate vector 7 asserts there exists a class of commands called /destructive/.
- Gate vector 8 asserts there exists a class of domains called /trusted/.
- The self-build boundary asserts there exists a class of files called /core-harness/ and a class called /skills/.
These claims are currently expressed as code — Lisp functions that pattern-match against file paths, shell commands, and URLs. They are not facts the symbolic engine can query, derive from, or check for consistency. But they can be made explicit.
The bootstrap makes every gate a set of initial symbolic facts:
=(:file ".env" :member-of-class :secret-files :source gate-vector-2)=,
=(:command "rm -rf /" :classified-as :catastrophic :source gate-vector-7)=,
=(:domain "api.telegram.org" :classified-as :trusted :source gate-vector-8)=.
This produces 50-70 entity classes directly from the existing gate stack, without any new infrastructure:
| Source | Count | Example categories |
|----------------------------------------+-------+----------------------------------------------------|
| ~*dispatcher-protected-paths*~ | 11 | :secret-config-file, :ssh-key-file, :gpg-key-file |
| ~*dispatcher-shell-blocked*~ | 8 | :catastrophic-command, :injection-pattern |
| ~*dispatcher-network-whitelist*~ | 2 | :trusted-domain, :untrusted-domain |
| Self-build boundary | 2 | :core-harness-file, :skill-file |
| Privacy tags | 3 | :private-content, :financial-content |
| Permission table | 3 | :read-only-tool, :write-tool, :eval-tool |
| Cognitive tools | 6 | :code-search-tool, :file-io-tool, :shell-tool |
| Relations (all gates) | ~15 | :member-of-class, :classified-as, :depends-on |
| Qualities | ~8 | :catastrophic, :dangerous, :moderate, :harmless |
| Provenance sources | 4 | :gate-outcome, :human-authored, :deduced, :llm-proposed |
This is the seed. It gives Screamer a domain to reason about immediately, without any LLM involvement. It proves the pattern — code becomes facts, facts enable reasoning — at the cost of approximately 30 lines of Lisp.