DiscordChatExporter/docs/plans/2026-06-04-058-feat-documents-scrape-lock-salvage-before-plan.md
Copilot b883943e3a feat(scrape): lock gate and salvage-before on documents scrape
Add archive-root lock preflight and --salvage-before-scrape to
run-documents-scrape.sh so direct operator invocations match validation
safety and KotOR catch-up workflow.
2026-06-03 07:04:56 -05:00

1.5 KiB

title type status date origin
feat: Documents scrape lock gate and salvage-before feat active 2026-06-04 /lfg — validation/handoff expose salvage; direct run-documents-scrape.sh still lacks lock gate and --salvage-before-scrape

feat: Documents scrape lock gate and salvage-before

Summary

Add scrape lock preflight and --salvage-before-scrape to run-documents-scrape.sh so direct document scrapes match operator-validation safety and KotOR catch-up workflow.

Problem Frame

Operators often invoke documents scrape directly:

./scripts/run-documents-scrape.sh --target KotOR_discord_msgs --channel 221726893064454144

This bypasses run-operator-validation.sh lock gate. Salvage-before requires two commands today.

Requirements

ID Requirement
R1 run-documents-scrape.sh checks archive-root lock before salvage or Discord scrape
R2 Lock gate skipped when DCE_SKIP_SCRAPE_LOCK=1
R3 --salvage-before-scrape runs salvage then preflight/scrape
R4 --salvage-only, --salvage-before-scrape, and --dry-run are mutually exclusive
R5 Smokes cover lock block and salvage-before; run-all-smokes.sh passes

Implementation Units

U1. Documents scrape lock + salvage-before

Files: scripts/run-documents-scrape.sh

U2. Smoke coverage

Files: scripts/tests/documents-scrape-smoke.sh

Scope Boundaries

Deferred

  • Operator checklist doc refresh
  • Live KotOR catch-up on host