Thalo synthesis
Type: agentic-system-analyses/types/agentic-system-synthesis.md
Bounded synthesis
Thalo is a structured plain-text knowledge system, not merely a parser or an autonomous agent runtime. Entries remain editable text; schemas and queries make them checkable and selectable. Its CLI prepares synthesis context. A shipped GitHub action and Pi command extend that preparation into model-generated Markdown, retained checkpoints and pull-request publication. This account covers the repository at cdb9aae983e6bc0b75eff1606bc99b088c3aebff, with an analysis cutoff of 2026-10-14. SRC-1 supplies implementation and doctrine/design evidence only: no target execution, authenticated execution trace or causal experiment establishes successful operation or benefit. Provider internals, deployed host enforcement and actual human approval are outside the frozen boundary. See the boundary and Source register.
Retain and check editable knowledge
Thalo keeps knowledge instances, entity schemas, synthesis queries and prompts in .thalo files or Markdown fences. Loading builds process-memory documents and indexes rather than a separate authoritative knowledge store. Natural-language sections can carry claims, reasons and caveats; symbolic fields control query membership and checking. Schema alterations change later checking requirements. Ordinary query results select physical entries, not a resolved current stance: historical and successor assertions can appear together. Raw output supplies content; default and JSON query output supply metadata and locations instead. These are distinct consumption surfaces, not equivalent evidence delivery. See MEM-OBJ-instance-entries, MEM-CMP-workspace, MEM-RTE-schema-resolution and MEM-RTE-query-readout; SRC-1, packages/thalo/src/services/query.ts, packages/thalo/src/schema/registry.ts, apps/thalo-cli/src/commands/query.ts.
Structural diagnostics can advise an editing agent and make an explicit CLI check fail. They do not establish the truth of entry bodies or veto every write. Direct edits, initialization, formatting, merge output and the Pi writer have separate admission paths. The action does not require the checker before committing. Merge conflict checks assess version disagreement; even conflict-bearing output is written locally before a nonzero exit signals an unsuccessful merge. Thus the claimed agent feedback loop has implemented structural support, but no demonstrated semantic-quality gain. See RT-RTE-check-feedback, RT-CLM-agent-feedback, RT-RTE-local-authoring and EPI-RTE-merge-disposition; SRC-1, packages/thalo/src/checker/check.ts, apps/thalo-cli/src/commands/merge-driver.ts.
Select a pending synthesis
The representative workflow updates ^typescript-guide in the shipped example KB. A configured GitHub job delegates the target to the action, which loads files, extracts its stored queries and prompt, and finds the latest actualization checkpoint. Code selects current matching instances changed since that marker; zero returned entries means no command runs. This connects one actual shipped request to generation and delivery, rather than joining unrelated capabilities. See the workflow account and RT-RTE-actualize-selection; SRC-1, .github/workflows/test-action.yml, packages/thalo/src/commands/actualize.ts.
Incremental selection is narrower than complete dependency invalidation. Git comparison can detect edits, but deleted entries and entries that cease matching have no current matching instance to emit. Prompt/query-only changes need not produce pending work. Missing Git commits can replay current matches; timestamp fallback only selects newer entries and cannot detect old in-place edits. The unforced Git path checks cleanliness of currently matching source files; CLI force and alternate trackers do not inherit that gate. Consequently, “up to date” describes the selector's empty result, not correct or fully refreshed prose. See RT-RTE-actualize-selection, MEM-OBJ-synthesis-sources and the memory annotations; SRC-1, packages/thalo/src/services/change-tracker/git-tracker.ts, packages/thalo/src/services/change-tracker/timestamp-tracker.ts.
Generate, admit and read back prose
The action computes its worklist before running commands sequentially. Each command receives JSON on stdin. The shipped Pi command reads the entire target file and supplies it alongside selected raw entries and stored guidance to a fresh Agent using OpenAI gpt-5-mini. The host requests prose generation; it does not configure a delegated worker or model tool list. Requested query/preparation is pull, while host assembly supplies retained context to the model without a model retrieval request. Exact source predicates select entries; prior prose receives coarse whole-file supply. No explicit token cap or host compaction policy is configured. Provider processing remains opaque. See RT-RTE-pi-synthesis, RT-CMP-gpt5-mini and profile verification; SRC-1, packages/scripts/src/synthesize-with-pi.mjs.
Nonempty generated text and reconstruction prerequisites permit local installation. Neither factual accuracy nor source coverage is checked. Host reconstruction retains the prefix and first Thalo block, appends a checkpoint and replaces everything after that block with generated Markdown. It does not find the block by target ID or independently preserve unrelated suffix content. The prompt's narrow-edit request is therefore stronger than the host guarantee; suffix preservation depends on model reproduction. See EPI-RTE-output-guard, EPI-RTE-file-reconstruction and EPI-CLM-preserve-content; SRC-1, packages/scripts/src/synthesize-with-pi.mjs.
The strongest supported recurrent contribution is durable file revision with two later consumers: prior generated prose enters another model request, while the checkpoint controls the next source window. Stored prompts separately provide repeatable, model-interpreted instructions. This establishes wiring for future influence, not observed reliance or improved capacity. The checkpoint is a selector position, not proof of faithful incorporation. Actual generated propositions remain unavailable, so whether the model reshapes existing claims, derives consequences or introduces conjectures is indeterminate. Retention and operational admission do not establish evidence-consuming epistemic acceptance or integration after acceptance. See MEM-OBJ-synthesis-prose, EPI-RTE-prose-retention, RT-BAP-checkpoint-selection and RT-BAP-synthesis-guidance; SRC-1, packages/scripts/src/synthesize-with-pi.mjs, packages/thalo/src/commands/actualize.ts.
These partial results leave independent questions open. The accepted runtime establishes generation under guidance, not a theory-building cycle; it does not establish conditions 1–4 for a formulated theory. Criticism of a consumed theory improving future capacity is unestablished. Reflection is independently unestablished. Software owns selection, generation handoff and publication, but that automation does not establish autonomous theory building. Self-improvement is also unestablished: no evidence-relative improvement objective, operative update attribution and subsequent causally dependent operation are demonstrated. Likewise, automatic durable generation does not establish trace-fed learning when original inputs are caller-dependent KB entries rather than authenticated activity traces. These are bounded uncertainties, not a bundled system-wide negative. See RT-RTE-pi-synthesis, the epistemic conclusion and profile verification; SRC-1, packages/scripts/src/synthesize-with-pi.mjs.
Publish and assess the delivered result
After commands return, the action stages the whole working tree, commits, force-pushes a branch and creates or updates a PR. That is its delivery boundary, not automatic base-branch integration. Successful exit and pending count do not certify correct rewrites. Human review is later and external. Command failure prevents subsequent publication in ordinary control flow but leaves earlier local writes intact; no automatic multi-file rollback or concurrency lock is established. A replacement command runs with host privileges and can have broader effects than the shipped writer. See RT-RTE-action-publication and the workflow account; SRC-1, packages/thalo-action/src/action.ts.
For a scenario of incremental guide drafting from retained opinions and references, the implementation connects query-selected changes, prior draft context and reviewable Git delivery. For a scenario requiring evidence-certified knowledge or dependable propagation of retractions, neither packaging checks nor checkpoints supply the required guarantee. An evidence-linked input/output trace and a consequential semantic acceptance decision would change the knowledge assessment. Deletion/retraction delivery and prompt/query invalidation would change refresh coverage; target-specific reconstruction would change preservation guarantees. Later outcome comparisons tied to retained changes would be needed for improvement attribution. The report verification and profile verification declare no blockers or additional limits; their passes do not turn implementation evidence into observed operation. No source reads were made for this synthesis.
Limitations
| Limitation | Affected SRC IDs and record citations | Inspected boundary | Conclusion prevented | Evidence that would resolve it |
|---|---|---|---|---|
| Operation and benefit are unobserved. | SRC-1; RT-RTE-pi-synthesis, RT-RTE-action-publication | Shipped script/action and configured workflow; implementation and doctrine only | Successful generation, publication, model reliance, human acceptance or causal gain | Provenance-linked execution and review artifacts; matched outcome comparisons for benefit attribution |
| Semantic relation, source warrant and generated rationale are unresolved. | SRC-1; MEM-OBJ-instance-entries, MEM-OBJ-synthesis-prose, EPI-RTE-output-guard | Raw-entry delivery, whole-file context and packaging guards | Warranted derivation, accepted new claims, preserved reasons or qualifying trace-fed learning | Authenticated input provenance, linked output propositions and evidence-consuming acceptance for a named use and scope |
| Incremental selection omits material withdrawal and guidance-change cases. | SRC-1; RT-RTE-actualize-selection, MEM-OBJ-synthesis-sources | Current-entry Git/timestamp selection; prompt/query and marker alternatives | Complete refresh after deletions, lost query membership, guidance-only changes or timestamp-invisible edits | Implemented and traced retraction/invalidation routes covering these alternatives |
| Host reconstruction does not enforce narrow preservation. | SRC-1; EPI-RTE-file-reconstruction, EPI-CLM-preserve-content | First-fence replacement and concrete source-derived countercase | Guaranteed retention of unrelated suffix content or later blocks; observed loss frequency | Target-specific preservation implementation and linked executions across relevant layouts |
| External model and host behavior remain opaque. | SRC-1; RT-CMP-gpt5-mini, RT-RTE-action-publication | Model selectors, process invocation and configured grants; not external internals | Immutable parameter identity, provider updates/retention, deployed sandboxing or replacement-command guarantees | Versioned provider evidence and inspected deployment/extension contracts with operation evidence |
| Broader maintenance and consumer correctness is not exhaustively assessed. | SRC-1; MEM-CMP-workspace, RT-RTE-local-authoring, MEM-RTE-query-readout, MEM-OBJ-playground-state | Selected parser/checker/editor/merge/formatter paths, reused loader, API affordances and browser session state | Universal reload-implies-withdrawal, lossless maintenance, complete later-reader inventory or browser cross-session memory | Focused correctness evidence and identified callers covering unresolved parser, serialization, editor, API and browser alternatives |
| Failure recovery and concurrent publication depend on external ownership. | SRC-1; RT-RTE-action-publication | Sequential commands, broad staging, force push and PR creation | Atomic multi-file updates, automatic rollback, exactly-once recovery or conflict-safe concurrent publication | Implemented transaction/recovery and coordination mechanisms, with failure/concurrency traces |