Product Presentation Asset Skill
Use this skill to build product-video input packs and readiness-gated assembly instructions for UGC-style content production.
Pack Contents
artifacts/asset-pack-assembly.md
artifacts/ugc-creative-guide.md
assets/templates/manifest.schema.json
assets/templates/copy.md
assets/templates/features.md
assets/templates/video-assembly.md
assets/templates/user-actions.md
assets/templates/ugc-concepts.md
assets/templates/shot-list.md
assets/templates/claims-evidence-map.md
scripts/collect-product.sh
scripts/capture-screenshots.sh
scripts/download-images.sh
scripts/write-manifest.sh
scripts/render-video-brief.sh
scripts/validate-skill-assets.sh
- Shared robustness matrix:
../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md
Fast Start
./skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh
./skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh "https://example.com/product/123"
./skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh "https://example.com/product/123" /tmp/product-video-pack
./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh /path/to/bundle/manifest.json /tmp/product-video-brief
Use the bundle manifest.json path printed by write-manifest.sh; required sidecars must be adjacent to that manifest.
Supporting Surfaces
- Use browser replay (
screencast-start / screencast-stop) when a product flow needs temporal UI proof before you decide which screenshots to keep.
- Use desktop observation only for read-only evidence around external windows or OS-owned dialogs that affected capture.
- Use
--challenge-automation-mode off|browser|browser_with_helper for bounded browser-scoped computer use on provider or auth walls; it is not a desktop agent.
Final Assets Produced
Expected output pack always includes:
manifest.json with canonical product metadata and manifest.readiness.presentation plus manifest.readiness.productVideo
presentation-readiness.json with readiness status, warnings, reason codes, selected-record identity, candidate summaries, promoted claims, rejected candidate summaries, evidence references, and compact counts
product.json and pricing.json; product.json.presentationReadiness and product.json.productVideoReadiness mirror the production gates
copy.md and features.md, which are production input only when readiness allows it
raw/source-record.json for auditability and raw evidence preservation
Workflow JSON output also exposes product.presentationReadiness, product.productVideoReadiness, meta.presentationReadiness, and meta.productVideoReadiness so callers can gate automation without opening files first. CLI completion text includes both readiness statuses when available, so transport success is not production authority.
When visual capture succeeds, the pack may also include:
images/ for product stills
screenshots/ for page context and UI proof
Metadata-first packs with 0 images and 0 screenshots are valid intermediate outputs only when readiness is reviewed. They usually produce partial readiness and need additional visual sourcing before final video publication.
The render-video-brief.sh helper adds:
video-brief.md
shot-list.md
ugc-brief.md
claims-evidence-map.md
Helper behavior:
pass: generates normal production brief files, still requiring human evidence and visual review.
partial: generates gated brief files with warnings and reason codes. Treat copy and features as constrained draft input.
fail: exits nonzero after writing warning-only diagnostics. Do not label copy, features, or product claims as verified production input.
What the User Should Do
- Pick product URL or product name.
- Before daemon-backed
product-video run workflows, run opendevbrowser status --daemon --output-format json and continue only when data.fingerprintCurrent === true.
- Run collection workflow and confirm output pack path.
- Review
presentation-readiness.json, manifest.readiness.presentation, manifest.readiness.productVideo, product.json.presentationReadiness, product.json.productVideoReadiness, returned meta.presentationReadiness, and returned meta.productVideoReadiness when available.
- Confirm raw evidence remains preserved in
raw/source-record.json, but do not treat raw marketplace text as verified production copy.
- Run
./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh only after readiness review.
Canonical helper path: ./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh.
- If readiness is
partial, resolve warnings and reason codes before final publication.
- If readiness is
fail, stop production use and recollect or repair evidence before briefing creators.
- If no visuals were captured, source or capture visuals before handing the brief to the editor or creator pipeline.
Parallel Multitab Alignment
- Apply shared concurrency policy from
../opendevbrowser-best-practices/SKILL.md ("Parallel Operations").
- Validate product-video workflow browser-mode sweeps with
auto, extension, and managed when browser capture is involved.
- For lower-level attach parity, separately validate direct connect or CDP attach sessions where asset capture uses browser action tools.
- Keep one session per worker for concurrent product-page captures; avoid target-switch thrash in one session.
How to Combine the Assets
- Use
manifest.json plus presentation-readiness.json as the readiness source of truth.
- Use
copy.md and features.md as production inputs only when readiness is pass and claims map to evidence.
- For
partial, keep the brief gated and carry reason codes into video-brief.md, shot-list.md, and claims-evidence-map.md.
- For
fail, use helper output as diagnostics only and do not brief production.
- Pair each claim with supporting asset (
images or screenshots) when available.
- If the pack is metadata-first, source visuals before final edit and update
shot-list.md plus claims-evidence-map.md with the new asset paths.
- Sequence assets using
shot-list.md.
- Validate pricing and availability freshness before publishing.
- Validate every claim appears in
claims-evidence-map.md before publish.
Production Rules
success:true, ok:true, or an artifact path means the workflow wrote files. It does not by itself mean production-ready.
presentation-readiness.json.summary.status, manifest.readiness.presentation.status, and manifest.readiness.productVideo.status are the production gates.
- Raw evidence is preserved for audit and debugging. It must not be copied into creator scripts unless promoted through readiness-backed claims.
- Marketplace chrome, site navigation, catalog labels, seller language, shipping, returns, condition, and unsupported superlatives are rejected unless they are explicitly promoted as evidence-backed product claims.
- Keep partial and fail reason codes visible in every handoff so downstream editors know what still needs review.
Robustness Coverage (Known-Issue Matrix)
Matrix source: ../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md
ISSUE-10: normalized price/currency fields for claims
ISSUE-11: anchor discount context for pricing claims
ISSUE-12: stale price and unsupported-claim prevention via evidence mapping
UGC Key Concepts
- Hook in first 2 seconds with user problem + payoff.
- Show real product usage context before polished close-ups.
- Keep claims concrete and verifiable from captured assets.
- Use one CTA and one primary value proposition per short clip.
- Preserve authenticity: avoid over-produced voice/style mismatches.
References
1---2name: opendevbrowser-product-presentation-asset3description: Collects product metadata, copy, and optional visual assets into a local folder pack for video workflows.4---56# Product Presentation Asset Skill78Use this skill to build product-video input packs and readiness-gated assembly instructions for UGC-style content production.910## Pack Contents1112- `artifacts/asset-pack-assembly.md`13- `artifacts/ugc-creative-guide.md`14- `assets/templates/manifest.schema.json`15- `assets/templates/copy.md`16- `assets/templates/features.md`17- `assets/templates/video-assembly.md`18- `assets/templates/user-actions.md`19- `assets/templates/ugc-concepts.md`20- `assets/templates/shot-list.md`21- `assets/templates/claims-evidence-map.md`22- `scripts/collect-product.sh`23- `scripts/capture-screenshots.sh`24- `scripts/download-images.sh`25- `scripts/write-manifest.sh`26- `scripts/render-video-brief.sh`27- `scripts/validate-skill-assets.sh`28- Shared robustness matrix: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`2930## Fast Start3132```bash33./skills/opendevbrowser-product-presentation-asset/scripts/validate-skill-assets.sh34./skills/opendevbrowser-product-presentation-asset/scripts/collect-product.sh "https://example.com/product/123"35./skills/opendevbrowser-product-presentation-asset/scripts/write-manifest.sh "https://example.com/product/123" /tmp/product-video-pack36./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh /path/to/bundle/manifest.json /tmp/product-video-brief37```3839Use the bundle `manifest.json` path printed by `write-manifest.sh`; required sidecars must be adjacent to that manifest.4041## Supporting Surfaces4243- Use browser replay (`screencast-start` / `screencast-stop`) when a product flow needs temporal UI proof before you decide which screenshots to keep.44- Use desktop observation only for read-only evidence around external windows or OS-owned dialogs that affected capture.45- Use `--challenge-automation-mode off|browser|browser_with_helper` for bounded browser-scoped computer use on provider or auth walls; it is not a desktop agent.4647## Final Assets Produced4849Expected output pack always includes:50- `manifest.json` with canonical product metadata and `manifest.readiness.presentation` plus `manifest.readiness.productVideo`51- `presentation-readiness.json` with readiness status, warnings, reason codes, selected-record identity, candidate summaries, promoted claims, rejected candidate summaries, evidence references, and compact counts52- `product.json` and `pricing.json`; `product.json.presentationReadiness` and `product.json.productVideoReadiness` mirror the production gates53- `copy.md` and `features.md`, which are production input only when readiness allows it54- `raw/source-record.json` for auditability and raw evidence preservation5556Workflow JSON output also exposes `product.presentationReadiness`, `product.productVideoReadiness`, `meta.presentationReadiness`, and `meta.productVideoReadiness` so callers can gate automation without opening files first. CLI completion text includes both readiness statuses when available, so transport success is not production authority.5758When visual capture succeeds, the pack may also include:59- `images/` for product stills60- `screenshots/` for page context and UI proof6162Metadata-first packs with `0` images and `0` screenshots are valid intermediate outputs only when readiness is reviewed. They usually produce `partial` readiness and need additional visual sourcing before final video publication.6364The `render-video-brief.sh` helper adds:65- `video-brief.md`66- `shot-list.md`67- `ugc-brief.md`68- `claims-evidence-map.md`6970Helper behavior:71- `pass`: generates normal production brief files, still requiring human evidence and visual review.72- `partial`: generates gated brief files with warnings and reason codes. Treat copy and features as constrained draft input.73- `fail`: exits nonzero after writing warning-only diagnostics. Do not label copy, features, or product claims as verified production input.7475## What the User Should Do76771. Pick product URL or product name.782. Before daemon-backed `product-video run` workflows, run `opendevbrowser status --daemon --output-format json` and continue only when `data.fingerprintCurrent === true`.793. Run collection workflow and confirm output pack path.804. Review `presentation-readiness.json`, `manifest.readiness.presentation`, `manifest.readiness.productVideo`, `product.json.presentationReadiness`, `product.json.productVideoReadiness`, returned `meta.presentationReadiness`, and returned `meta.productVideoReadiness` when available.815. Confirm raw evidence remains preserved in `raw/source-record.json`, but do not treat raw marketplace text as verified production copy.826. Run `./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh` only after readiness review.83 Canonical helper path: `./skills/opendevbrowser-product-presentation-asset/scripts/render-video-brief.sh`.847. If readiness is `partial`, resolve warnings and reason codes before final publication.858. If readiness is `fail`, stop production use and recollect or repair evidence before briefing creators.869. If no visuals were captured, source or capture visuals before handing the brief to the editor or creator pipeline.8788## Parallel Multitab Alignment8990- Apply shared concurrency policy from `../opendevbrowser-best-practices/SKILL.md` ("Parallel Operations").91- Validate product-video workflow browser-mode sweeps with `auto`, `extension`, and `managed` when browser capture is involved.92- For lower-level attach parity, separately validate direct connect or CDP attach sessions where asset capture uses browser action tools.93- Keep one session per worker for concurrent product-page captures; avoid target-switch thrash in one session.9495## How to Combine the Assets96971. Use `manifest.json` plus `presentation-readiness.json` as the readiness source of truth.982. Use `copy.md` and `features.md` as production inputs only when readiness is `pass` and claims map to evidence.993. For `partial`, keep the brief gated and carry reason codes into `video-brief.md`, `shot-list.md`, and `claims-evidence-map.md`.1004. For `fail`, use helper output as diagnostics only and do not brief production.1015. Pair each claim with supporting asset (`images` or `screenshots`) when available.1026. If the pack is metadata-first, source visuals before final edit and update `shot-list.md` plus `claims-evidence-map.md` with the new asset paths.1037. Sequence assets using `shot-list.md`.1048. Validate pricing and availability freshness before publishing.1059. Validate every claim appears in `claims-evidence-map.md` before publish.106107## Production Rules108109- `success:true`, `ok:true`, or an artifact path means the workflow wrote files. It does not by itself mean production-ready.110- `presentation-readiness.json.summary.status`, `manifest.readiness.presentation.status`, and `manifest.readiness.productVideo.status` are the production gates.111- Raw evidence is preserved for audit and debugging. It must not be copied into creator scripts unless promoted through readiness-backed claims.112- Marketplace chrome, site navigation, catalog labels, seller language, shipping, returns, condition, and unsupported superlatives are rejected unless they are explicitly promoted as evidence-backed product claims.113- Keep partial and fail reason codes visible in every handoff so downstream editors know what still needs review.114115## Robustness Coverage (Known-Issue Matrix)116117Matrix source: `../opendevbrowser-best-practices/artifacts/browser-agent-known-issues-matrix.md`118119- `ISSUE-10`: normalized price/currency fields for claims120- `ISSUE-11`: anchor discount context for pricing claims121- `ISSUE-12`: stale price and unsupported-claim prevention via evidence mapping122123## UGC Key Concepts124125- Hook in first 2 seconds with user problem + payoff.126- Show real product usage context before polished close-ups.127- Keep claims concrete and verifiable from captured assets.128- Use one CTA and one primary value proposition per short clip.129- Preserve authenticity: avoid over-produced voice/style mismatches.130131## References132133- FTC pricing guidance (deceptive pricing): https://www.ecfr.gov/current/title-16/chapter-I/subchapter-B/part-233134- Schema.org Offer metadata: https://schema.org/Offer135- NIST unit pricing/value comparison guide: https://www.nist.gov/publications/unit-pricing-guide