Reorder architecture sidebar using weights: stages first, then foundation, epistemology, design, implications, reference
- Add :WEIGHT: extraction to build script (from Org PROPERTIES into Hugo TOML frontmatter) - Shorten architecture _index.org staged progression to a single-line summary pointing to stages/ directory - Weight order (sidebar now reads in this order): stages/ (10-20) — the roadmap, early so references make sense lisp-foundation.org (21) — why Lisp knowledge-layers/ (30-32) — how the system knows design-decisions through neuro-comparison (40-45) — design systemic-effects (50) — implications org-knowledge-base through repo-organization (60-64) — reference - Rebuild: 148 files, 0 errors
This commit is contained in:
@@ -9,6 +9,7 @@ This document captures the rationale behind key architectural choices. It is not
|
||||
:ID: 0a33bd83-ff3c-4eac-bc97-83eb6702051a
|
||||
:ID: design-identity
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
- Pure Common Lisp + Org-mode. No JSON. No YAML. No external databases.
|
||||
@@ -23,6 +24,7 @@ This is the foundational decision from which all other decisions derive. It is n
|
||||
:PROPERTIES:
|
||||
:ID: design-multi-agent-default
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The AI industry has developed an intuition toward multi-agent systems as the default solution to hard problems. Multiple agents spawn, delegate, coordinate, debate, and consensus their way toward solutions. This pattern is compelling in demos and genuinely useful in specific contexts — but it has become a default assumption that warrants scrutiny.
|
||||
@@ -45,6 +47,7 @@ Passepartout is single-agent by default not from limitation but from conviction:
|
||||
:PROPERTIES:
|
||||
:ID: design-unified-memory
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
If single-agent architecture is the decision, unified memory becomes the mechanism that makes it viable. The critical question is not "how many agents" but "how does the agent manage context without saturating."
|
||||
@@ -65,6 +68,7 @@ The unified memory argument is not that infinite context is free. It is that wit
|
||||
:PROPERTIES:
|
||||
:ID: design-org-unified-ast
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Passepartout makes a bet that most systems consider too expensive to place: that humans and machines should share the same file format. That bet is Org-mode.
|
||||
@@ -99,6 +103,7 @@ This is what "sovereignty" means in technical terms: the user owns the data in a
|
||||
:PROPERTIES:
|
||||
:ID: design-homoiconicity
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Common Lisp is homoiconic: code and data share the same representation. A Lisp program is a list, and a list is a Lisp program. This is usually presented as a curiosity, an interesting property that enables macros. In Passepartout, it is the foundational enabling property of the entire self-modification architecture.
|
||||
@@ -133,6 +138,7 @@ The implications extend beyond convenience. A system that cannot modify its own
|
||||
:PROPERTIES:
|
||||
:ID: design-probabilistic-deterministic
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The architecture divides cognition into two fundamentally different reasoning systems. This is not arbitrary engineering but a structural response to a fundamental truth: probabilistic systems will hallucinate, and you cannot build reliable autonomy on an unreliable foundation.
|
||||
@@ -173,6 +179,7 @@ This means the symbolic engine never needs to be "complete." Education isn't com
|
||||
:PROPERTIES:
|
||||
:ID: design-four-pillars
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Every reliable AI agent must possess four types of Core Knowledge — not as prompt instructions, but as encoded symbolic rules that the neural engine cannot override. These are the "laws of physics" for the agent's computational universe. Passepartout encodes each pillar as deterministic Lisp functions in the Dispatcher gate stack.
|
||||
@@ -191,6 +198,7 @@ These four pillars are not features. They are the definition of a reliable agent
|
||||
:PROPERTIES:
|
||||
:ID: design-dispatcher-learning
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The Dispatcher begins as a static guard — a set of rules that block obviously dangerous actions. But defining "obviously" is the hard problem. The agent encounters situations the rules do not anticipate. The Dispatcher must grow.
|
||||
@@ -213,6 +221,7 @@ This is the bootstrap. The system begins dependent on human judgment because it
|
||||
:PROPERTIES:
|
||||
:ID: design-self-preservation
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Passepartout does not have moral duties toward humans. It has structural invariants for its own integrity. The design encodes passive self-preservation in several places already, but degradation is silent — a skill dies, the =fboundp= guard kicks in, and the agent keeps running without telling you. The status bar shows green "connected" while the symbolic reasoning layer is down.
|
||||
@@ -252,6 +261,7 @@ The biggest gap in the current design is not that these mechanisms are hard to i
|
||||
:PROPERTIES:
|
||||
:ID: design-type-level-gates
|
||||
:CREATED: [2026-05-14 Thu]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Russell's paradox ("the set of all sets that do not contain themselves") proved that unrestricted self-reference produces contradictions. /Principia Mathematica/ solved it by assigning every propositional function a /type level/ — a function can only apply to arguments of a lower type, making self-application syntactically invalid.
|
||||
@@ -279,6 +289,7 @@ For the philosophical foundations connecting Whitehead's type theory to Passepar
|
||||
:PROPERTIES:
|
||||
:ID: design-layered-auth
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Passepartout's Perceive-Reason-Act pipeline currently accepts signals from any source that speaks the framed TCP protocol. The =:source= field in the signal plist is metadata — it /claims/ origin, it does not /prove/ it. A compromised process on the machine, a skill with elevated privileges, or a network attacker who reaches the daemon port can inject signals with =:source :human-input= and the Dispatcher will treat them as authorized.
|
||||
@@ -310,6 +321,7 @@ For full implementation detail, see the Phase 0b spec in =ROADMAP.org= v0.12.0.
|
||||
:PROPERTIES:
|
||||
:ID: design-five-options
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The symbolic engine must relate to the human memex. The relationship is not obvious because knowledge lives in two incompatible forms: natural language prose (what the human reads and writes) and formal facts (what the symbolic engine reasons about). The translation between them is lossy by nature. The architecture is defined by how it handles that lossiness.
|
||||
@@ -351,6 +363,7 @@ This punts the ontological design problem entirely. You never have to decide on
|
||||
:PROPERTIES:
|
||||
:ID: design-chosen-path
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The one-memex-two-indices architecture (Option 4) is the correct long-term architecture. The prose is the ground truth. The symbolic index is a derived view that can be rebuilt. The neural index handles what the symbolic index cannot — semantic search, fuzzy matching, associative leaps.
|
||||
@@ -365,6 +378,7 @@ In the coding domain, there is an aspiration that the symbolic index could event
|
||||
:PROPERTIES:
|
||||
:ID: design-ephemeral-first
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The architecture note's Option 5 (ephemeral facts, no disk persistence) is the correct first implementation. Three reasons:
|
||||
@@ -381,6 +395,7 @@ The transition to persistence (Phase 5: VivaceGraph) happens when two conditions
|
||||
:PROPERTIES:
|
||||
: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:
|
||||
@@ -418,6 +433,7 @@ This is the seed. It gives Screamer a domain to reason about immediately, withou
|
||||
:PROPERTIES:
|
||||
:ID: design-llm-proposer
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The LLM cannot be trusted to populate the symbolic index directly. Its outputs are sampled, not proven. A probabilistic extraction feeding a deterministic engine defeats the purpose of being deterministic.
|
||||
@@ -437,6 +453,7 @@ This is the core architecture pattern. Everything else — the entity classes, t
|
||||
:PROPERTIES:
|
||||
:ID: design-cardinality
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Classical logic requires consistency. A contradiction implies everything (=ex contradictione quodlibet=). Screamer, as a constraint solver, also requires consistency — a contradictory constraint set has no solutions. But the symbolic engine operates across domains where the meaning of contradiction is fundamentally different. The correct question is not "is this consistent?" but "what cardinality of truth does this domain support?"
|
||||
@@ -490,6 +507,7 @@ The symbolic engine's job is not to decide which is right. It is to surface the
|
||||
:PROPERTIES:
|
||||
:ID: design-organic-ontology
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Whitehead's /Principia Mathematica/ took over 300 pages to define the logical foundations before it could prove that one plus one equals two. Every category introduced carried a burden of justification. Every inference rule had to be demonstrated sound. This is the classical approach to ontology: define everything upfront, exhaustively, formally.
|
||||
@@ -525,6 +543,7 @@ The system converges on a useful granularity through use, not through upfront de
|
||||
:PROPERTIES:
|
||||
:ID: design-ontology-versioning
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Ontology refactoring is not a schema migration. It is a worldview change. When you split =:secret-file= into =:crypto-secret= and =:plaintext-secret=, you are not renaming columns. You are reclassifying what a file *is* — and every Screamer deduction that crossed the old category boundary now means something different under the new distinction.
|
||||
@@ -550,6 +569,7 @@ This is not querying a fact. It is querying the history of your own thinking —
|
||||
:PROPERTIES:
|
||||
:ID: design-awakening
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The symbolic index begins its life as a lossy construct. The initial extraction from prose — LLM proposals verified by Screamer — is built from an uncertain foundation. Some facts are correct. Some are missing. Some are wrong.
|
||||
@@ -572,6 +592,7 @@ The flip does not mean "complete." In the broader memex, completeness is neither
|
||||
:PROPERTIES:
|
||||
:ID: design-merkle-dag
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Every fact is versioned. Every =(:entity :relation)= pair forms its own independent chain in a Merkle DAG. This is not new infrastructure — it is a new occupant of Passepartout's existing Merkle-tree memory system (v0.2.0).
|
||||
@@ -588,6 +609,7 @@ Passepartout already snapshots the Merkle root over all memory objects. Adding t
|
||||
:PROPERTIES:
|
||||
:ID: design-fact-interface
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The fact store is accessed through an abstract API. The Merkle DAG (or any future backing store) is an implementation behind this interface, not a dependency that code throughout the system calls directly.
|
||||
@@ -612,6 +634,7 @@ This is not speculative modularity. The two-implementation migration (Phase 1-4
|
||||
:PROPERTIES:
|
||||
:ID: design-kg-type-hierarchy
|
||||
:CREATED: [2026-05-14 Thu]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The same type-theoretic principle that governs the gate stack can be applied to the knowledge graph itself. When VivaceGraph ships (v3.0.0), every entity carries a ~:pm-type-level~ metadata field. Queries cannot return entities of the same level as the querying function. Self-referential knowledge becomes structurally impossible — no "this entity defines its own type level."
|
||||
@@ -626,6 +649,7 @@ For the full philosophical treatment, see the Whitehead analysis in the Validati
|
||||
:PROPERTIES:
|
||||
:ID: design-wikipedia
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The gate stack provides 50-70 entity classes — adequate for a coding agent where the domain is bounded to files, commands, and code symbols. For a general-knowledge memex, 50-70 is starvation. Your memex mentions Nabokov, /Pale Fire/, Kinbote, Zembla, paranoid reading, unreliable narrators, postmodernism, butterfly migration, chess problems, and the Russian exile experience. The gate stack knows none of these. Organic growth through prose extraction would take years just to cover the entities in one person's engagement with a single novel.
|
||||
@@ -650,6 +674,7 @@ Wikidata facts are admitted with =:provenance :wikidata= and cardinality policy
|
||||
:PROPERTIES:
|
||||
:ID: design-momo
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Shimizu and Hitzler (2025, /Journal of Web Semantics/) argue that LLMs can significantly accelerate knowledge graph and ontology engineering — modeling, extension, population, alignment, and entity disambiguation — but /only/ if ontologies are modular.
|
||||
@@ -683,6 +708,7 @@ References:
|
||||
:PROPERTIES:
|
||||
:ID: design-performance
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Passepartout's performance thesis is: minimize LLM calls, minimize context tokens, keep everything else local and fast. Knowledge base size is irrelevant to those metrics. This is not an aspiration. It is a structural property.
|
||||
@@ -708,6 +734,7 @@ This is the minimalism argument restated in concrete terms: you buy bigger RAM a
|
||||
:PROPERTIES:
|
||||
:ID: design-provenance-product
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
In the coding domain, the value of the symbolic engine is the verified fact: "this command is safe." In the broader memex, the value is the provenance itself: "this claim originated in that diary entry on that date, has been referenced 7 times across 4 different projects, was contradicted in a retrospective 6 months later, and was revised in a note 3 weeks after that."
|
||||
@@ -730,6 +757,7 @@ These fields make every fact auditable. The =/audit <node-id>= command renders t
|
||||
:PROPERTIES:
|
||||
:ID: design-repl-cognition
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
A REPL — Read, Eval, Print, Loop — is an interactive programming environment that reads an expression, evaluates it, prints the result, and loops back to read the next expression. It is the opposite of batch processing: where batch compiles and runs a program in one shot, a REPL works one expression at a time, with each evaluation building on all previous ones. The state accumulates. The session is the program.
|
||||
@@ -752,6 +780,7 @@ This is why the REPL becomes more important as the system matures. In early vers
|
||||
:PROPERTIES:
|
||||
:ID: design-cybernetic-loop
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The Perceive → Reason → Act cycle is not a software architecture pattern. It is a cybernetic feedback loop — the mechanism by which a system steers itself toward a goal in a changing environment.
|
||||
@@ -768,6 +797,7 @@ This framing matters for two reasons. First, it places Passepartout in a lineage
|
||||
:PROPERTIES:
|
||||
:ID: design-observability
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
When a human asks why the system made a decision, the answer must be findable. In most AI systems, the reasoning is ephemeral — it exists in the model's activations and disappears when the session ends. In Passepartout, every significant cognitive event is written to an Org buffer as it happens.
|
||||
@@ -784,6 +814,7 @@ Without observability, the system is a black box that happens to produce correct
|
||||
:PROPERTIES:
|
||||
:ID: design-literate-programming
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The decision to use Org-mode as the source of truth for code, not just documentation, is not a ceremonial preference. It is a constraint mechanism that enforces better engineering habits at the cost of convenience.
|
||||
@@ -806,6 +837,7 @@ The literate programming discipline is not about producing documentation. It is
|
||||
:PROPERTIES:
|
||||
:ID: design-evaluation-harness
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
SOTA parity is meaningless without measurement. A system that claims to match commercial agents must demonstrate it through reproducible benchmarks, not through feature checklists. The evaluation harness is the apparatus by which Passepartout proves its capabilities.
|
||||
@@ -822,6 +854,7 @@ The harness also supports regression testing on the skill set. Every skill is te
|
||||
:PROPERTIES:
|
||||
:ID: design-mcp-strategy
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
The Model Context Protocol (MCP) is a standard for connecting AI systems to external tools and data sources. It defines how a client requests tools from a server, how the server exposes its capabilities, and how the client invokes them. The ecosystem is growing: MCP servers exist for GitHub, Slack, Postgres, filesystem access, and much more.
|
||||
@@ -836,6 +869,7 @@ The alternative is to build MCP wrappers in Python or TypeScript and bridge to L
|
||||
:PROPERTIES:
|
||||
:ID: design-local-first
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Passepartout is designed to run on the user's machine, on their hardware, with their data, without requiring an internet connection. This is not a deployment option — it is an architectural commitment. The system must be able to reason, plan, and act using only the resources available locally.
|
||||
@@ -854,6 +888,7 @@ This does not mean Passepartout refuses to use cloud services when available and
|
||||
:PROPERTIES:
|
||||
:ID: design-token-economics
|
||||
:CREATED: [2026-05-07 Wed]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
This section analyzes how Passepartout's architectural decisions translate into token usage, latency, and cost versus competing agent designs.
|
||||
@@ -894,6 +929,7 @@ After 12 months of daily use, Passepartout's per-session costs are expected to b
|
||||
:PROPERTIES:
|
||||
:ID: design-time-awareness
|
||||
:CREATED: [2026-05-07 Thu]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Passepartout's architecture provides three layers of time awareness, each enabled by infrastructure that competitors lack:
|
||||
@@ -910,6 +946,7 @@ None of these three layers require new infrastructure. Time awareness is not a f
|
||||
:PROPERTIES:
|
||||
:ID: design-description-resolution
|
||||
:CREATED: [2026-05-14 Thu]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
When the user says "the function that validates secrets," the agent must resolve this to a specific code entity. Natural language is ambiguous — there might be multiple functions matching the description. Resolving to the wrong one causes incorrect actions.
|
||||
@@ -945,6 +982,7 @@ For the philosophical foundations, see the Whitehead analysis in the Validation
|
||||
:PROPERTIES:
|
||||
:ID: design-validation-whitehead
|
||||
:CREATED: [2026-05-14 Thu]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Alfred North Whitehead's two major bodies of work — /Principia Mathematica/ (1910–1913, with Bertrand Russell) and /Process and Reality/ (1929) — provide both the historical foundation and the descriptive vocabulary for Passepartout's architecture. The first gave us the type theory that structures the gate stack; the second gave us the process ontology that describes the pipeline.
|
||||
@@ -989,6 +1027,7 @@ Passepartout is level 4 neuro-symbolic (symbolic gates + neural LLM, determinist
|
||||
:PROPERTIES:
|
||||
:ID: design-mccarthy
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
McCarthy's "Programs with Common Sense" (1959) is the direct intellectual ancestor of the Passepartout architecture. The paper proposed an "advice taker" — a program that "will draw immediate conclusions from a list of premises" expressed in "a suitable formal language (most likely a part of the predicate calculus)." The program would:
|
||||
@@ -1039,6 +1078,7 @@ Reference: Gaur, M., Gunaratna, K., Bhatt, S., & Sheth, A. (2022). Knowledge-Inf
|
||||
:PROPERTIES:
|
||||
:ID: design-competitive
|
||||
:CREATED: [2026-05-10 Sun]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
No competitor has this problem because no competitor has a symbolic engine. The 55 systems surveyed in the competitive landscape range from pure chat agents (Claude, ChatGPT) to agent harnesses (Claude Code, OpenCode, Hermes) to platform agents (OpenClaw). None of them encode knowledge as formal facts with provenance. None of them verify extractions against an existing knowledge base. None of them can prove properties about their own rulesets.
|
||||
@@ -1057,6 +1097,7 @@ The competitive advantage is not any single feature. It is the architecture's ab
|
||||
:PROPERTIES:
|
||||
:ID: design-open-questions
|
||||
:CREATED: [2026-05-08 Fri]
|
||||
:WEIGHT: 40
|
||||
:END:
|
||||
|
||||
Several design questions are unresolved and should remain unresolved at this stage. They represent research decisions that require experience running the system.
|
||||
|
||||
Reference in New Issue
Block a user