Tarsius Capture Knowledge That Was Never Written Down
A tacit-knowledge capture & persistence layer for IBM Bob 2.0. When senior engineers retire, they take undocumented business rules with them. Tarsius captures that knowledge before it's gone — and persists it so AI never forgets.
The Knowledge Disappearance Crisis
Critical operational knowledge is vanishing from IBM i teams — and existing AI cannot recover what was never written down
The Retirement Wave
72% of RPG developers are over 50 (Fortra 2026). Skills gap = #1 concern (69%), overtaking cybersecurity for the first time in 9 years (Fortra 2026). When they leave, they don't just take syntax knowledge — they take undocumented exceptions, workarounds, and gotchas that were never written anywhere.
The Written-Word Blind Spot
IBM Bob reads everything written: repository-wide context over source code, document understanding over specs. But all of it requires knowledge to be already written down. When a critical rule exists only in someone's head, even the best agent silently fails — generating plausible code that violates a rule no one remembered to state.
The Knowledge Gap Is Permanent
Once a senior developer retires without a structured handoff, that knowledge gap becomes permanent and unrecoverable. No future AI tool, however capable, can extract knowledge from a document that was never written. 30-50% cost overruns are common when teams must reverse-engineer intent from code alone.
End-to-End Knowledge Capture & Persistence Architecture
How Tarsius integrates with IBM Bob 2.0 to capture tacit knowledge and persist it as a binding contract that constrains all future code generation
%%{init: {'theme': 'dark', 'themeVariables': { 'primaryColor': '#1a2440', 'primaryTextColor': '#e8edf5', 'primaryBorderColor': '#2a3560', 'lineColor': '#4f8cff', 'secondaryColor': '#0a0e1a', 'tertiaryColor': '#111827', 'clusterBkg': '#0d1324', 'clusterBorder': '#2a3560' }}}%%
flowchart TD
subgraph PHASE1["PHASE 1: Capture — Structured Interview (Legacy Analyzer)"]
direction LR
A[Legacy RPG Code + Specs] --> B[Subagent A: Rule Extractor]
A --> C[Subagent B: Tacit Knowledge Interview]
B -->|MCP: write_finding| D[(tarsius-bri.json)]
C -->|Surfaces undocumented exceptions| D
D --> E[Deterministic Risk Triage 🔴🟡🟢]
end
subgraph PHASE2["PHASE 2: Persist & Reinforce — Human Knowledge Gate"]
direction LR
E --> F[React Dashboard Visual Risk Map]
F -->|Human Approve 🔴 & 🟡| G[MCP: mark_approved]
G --> H[Auto-Generate RISK-CONTEXT.md + Decision History]
end
subgraph PHASE3["PHASE 3: Reinforce & Learn — Constrained Generation + Verification"]
direction LR
H -->|Lifecycle Hooks Re-inject Rules| I[Subagent C: Code Transformer]
I --> J[Generated Code]
J --> K[Subagent D: Confidence Verifier]
K -->|MCP: verify_equivalence| L{BETH: BER?}
L -->|< 100%: Deviation| M[Human Review or Auto-Remediate]
M --> I
L -->|100% — 12/12 vectors| N[Commit & Record Decision]
end
style PHASE1 fill:#0d1324,stroke:#2a3560,color:#e8edf5
style PHASE2 fill:#0d1f1a,stroke:#34d399,color:#34d399
style PHASE3 fill:#1a1424,stroke:#a78bfa,color:#a78bfa
Structured Interview & Rule Extraction
Subagents scan RPG code and attached spec documents. The interview surfaces implicit rules Bob's static analysis cannot detect — undocumented exceptions, workarounds, and gotchas that exist only in a senior engineer's memory.
Knowledge Persistence & Binding Contract
Approved rules are written to a versioned rule ledger (BRI) with immutable audit trail. Tarsius generates RISK-CONTEXT.md — a binding contract that constrains all future AI generation.
Context Persistence & Verification
Lifecycle hooks re-inject approved rules before every code generation task — even across session boundaries. BETH catches deviations vector-by-vector. Gotcha memory accumulates.
4 Specialized Subagent Roles Native to IBM Bob 2.0
Capture, persist, reinforce, and learn — orchestrated via Bob's native subagent system
Rule Extractor (Capture)
Scans legacy RPG/COBOL code, extracts implicit & explicit rules, surfaces undocumented exceptions, and writes structured records into BRI JSON via write_finding().
Tacit Knowledge Interviewer
Guides senior engineer through structured review, surfaces rules Bob cannot detect. Compares docQuote vs codeLocation to flag contradictions.
Code Transformer (Reinforce)
Generates code strictly constrained by approved rules in RISK-CONTEXT.md. Lifecycle hooks ensure rules persist across sessions.
BETH Verifier (Verify)
Runs the BETH differential oracle: 12 ORDVAL vectors against the SME-approved rules. Deviations surface per vector. Decision history + gotcha memory accumulate for future sessions.
Knowledge Persistence Layer
How approved rules persist across sessions and constrain future AI generation via RISK-CONTEXT.md
{
"id": "BR-DISC-EXCEPTION",
"title": "Suspended accounts may submit DISC orders",
"triage": "🔴 must-review",
"approvalStatus": "approved",
"contract": {
"precondition": "status == 'SUSPENDED' && type == 'DISC'",
"expectedBehavior": "ALLOW_ORDER",
"forbiddenBehavior": "BLOCK_ORDER"
}
}
### 🟢 Approved Rule: BR-DISC-EXCEPTION - Description: Suspended accounts may submit DISC (CS-4471). - Location: ORDVAL.rpgle (Lines 58-66) - FORMAL INVARIANT CONTRACT: - WHEN: account.status == 'SUSPENDED' AND order.type == 'DISC' - MUST: Return ALLOW - NEVER: Return BLOCK
Interactive Demo Scenario: 2 Aha Moments
The 3-minute pitch flow proving contradiction detection and AST self-healing
Tacit Knowledge Surfaces a Hidden Exception
The written spec states: "Suspended accounts cannot submit orders". But legacy RPG code has a 2010 legal exception (CS-4471) that was never documented. This rule existed only in a senior engineer's memory.
Persisted Knowledge Constrains Future AI
In a later session — after context compaction — Bob's Transformer generates code. Lifecycle hooks re-inject the approved DISC exception rule. When AI deviates, BETH catches it — vector by vector.
Research Grounding Matrix
18 peer-reviewed papers and empirical surveys grounding every design decision in Tarsius
| # | Finding & Issue | Research Source | How Tarsius Addresses It |
|---|---|---|---|
| 1 | 0–19% Behavioral Equivalence Rate | AgentModernize (arXiv:2605.17535) | PRE-generation verification: approve rules before code synthesis |
| 2 | Bottleneck is generation, not extraction — BSG captures 91.2% of rules, BER only 0–19% | AgentModernize §V-E (arXiv:2605.17535) | Operationalizes the paper's "trust boundary" as a human-in-the-loop verification layer |
| 3 | 29% trust, 66% verification tax | Stack Overflow 2025, METR 2025 | Shifts verification from post-generation debugging to 5-min pre-gen approval |
| 4 | 84% time spent on non-coding friction | IDC 2025 (via Atlassian DevEx 2025) | Automates rule discovery & dependency mapping to remove friction |
| 5 | LLMs fail at self-review (preservation drift) | Articulate but Wrong (arXiv:2605.21537) | Separates Transformer from Verifier using deterministic AST diff |
| 6 | Differential fuzzing catches 19-35% non-equiv. | arXiv:2602.15761 | AST structural diff provides stronger verification than random fuzzing |
| 7 | Context Rot degrades agent performance | The Ralph Loop (Geoffrey Litt) | Fresh-context subagent retries over persistent external state files |
| 8 | Evaluator-Optimizer pattern necessity | Anthropic Engineering 2025 | Subagent D AST Verifier acts as Evaluator gate for Subagent C |
| 9 | Shift to Loop Engineering | Addy Osmani 2026 | Designs autonomous feedback loops around LLM execution |
| 10 | IBM i skills gap #1 concern > security | Fortra IBM i Survey 2026 | BRI preserves business rules as git-diffable knowledge base |
| 11 | >70% of mainframe exit projects (2026) will fail due to overestimation of gen AI | Gartner Press Release (June 2026) | Catches the exact failure mode Gartner flags — implicit rules & contradictions before code generation |
| 12 | TSB Bank 2018 (£48.65M fine) | Bank of England / FCA Report | Detects the class of invisible-rule blind-spots regulators cited in a real-world bank disaster |
| 13 | Morgan Stanley COBOL AI initiative | eFinancialCareers 2026 | Validates extraction approach; adds missing PRE-generation verification |