Two complementary systems for tracking issues and accumulating context during workflow execution
When a unified workflow runs its verification-agentic loop, the runner captures two kinds of structured data: findings and knowledge entries. They serve different audiences and have different lifecycles, but work together to make each iteration smarter than the last.
In short: Findings are for you (the user) to track issues. Knowledge is for the AI to learn from past iterations. Both are visible in the Summary page after a workflow completes.
Structured issue tracker with lifecycle management
Cross-iteration context for smarter retries
Findings are structured issues detected during workflow execution. They work like a built-in issue tracker — each finding has a category, severity, and lifecycle status.
The AI emits findings using special markers in its output:
[FINDING:code_bug:high]
Title: Null pointer in login handler
Description: The user object is not checked
for null before accessing .email
File: src/auth/login.ts
Line: 42
[/FINDING]Findings can also be marked as wont_fix, deferred, or needs_input (waiting for your decision).
Each finding has a signature hash computed from its category, title, and code location. If the AI reports the same finding across multiple iterations or sessions, it won't create duplicates.
Knowledge entries are the runner's memory system. They accumulate context across iterations of the verification-agentic loop so the AI doesn't repeat mistakes or lose track of what it has learned.
The runner automatically records knowledge at key points during workflow execution. You don't need to do anything to enable it.
Category: verification_feedback
Records which checks failed and why, so the AI knows exactly what to fix on the next attempt
Category: finding, root_cause, solution, observation
Parses the AI's output for [FINDING:type] markers and stores them as knowledge entries for cross-iteration context
Category: (all categories)
All unresolved knowledge entries are automatically marked as resolved since the issues they describe have been addressed
verification_feedbackWhat verification checks failed and detailed failure contextfindingA discovered issue in the codebase or configurationroot_causeAn identified root cause of a problemsolutionA fix that was attempted or appliedobservationGeneral context about execution progress or outcomeenvironmentInfrastructure issues (missing tools, disk space, permissions)On iteration 2 and beyond, the runner builds a Previous Iteration Context section from accumulated knowledge and injects it into the AI's prompt. This includes:
Findings and knowledge are complementary. The same information can exist in both systems, serving different purposes:
The AI identifies a null pointer bug and outputs a [FINDING:code_bug:high] marker
A finding is created in the Findings tab with status "detected" — you can see it, filter it, and track its resolution
A knowledge entry is also created with category 'finding' — this feeds into the AI's context on the next iteration
When verification runs again and fails, the failure details are recorded as verification_feedback knowledge
On iteration 2, the AI receives all of this as context — it knows what it found, what it tried, and what still fails
When verification finally passes, all knowledge entries are marked as resolved
Shows all findings for a task run, with filters for category, severity, and status. Available in the task run detail view.
Summary page > Findings tabShows knowledge entries grouped by iteration, with category labels and resolution status. Appears in the Summary page after workflow completion.
Summary page > Knowledge tabQuery findings and knowledge programmatically via the runner's HTTP API for integration with external tools.
http://localhost:9876/task-runs/{id}/knowledgeBoth findings and knowledge entries can be queried via the runner's HTTP API:
/task-runs/{id}/knowledgeAll knowledge entries for a task run
/task-runs/{id}/knowledge?category=findingOnly findings/bugs from knowledge
/task-runs/{id}/knowledge?unresolved_only=trueOnly unresolved knowledge entries
| Aspect | Findings | Knowledge |
|---|---|---|
| Primary audience | You (the user) | The AI agent |
| Purpose | Issue tracking with lifecycle | Cross-iteration context propagation |
| Created by | Parsed from AI output markers | Recorded automatically by runner |
| Status lifecycle | detected > in_progress > resolved / wont_fix | Unresolved or resolved (binary) |
| Deduplication | Yes (signature hash) | No |
| User interaction | Supports needs_input / user_response | No user interaction |
| Iteration tracking | Session-level only | Explicit iteration field |
| Feeds back to AI | Included in iteration context | Primary source of iteration context |
| Auto-resolved | No | Yes, when verification passes |
| Database table | task_run_findings | task_knowledge |