finding
npx machina-cli add skill Crawlio-app/crawlio-plugin/finding --openclawfinding
Create and query curated findings in Crawlio's observation log. Findings are agent-created insights backed by observation evidence.
When to Use
Use this skill when the user wants to:
- Record an insight or issue discovered during analysis
- Create an evidence-backed finding that persists across sessions
- Review previously created findings for a site
Creating Findings
Findings are the agent's judgment layer on top of raw observations. A good finding:
- Has a clear, descriptive title
- References specific observation IDs as evidence
- Includes a synthesis explaining the pattern or issue
Workflow
- Query observations to identify patterns:
get_observations({ host: "example.com", source: "extension", limit: 50 })
-
Identify the pattern — look for recurring issues, framework signals, error patterns, or notable behaviors.
-
Create the finding with evidence:
create_finding({
title: "Mixed content: HTTP images on HTTPS page",
url: "https://example.com",
evidence: ["obs_a3f7b2c1", "obs_b4e8c3d2"],
synthesis: "Homepage loads 3 images over HTTP despite serving over HTTPS. Network observations show requests to http://cdn.example.com/img/ which should use HTTPS. This triggers mixed content warnings in Chrome and may cause images to be blocked in strict mode."
})
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Short, descriptive title |
url | string | No | URL this finding relates to |
evidence | [string] | No | Array of observation IDs (obs_xxx) |
synthesis | string | No | Detailed explanation |
Finding Quality Checklist
- Title: Is it specific? "Mixed content on homepage" > "Issue found"
- Evidence: Do the observation IDs actually support the claim?
- Synthesis: Does it explain why this matters, not just what was observed?
- URL: Is it scoped to the right page or left empty for site-wide findings?
Querying Findings
All Findings
get_findings({})
Findings for a Specific Host
get_findings({ host: "example.com" })
Recent Findings
get_findings({ limit: 10 })
Finding Categories
When creating findings, consider these common categories:
| Category | Example Title |
|---|---|
| Performance | "Render-blocking scripts delay FCP by 2.3s" |
| Security | "Mixed content: HTTP resources on HTTPS page" |
| SEO | "Missing meta descriptions on 12 pages" |
| Framework | "Next.js App Router with ISR detected" |
| Errors | "3 JavaScript errors on product pages" |
| Structure | "Orphaned pages not linked from navigation" |
| Accessibility | "Missing alt attributes on hero images" |
Tips
- Create findings as you analyze, not all at the end — they persist across sessions
- Reference multiple observation IDs when a finding draws from several data points
- Use synthesis to explain the impact, not just restate the observation
- Findings with evidence chains are much more useful than findings without
Source
git clone https://github.com/Crawlio-app/crawlio-plugin/blob/main/skills/finding/SKILL.mdView on GitHub Overview
Findings are the agent's judgment layer on top of raw observations, backed by evidence chains. They record insights and issues discovered during analysis, persisting across sessions for easy review of site-wide patterns.
How This Skill Works
First, query observations to identify patterns. Then create a finding with a clear title, optional URL, evidence IDs, and a synthesis explaining the pattern. Findings reference observation IDs as evidence and form an evidence chain for traceability.
When to Use It
- Record an insight or issue discovered during analysis
- Create an evidence-backed finding that persists across sessions
- Review findings created for a specific site
- Show or list findings for a host or subset (e.g., by limit)
- Evaluate findings by collecting multiple observation IDs to support synthesis
Quick Start
- Step 1: get_observations({ host: "example.com", source: "extension", limit: 50 })
- Step 2: create_finding({ title: "Mixed content: HTTP images on HTTPS page", url: "https://example.com", evidence: ["obs_a3f7b2c1", "obs_b4e8c3d2"], synthesis: "Homepage loads 3 images over HTTP despite HTTPS, triggering mixed content warnings." })
- Step 3: get_findings({ host: "example.com" })
Best Practices
- Use a clear, descriptive title
- Reference multiple observation IDs as evidence when possible
- Provide a synthesis explaining why the pattern matters
- Scope the URL to the relevant page or leave empty for site-wide findings
- Persist findings across sessions and review them regularly
Example Use Cases
- Mixed content: HTTP images on HTTPS page
- Render-blocking scripts delay FCP by 2.3s
- Missing meta descriptions on 12 pages
- 3 JavaScript errors on product pages
- Orphaned pages not linked from navigation