docs: add Legend Boats catalogue scraping notes - #591
Conversation
✅ Skill review passedReviewed 1 file(s) — no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2653a3241e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -0,0 +1,58 @@ | |||
| # Legend Boats catalogue and pricing | |||
There was a problem hiding this comment.
Move the Legend skill into the agent workspace
With BH_DOMAIN_SKILLS=1, the runtime lookup in src/browser_harness/helpers.py:134-135 searches only $BH_AGENT_WORKSPACE/domain-skills/<host>, so a guide added under the repository-root domain-skills/ directory is never returned when an agent visits legendboats.com. Move this file to agent-workspace/domain-skills/legendboats/catalog-pricing.md so the feature can discover and use it.
AGENTS.md reference: AGENTS.md:L26-L28
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
2 issues found across 1 file
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="domain-skills/legendboats/catalog-pricing.md">
<violation number="1" location="domain-skills/legendboats/catalog-pricing.md:1">
P3: This skill was added to the repository-root `domain-skills/` folder, but every other domain-skill example (amazon, github, linkedin, etc.) lives under `agent-workspace/domain-skills/`, and README.md states contributed skills go into "the repo's `agent-workspace/domain-skills/` examples". File it under `agent-workspace/domain-skills/legendboats/` so it is discoverable alongside the other examples and picked up by the expected launcher/loader paths.</violation>
<violation number="2" location="domain-skills/legendboats/catalog-pricing.md:47">
P3: In the builder fallback instructions, "preferring an available variant" is ambiguous: the doc defines both `FeaturedInBoatBuilder` and `IsAvailableForBoatBuilder` as relevant fields but only filters on `FeaturedInBoatBuilder == true`, so it doesn't say what makes a variant "available" when deduplicating. An agent could pick a featured-but-not-available colour variant as the preferred record. Consider making the preference explicit, e.g. "preferring the variant where `IsAvailableForBoatBuilder == true".</violation>
</file>
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
| - `FeaturedInBoatBuilder` and `IsAvailableForBoatBuilder` | ||
| - `StandardMotorId` and `StandardTrailerId` | ||
|
|
||
| Filter records to the model year shown in the active main-menu card and to `FeaturedInBoatBuilder == true`. Colour variants share a public model name; deduplicate by `(Series, PublicName, ModelYear)`, preferring an available variant. Use `RetailPrice` for the current base display. Do not interpret a zero `RetailSpecialPrice` plus a full-price `Savings` value as a free boat; those fields are not reliable enough to apply a promotion automatically. |
There was a problem hiding this comment.
P3: In the builder fallback instructions, "preferring an available variant" is ambiguous: the doc defines both FeaturedInBoatBuilder and IsAvailableForBoatBuilder as relevant fields but only filters on FeaturedInBoatBuilder == true, so it doesn't say what makes a variant "available" when deduplicating. An agent could pick a featured-but-not-available colour variant as the preferred record. Consider making the preference explicit, e.g. "preferring the variant where `IsAvailableForBoatBuilder == true".
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At domain-skills/legendboats/catalog-pricing.md, line 47:
<comment>In the builder fallback instructions, "preferring an available variant" is ambiguous: the doc defines both `FeaturedInBoatBuilder` and `IsAvailableForBoatBuilder` as relevant fields but only filters on `FeaturedInBoatBuilder == true`, so it doesn't say what makes a variant "available" when deduplicating. An agent could pick a featured-but-not-available colour variant as the preferred record. Consider making the preference explicit, e.g. "preferring the variant where `IsAvailableForBoatBuilder == true".</comment>
<file context>
@@ -0,0 +1,58 @@
+- `FeaturedInBoatBuilder` and `IsAvailableForBoatBuilder`
+- `StandardMotorId` and `StandardTrailerId`
+
+Filter records to the model year shown in the active main-menu card and to `FeaturedInBoatBuilder == true`. Colour variants share a public model name; deduplicate by `(Series, PublicName, ModelYear)`, preferring an available variant. Use `RetailPrice` for the current base display. Do not interpret a zero `RetailSpecialPrice` plus a full-price `Savings` value as a free boat; those fields are not reliable enough to apply a promotion automatically.
+
+## Reliability traps
</file context>
| Filter records to the model year shown in the active main-menu card and to `FeaturedInBoatBuilder == true`. Colour variants share a public model name; deduplicate by `(Series, PublicName, ModelYear)`, preferring an available variant. Use `RetailPrice` for the current base display. Do not interpret a zero `RetailSpecialPrice` plus a full-price `Savings` value as a free boat; those fields are not reliable enough to apply a promotion automatically. | |
| Colour variants share a public model name; deduplicate by `(Series, PublicName, ModelYear)`, preferring a variant where `IsAvailableForBoatBuilder == true`. |
| @@ -0,0 +1,58 @@ | |||
| # Legend Boats catalogue and pricing | |||
There was a problem hiding this comment.
P3: This skill was added to the repository-root domain-skills/ folder, but every other domain-skill example (amazon, github, linkedin, etc.) lives under agent-workspace/domain-skills/, and README.md states contributed skills go into "the repo's agent-workspace/domain-skills/ examples". File it under agent-workspace/domain-skills/legendboats/ so it is discoverable alongside the other examples and picked up by the expected launcher/loader paths.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At domain-skills/legendboats/catalog-pricing.md, line 1:
<comment>This skill was added to the repository-root `domain-skills/` folder, but every other domain-skill example (amazon, github, linkedin, etc.) lives under `agent-workspace/domain-skills/`, and README.md states contributed skills go into "the repo's `agent-workspace/domain-skills/` examples". File it under `agent-workspace/domain-skills/legendboats/` so it is discoverable alongside the other examples and picked up by the expected launcher/loader paths.</comment>
<file context>
@@ -0,0 +1,58 @@
+# Legend Boats catalogue and pricing
+
+`https://www.legendboats.com/` is a WordPress catalogue with a separate Next.js builder at `https://build.legendboats.com/`. Public model years, prices, packages, and promotions are volatile; fetch them live and preserve the exact URL and retrieval time.
</file context>
Adds a domain guide for Legend Boats current-series discovery, exact model pricing, Next.js builder fallback, and known reliability traps. The guide records the non-clearance menu-tab logic, total-package motor price interpretation, the XT/Uttern fallback path, and the unreliable boat-model sitemap.
Summary by cubic
Adds a scraping guide for
legendboats.comcatalog and pricing. It covers detecting active series from menu tabs, parsing exact model and motor prices (Ontario All‑In), usingbuild.legendboats.comas a safe fallback, and avoiding unreliable discovery paths like the boat-model sitemap.Written for commit 2653a32. Summary will update on new commits.