Fractal synthesis

Type: agentic-system-analyses/types/agentic-system-synthesis.md

Bounded synthesis

Fractal is a terminal coding agent and headless delegation interface. At commit 6a226e7d539e229b5c7cc9ffa3b05ab1c8f00385, it is a runtime client: it owns request admission, provider selection, workspace grants, session persistence, resumption and presentation. PredictRLM owns the inner model/code computation. The whole-system boundary covers the shipped Fractal artifact, including its interactive driver, headless driver, Python adapter and calling recipes; it does not cover separately distributed dependencies. Applicability ends at 2026-10-14. The evidence is inspected implementation and doctrine/design from SRC-1, not execution traces or experiments. No target invocation, test, example or model service was executed. See the boundary and evidence and Source register.

Admit a task and delegate direct execution

A headless caller supplies a request and workspace, optionally additional mounts and a session ID. Fractal selects main and subordinate model adapters, creates the execution backend, appends a pending turn and saves it before model work. The delegated computation receives mutable workspace objects, the current request and detailed session history. Static coding guidance, root AGENTS.md and rendered session context enter its signature instructions. Fractal awaits one computation; subordinate scheduling is not a Fractal-owned worker graph established by this evidence. The default iteration budget is 30 but is configurable. These are wired client behaviors, with operation uninspected: RT-RTE-headless-turn, RT-OBJ-edit-workspace, and RT-OBJ-session-state.

Workspace effects occur directly during delegated execution, not through a staged patch that Fractal later approves. The instruction to inspect files, preserve unrelated content and verify important edits is model-interpreted policy. Root guidance is subordinate to the current request, may be omitted on read/decode failure, and is truncated above 20,000 characters with a request to read the full file. Neither policy establishes executor-level permissions or reliable compliance. Actual isolation and cancellation safety depend on external PredictRLM/SBX contracts. A direct Python caller can supply models and an interpreter, bypassing CLI mount checks and automatic session persistence. Thus driver controls cannot be attributed to every invocation: RT-BAP-workspace-guidance and RT-RTE-direct-agent.

Record a return without certifying the work

After execution, the adapter checks that the response is a string, changed-file names are a list of strings, and any trace has the expected type. It does not compare the reported list with the filesystem or judge answer correctness. A normal return is recorded as succeeded unless an available trace identifies iteration-budget exhaustion. Headless delivery consists of text or a single-turn JSON envelope and exit status: 0 for ordinary return, 2 for recognized budget exhaustion, 1 for caught failure, and 130 for KeyboardInterrupt. Delivery is not semantic acceptance: RT-CLM-result-contract and RT-RTE-budget-exhaustion.

Failure and recognized interactive interruption retain available error/trace context but do not restore already applied workspace edits. The interactive persistence branch requires an interruption predicate that headless submission does not supply. Pending-save and other pre-call failures also lie outside the guarded agent-call recovery branch. Registered hooks provide best-effort observations, not an approval barrier or complete audit. Commands can be recorded before execution, and normal persisted modification lists come from the result rather than the hook tracker's modification list. Failure/interruption records can contain empty modification lists despite earlier effects: RT-RTE-interactive-interrupt, RT-CLM-hook-accounting, and EPI-RTE-event-projection.

Carry experience into later turns

The strongest supported experience-based contribution is automatic production of durable continuation context and its wired delivery to a later model invocation. Host code projects activity observations and trace status into retained context; it does not require a separate human decision for each admitted item. This is a narrow trace-fed update, not merely raw-log storage, and it does not establish improved capacity. Its recorded inputs include conversational turns, discrete runtime hook events, and file/command activity records. Original production and full contents of dependency-defined traces remain unresolved: MEM-RTE-checkpoint-update, MEM-RTE-session-context, and the profile verification.

Two retained parts have different horizons. The summary copies whole user messages and returned response strings, retains status/errors, and reduces operation lists to counts. It is deterministic field selection, not model-written semantic abstraction. All summary turns are rendered into later signature text, with no inspected turn or token cap. Detailed history retains only the last 20 entries; on submission the current pending entry occupies one slot. Older exact traces and operation identities cannot be recovered from summary counts. Numerical usage is a separate host-accounting part, not text rendered into summary instructions. See MEM-OBJ-session-summary, MEM-OBJ-session-history, MEM-OBJ-turn-usage, and EPI-RTE-summary-render.

Cross-process resume is caller-directed selection of a workspace-keyed global session file by ID. A later submit independently pushes all summary turns and the recent detailed tail. This is coarse session/recency selection, not semantic search or identifier-matched selection of a relevant subset. Exact-detail inspection from Python is afforded to the model, not observed. Loader checks establish structural compatibility, not statement truth or correspondence with workspace reality. Some malformed states yield warnings and empty replacement, but invalid UTF-8 can escape that recovery; ID continuity does not guarantee context continuity. See MEM-RTE-session-reload and the carried report-verification limit.

Resume an audit and request repair

The representative workflow is the shipped two-process recipe: audit auth.py, capture the session ID, then resume the same workspace/session and request repair of the worst issue. The caller owns sequencing; Fractal carries state; PredictRLM chooses the issue and executes each turn. The ID is printed before model work, and the recipe does not check audit exit status before launching repair. Its audit request is not an enforced read-only phase. No severity rubric, reference answer or independent security reviewer is supplied. A separate recipe recommends a clean Git tree and post-run diff inspection, but that is not wired into this sequence and does not certify repair correctness. The supported result is continuation wiring, not an observed successful audit or repair: WF-RTE-audit-repair.

