Skip to content

How it works

Facts first. Answers second.

Telikos is built so that every answer can be traced to a line of your source. That decides what reads your code, what a model may see, and what happens when the model is wrong.

Deterministic parsing comes first

Parsers for COBOL, JCL and procedures, copybooks and DB2 SQL read each artifact and record structural facts: programs and paragraphs, calls and performs, files and the datasets bound to them, SQL against tables, CICS commands, job steps and their DD statements, and the conditions that route data.

Each fact records the file, the line range and a hash of the content it came from, the method that extracted it, and a confidence. Your code is never executed. Parsing is plain text processing in Python.

No language model sees an artifact until these facts exist for it.

From your artifacts to the graphYour artifactsCOBOL, JCL and procs, copybooks, DDLDeterministic parsersPlain text processing. No model.Facts with source locationsPath, lines, content hash, confidenceResolverLinks across artifacts, records unknownsThe graphCorrected by your experts

The graph and what is in it

A resolver links facts across artifacts: a JCL step to the program it runs, a program's file to the dataset its job binds, a dataset one job writes to the jobs that read it. Every link carries its own source locations and a confidence.

Ids are derived from what a thing is, so the same program has the same id in every ingestion and expert annotations stay attached to it.

What the graph holds

  • Programs, sections and paragraphs
  • Data items and record layouts
  • Files and the datasets they are bound to
  • Jobs, steps and procedures
  • Copybooks
  • DB2 tables and columns
  • CICS transactions, maps and queues
  • Condition sites: the IF and EVALUATE statements that route data
  • Business rules, written by the model and reviewed by your experts
  • Unknowns: what the estate references but Telikos cannot see

Some of the links between them

  • CALLS
  • PERFORMS
  • EXECUTES
  • DD
  • READS
  • WRITES
  • SQL_SELECTS
  • SQL_UPDATES
  • COPIES
  • BOUND_TO
  • FEEDS
  • MOVES_TO

What the model may see, and what it must do

  • The model never reads the estate directly. It receives a bounded part of the graph and the source lines those facts point to, and nothing else.
  • It answers in JSON that is validated against a schema. Free text is never parsed.
  • Every statement must cite evidence it was given. A validator checks each citation and drops any statement that fails. A dropped statement is never shown as a fact.
  • The model never writes queries. It chooses from a closed set of query templates, with candidate entities found without it.
  • Summaries and rules the model writes enter your experts' review queue as pending, with the model, prompt version and input recorded.
  • Answers can be composed with no model at all. The answer on the home page was: its composer is deterministic.
From a question to a cited answerYour questionIn plain languageQuery templateChosen from a closed setBounded evidenceA subgraph and its source linesComposerWithout a model, or a local modelCitation validatorDrops every uncited statementCited answerEach claim links to its lines

Confidence and unknowns

Every fact and link carries a confidence that says how it was established, and every citation shows it.

Confidence by source
SourceConfidence
Parser structural fact0.95
Resolver, unique match0.90
Resolver, heuristic match0.60
Resolver, ambiguous match0.30
Model output0.80 at most
Expert confirmation or correction1.00

What Telikos cannot see

Telikos records every place where the estate refers to something it cannot find or resolve, why, and which artifact would close the gap. The list is ranked by how central the affected part of the estate is and how doubtful the item is, and it says which artifacts to ask for first. Here are real entries from a claims estate.

Unknowns from a claims estate
KindSubjectFound inSeverityWhat would close it
dynamic call unresolvedWS-EXIT-PGMcobol/CLM0200.cbl:138WarningRun-time parameters (PARM or SYSIN) for the calling job step
missing copybookCLMMISScobol/CLMOLD.cbl:19WarningCopybook CLMMISS
missing programCLMSECcobol/CLMINQ.cbl:41WarningSource for program CLMSEC
unresolved symbolicREGIONjcl/CLMADHOC.jcl:10WarningThe scheduler or submission JCL that supplies this symbolic
orphan programCLMORPHcobol/CLMORPH.cbl:2WarningScheduler definitions or operator procedures that run it
dataset no producerACME.PROD.CLAIMS.INPUTNo single line: the dataset as a wholeInfoThe job or system that creates this dataset

6 of the 16 unknowns Telikos recorded for this estate. The last column is the resolver's suggestion for each kind of gap.

When the model is wrong

Your experts can confirm, reject or correct any fact, add a link the code cannot show, such as a dynamic call or a manual step, and leave notes.

A confirmation sets confidence to 1.00. A rejected fact disappears from every answer and map but is kept for the audit trail. A correction is stored beside the original and is not overwritten when the estate is ingested again. Every annotation is written to the audit log.

Re-ingestion

Each ingestion run records when every fact was first seen, last seen and removed. Removed facts are marked, not deleted. Every artifact version is kept, addressed by its content hash, so a citation always opens the lines it was made from.

When a run removes something an expert annotated, the annotation is flagged in the review queue instead of being lost.

A side-by-side comparison of two runs, with each change explained from the source diff, is planned and is not in the current version.

What Telikos is not

  • Not a translatorIt does not rewrite COBOL into Java or anything else. It explains what you have.
  • Not a general assistant over raw filesAnswers come from parsed facts and must cite them. Nothing is answered from a model's memory.
  • Not a production toolIt reads source artifacts only. It needs no production data and no write access to anything.
  • Not SaaSAll processing and storage stay inside your boundary, on a host you control.

See it on your own code

A pilot runs this pipeline on one flow you choose, inside your network, in three weeks.