DETERMINISTIC CONVERSION ENGINEERING

Ting conversion agents

PyCForge uses privately namespaced Ting Reasoner 0.1.0a21 to review bounded structural evidence for new Python-to-C conversion profiles. The agents are declarative, reproducible, and independently replaceable.

Current authority. In PyCForge {{APPLICATION_VERSION}}, Ting runs in shadow mode. A unanimous result is engineering evidence; it does not change, approve, or publish generated C. Promotion requires a future explicit converter-contract revision.

Agent roles

RoleQuestion that must close
SyntaxAre the source shape, annotations, and resource bounds admitted?
SemanticsAre evaluation order, exceptional paths, and scope lifetime preserved?
OwnershipAre representation, aliases, allocation, and cleanup exact?
LoweringAre the lowerer, helper closure, and typed C IR registered and valid?
VerificationDo differential, compiler, diagnostic, and documentation records exist?
CapabilityAre the provider and symbolic runtime strategy registered, with a valid signed-64 resource ceiling?

The five core roles are mandatory. Capability is the sixth shipped typed agent. Additional role files may be appended to the registry without changing coordinator code. Every agent executes in a fresh engine under finite matching and firing budgets.

Interactive feedback terminal

After every converted or rejected workspace request, PyCForge constructs a source-free evidence envelope and evaluates all six agents. The status-bar Ting control opens one overview tab plus one read-only tab per agent in a terminal-oriented dialog. Each agent tab shows required evidence, closed gaps, run status, firings, matching work, proof edges, and authenticated Compact-IR digests.

Truthful interactive limits. A normal workspace conversion does not compile generated C and does not execute a Python-versus-C differential harness. Those two verification fields therefore remain false and are shown as gaps. The feedback is never writable, never a shell, and never an authority to replace the converter decision.

Source-free evidence boundary

Ting receives a structural candidate identifier, a symbolic construct kind, and named Boolean, signed-64 integer, or bounded symbol values. It does not receive source text, a Python syntax tree, callable objects, import paths, or open-ended payloads. Missing or mistyped evidence fails closed.

Editable rulepacks

Each role has an editable .tingspec.json review source with exact embedded tests and a precompiled .ting Compact-IR artifact. registry.json fixes role order, source and artifact digests, schema identities, rule/test counts, and the Ting runtime contract.

python -m tools.validate_ting_agents

The source-tree command is read-only and runs every embedded rule test. There is no write or skip-tests option. The installed wheel contains the bounded .ting Compact-IR loader/parser and verifier required to authenticate, decode, materialize, and execute the precompiled artifacts. It does not contain review sources, the authoring-side RuleSpec source parser, the Compact-IR compiler, builder, console, or Ting command entry point.

Compiler custody. Rule compilation uses a separately retained, hash-verified Ting source package under authorized release engineering. It must never be copied into a PyCForge distribution.

Proof-preserving pruning

The current policy evaluates every registered agent, even after another agent reports a gap. Inside each rulepack, schema partitioning and exact-match indexes prune irrelevant candidates; range decisions retain a bounded scan. Each report exposes index probes, scanned rows, logical work, and proof edges. Missing evidence and exhausted budgets reject.

No speculative skipping. Core agents, negative-edge rules, and mandatory tests are never removed for speed. Optional agent pruning requires a future authenticated capability profile and an equivalence proof against the exhaustive policy.

Expanding to any engineered conversion profile

  1. Specify the Python shapes and all observable behavior.
  2. Derive bounded facts and independent proof evidence.
  3. Implement a typed representation, ownership model, failure channel, and registered lowering or runtime strategy.
  4. Edit or add agent rules for admission, gaps, and strategy selection.
  5. Add positive, negative, differential, strict-C, resource, cancellation, diagnostic, UI, and documentation coverage.
  6. Rebuild the rulepacks and pass the complete unfiltered release suite.

Ting makes this extension protocol modular; it does not make arbitrary dynamic Python semantics disappear. A feature remains unsupported until its lowering or runtime model can preserve those semantics explicitly.

See Contract identities, Diagnostics and results, and Safety and resource limits for the surrounding release boundary.