From Observations to Bug Reports
How Certyn's observation pipeline turns exploratory findings into verified, actionable bug reports with evidence.
When Certyn's exploratory agent navigates your app, it doesn't just look for crashes. It notices things — a button that doesn't respond, a date that formats oddly, a page that takes too long to load. These are observations: the raw material that becomes your bug backlog.
What Is an Observation?
An observation is a recorded finding from an agent session. It's not necessarily a bug — it's something worth noting. The agent saw something and thought: "this seems off."
Each observation includes:
- Title — what was observed ("Save button doesn't respond after form validation error")
- Description — detailed context about what happened
- Coverage area — which part of the app this relates to
- Screenshots — visual evidence captured during the session
- Source execution — link to the full agent session
The Observation Pipeline
Observations follow a clear path from discovery to resolution:
1. Discovery
During an exploratory or testing session, the agent records observations as it navigates. An exploration of the settings page might produce:
- "Dark mode toggle doesn't persist after refresh"
- "Email field accepts invalid format without error"
- "Profile image upload shows no progress indicator"
2. Automatic verification
When an observation looks like a potential bug, Certyn automatically spawns a bug reproducer agent. This separate agent attempts to reproduce the issue from scratch, providing an independent verification.
3. Review
Observations land in your dashboard for review. Each one shows:
- What the agent found
- Whether it was reproduced
- Screenshots and session links
- The coverage area it affects
4. Promotion
Observations can be promoted in two directions:
- To a bug/issue — when the finding is a confirmed defect, promote it to a ticket with all evidence attached
- To a wiki entry — when the finding documents expected behavior or a known pattern, capture it as documentation
5. Resolution
Once promoted to an issue, the normal issue lifecycle takes over: assign, fix, retest, close.
Observation Status
| Status | Meaning |
|---|---|
| Active | Current finding, awaiting review |
| Superseded | Replaced by a newer, more accurate observation |
| Archived | No longer relevant |
Coverage Tracking
Observations contribute to your project's coverage map. Each observation is tagged with:
- Coverage area — the feature or module (e.g., "Authentication", "Billing")
- Coverage intent — what aspect was tested (e.g., "form validation", "error handling")
This helps you understand which parts of your app have been explored and where gaps remain.
Managing Observations
In the dashboard
The observations page shows all findings with filters for status, area, and review state. Click into any observation to see full details and the agent session that produced it.
With the CLI
# List recent observations
certyn observations list --project my-app
# Search for specific findings
certyn observations search --project my-app "checkout"
# Promote to a ticket
certyn observations promote-to-ticket --project my-app <observation-id>
Tips
- Review observations weekly — they're your early warning system for quality issues
- Not every observation is a bug — some are UX suggestions, performance notes, or documentation gaps
- Use coverage areas to identify which parts of your app need more exploration
- Observations from the bug reproducer (marked "reproduced") should be prioritized for promotion to issues
- The observation pipeline is most valuable when running exploratory sessions regularly — daily or after each deploy
- Combine with the CLI to quickly triage:
certyn observations list --project my-appgives you the queue
