logs/2026-06-27-scout-acquisition-implementation.md
Scout acquisition implementation log
Date: 2026-06-27
Status: Released first shared-acquisition slice as Scout 0.1.1 on live Chowmes Scout.
Decision
Do not create /ci/scrape.
Competitive Intelligence should consume Scout through the shared /scrape primitive. CI-specific needs are handled through opt-in request fields and nested acquisition metadata. This prevents endpoint sprawl such as /ci/scrape, /product/scrape, /jobs/scrape, and keeps Scout as infrastructure rather than a collection of bespoke consumer routes.
Implemented
On live Scout under /opt/prism/scout:
- Bumped Scout from
0.1.0to0.1.1. - Updated Scout source documentation:
README.mdCHANGELOG.mdscout/skill/scout.md- Removed the exploratory
/ci/scraperoute. - Added optional
/scraperequest fields: quality_analysiscleanupexpected_markersrecommend_collectorsource_id- Added response fields:
raw_markdownclean_markdownacquisition- Added
AcquisitionMetadatawith schema aliasacquisition_metadata.v1. - Added explainable quality scoring.
- Added expected marker validation.
- Added collector recommendations.
- Added feed-like URL detection that recommends
rss_feed. - Added
scout benchmarkCLI artifact harness.
Verification
Release verification:
- Rebuilt and restarted Scout with
docker compose -f docker/docker-compose.yml up -d --build scout. - Build produced a
scout-0.1.1wheel. /healthreturnedstatus: ok, Scout0.1.1, Crawl4AI0.9.0.- Container stayed healthy on
127.0.0.1:8421.
Live endpoint checks:
- Default
/scrapesucceeded and stayed backward-compatible: acquisition: nullraw_markdown: ""clean_markdown: ""- Opt-in
/scrapereturned acquisition metadata with: schema: acquisition_metadata.v1content_hashquality_scorequality_reasonsmarkers_foundrecommended_collectorrecommended_collector_reason/ci/scrapereturned404.
Benchmark harness check:
scout benchmark https://example.com --output-dir /tmp/scout-benchmark-smoke --no-js --expected-marker "Example Domain"created:benchmark.jsoncomparison.mddirect_http.txtscout_raw.mdscout_clean.mdsamples/- The smoke benchmark recommended
direct_httpforexample.combecause direct HTTP was faster than Scout on a simple static page. - Release benchmark artifacts were also verified at
/tmp/scout-release-011-benchmark. - Release benchmark result:
- direct HTTP:
30ms - Scout scrape:
1239ms - recommendation:
direct_http - reason:
faster_static_page
Unit test verification:
66 passed, 1 warning in 3.02s
The warning is a FastAPI/Starlette test client deprecation warning, not a Scout behavior failure.
Deferred
- Full six-source benchmark against Google AI blog, Constructor, Coveo, Bloomreach, OpenAI RSS, and a static page.
- CI runner integration.
- Source health records storing collector used and quality score.
- Native Crawl4AI cleanup defaults.
Native Crawl4AI popup/overlay cleanup was deliberately deferred because live exploration showed broad native cleanup could create unacceptable latency. It should be reintroduced only after benchmarked source-by-source validation.
Closeout
Scout source work is closed for this slice. Do not continue adding Scout features merely because they are possible. The next Competitive Intelligence work should consume Scout 0.1.1 through the shared /scrape profile and benchmark harness, then decide source-by-source whether to use direct HTTP, RSS/feed parsing, Scout browser acquisition, or manual-only handling.