For this scenario, explicit resumption supplies prior candidate findings and failure context without requiring the caller to paste them into a new request. The remaining correctness decision belongs to an evaluator the caller or delegated work must arrange; Fractal's return and persistence checks do not provide it. For long sessions, the detailed tail has a clear recency bound while the summary can continue accumulating full responses. Consequently the implementation supports neither complete exact recall nor a fixed always-visible context budget. The advertised avoidance of context rot and fully readable verification trace remain doctrine, not demonstrated benefit: EPI-CLM-context-rot and EPI-CLM-readable-trace.

Keep adaptation claims separate

The retained-context contribution is implemented, but criticism of a consumed theory improving capacity for future action is not established. The root-guidance path exposes localized instruction text and later delivery; it does not establish a formulated theory assessment, decisions depending on that theory's content, content-directed criticism, or criticism shaping another round. Theory-builder conditions 1–4 therefore cannot be affirmed for that path from the accepted runtime account; this is not evidence that opaque dependency processing lacks them. Likewise, neither reflective-system status nor autonomous-theory-builder status is established by the ordinary coding route. Caller-owned workflow sequencing and dependency-owned internal decisions must not be collapsed into one autonomy judgment. See RT-BAP-workspace-guidance, WF-RTE-audit-repair, and the epistemic bounded conclusion.

Editable root guidance supplies a live avenue for changing later instructions across turns or sessions. It does not establish exercised self-improvement of Fractal: no independently specified improvement objective, evidence-responsive guidance update, and subsequent operation causally depending on that update are evidenced here. Improving an external workspace product alone would not settle this question. Provider/default replacement selects adapters rather than training weights; tag-triggered package release is production automation, not an agent improvement loop. Main/sub-model weights and exact remote revision resolution remain uninspected. See RT-RTE-config-change, RT-RTE-package-release, RT-CMP-main-lm, and RT-CMP-sub-lm.

An inspectable audit/repair run with before/after files, evaluator results and linked continuation context would change the exercised-workflow assessment. A controlled comparison varying context delivery would be needed to attribute a recall or performance benefit to that mechanism. A trace connecting criticism of a named method to retained revision and later dependent behavior would change the independent theory-building/self-change assessments. A client-enforced semantic acceptance gate, filesystem-effect audit, atomic checkpoint protocol or tested decoding recovery would change the corresponding system guarantees, rather than merely add evidence of one successful run.

Limitations

Limitation Affected SRC IDs and record citations Inspected boundary Conclusion prevented Evidence that would resolve it
No supplied execution or causal comparison SRC-1; RT-RTE-headless-turn, WF-RTE-audit-repair, EPI-CLM-context-rot Frozen Fractal implementation and calling doctrine; no target/test/service execution Exercised recall, successful repair, end-to-end reliability and causal context benefit Linked execution artifacts and scoped evaluator results; an intervention/comparison for causal attribution
Inner computation and execution backend are external SRC-1; RT-RTE-direct-agent, MEM-RTE-session-context Fractal construction and handoff, not PredictRLM/SBX internals Actual recursive scheduling, internal compaction, exact model-visible context, sandbox isolation or cancellation quiescence Pinned dependency implementations and inspectable execution evidence for the named properties
Trace payload, provenance and API alternatives remain unresolved SRC-1; MEM-OBJ-session-history, RT-RTE-direct-agent, profile verification Typed retained trace and generic caller-supplied context Complete memory form, lineage, authority, curation and trace-source inventory; universal persistence or history cap Recorded payload/producer/consumer contracts and identified direct-caller retention, admission and later consumption
Return/status checks do not accept semantic task claims SRC-1; RT-CLM-result-contract, WF-RTE-audit-repair Adapter conversion, runtime classification and two-turn recipe Verified security findings, repair correctness, or evidence-consuming claim acceptance inferred from succeeded Task-specific criterion, evidence-consuming evaluator/disposition and linked result
Bounded detail and incomplete effect metadata SRC-1; MEM-OBJ-session-history, EPI-RTE-event-projection, EPI-CLM-readable-trace Twenty-entry tail, hook reducer and checkpoint writer Complete long-session exact recall, exhaustive effect audit or proof that recorded commands completed Durable complete traces with provenance and independent filesystem/execution accounting
Decoding escapes warning-and-empty-state recovery SRC-1; MEM-RTE-session-reload, WF-RTE-audit-repair, report-verification limit Loader catches OSError/JSONDecodeError, not UnicodeDecodeError; TUI resume catches only FileNotFoundError Every unreadable checkpoint yields backup/empty replacement, or every malformed resume returns to the prompt Explicit decoding-error handling and scoped recovery tests/results; valid-state reload remains supported
Delivery and editable guidance do not establish independent improvement properties SRC-1; MEM-RTE-checkpoint-update, RT-BAP-workspace-guidance Automatic projections, instruction reread and ordinary task editing Improved capacity, theory-builder conditions, reflective/autonomous theory building or exercised self-improvement inferred from retention Property-specific content/criticism/iteration evidence, reflection's causal directions, role-level autonomy evidence and linked evidence-responsive update/later behavior
Auxiliary evaluators and deployment contracts are not completely assessed SRC-1; EPI-RTE-contract-tests, RT-RTE-package-release, RT-CMP-main-lm, RT-CMP-sub-lm Inspected fixture/CI design, release workflow and adapter selection; other test bodies and remote contracts uninspected Exhaustive evaluator/security comparisons, passing CI, protected publication or fixed/unchanging remote model parameters Relevant evaluator bodies and results, deployment protections and pinned provider contracts

The report verification declares one local recovery limit, carried above. The profile verification declares no additional limits. The supplied reconciliation identifies no unresolved cross-report conflict. Source-read log: none; this synthesis uses only the supplied members and introduces no new evidence.