Record ADR-0002 for user-side acquisition and reconcile scraping policy #52
No reviewers
Labels
No labels
area/deployment
area/governance
area/metadata
area/pipeline
area/search
type/data
type/design
type/implementation
type/testing
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Arkive/arkive!52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/issue-34-user-acquisition-adr"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
governance/decision_records/ADR-0002-user-side-acquisition-overlay.md, adopting reviewed user-side acquisition with a strictly separated user-local content overlay, following ADR-0001's structure and date format.bundled_coreanduser_local) with separate stores, manifests, and indexes; permission reviewed as independent dimensions; manual import and reviewed HTTPS download as the only initial acquisition modes; declarative recipes that cannot execute code;origin.acquisition_pathremaining descriptive; and the review, expiry, and withdrawal lifecycle.AGENTS.md,CONTRIBUTING.md,docs/source-intake.md,meta/policies/license_policy.md, andmeta/policies/source_acceptance_policy.md, stating the distinction once and consistently.Verification
git diff --checkpython pipeline/validate/validate_records.py— PASS, 6 sources, 6 documents, 2 chunkspython -m unittest discover -s tests -v— 21 tests, all passingpython -m ruff check src pipeline testspython -m ruff format --check src pipeline testsScope confirmation
Acceptance criteria
origin.acquisition_pathremains descriptive rather than executableNotes for review
Rejected alternatives were not enumerated in the issue body, so they were derived from the decision's own constraints. The one most worth a second opinion is the rejection of a single merged store with a per-record
redistributableflag. It is rejected because it fails open: any defect in flag handling, export, backup, or diagnostics silently contaminates a shipped bundle, whereas a structural boundary fails closed. If a merged store is later preferred for practical reasons, that reasoning is the thing to argue against.The reconciliation wording is deliberately identical in substance across all five files. The distinguishing property of permitted acquisition is stated as per-target review, not the presence of a network request, so that no future reader can conclude that automation itself is the prohibited thing. If that phrasing should differ anywhere, it is better changed in all five places at once.
license_policy.mdgains a note at the metadata-only section stating that acquisition eligibility is a separate determination that grants Arkive nothing, and that the record in this repository stays metadata-only. This seemed the most likely place for a future reader to mistakenly infer that overlay eligibility relaxes the repository restriction.Jurisdictional evaluation is recorded as a prerequisite to implementation, not as something this record resolves. The ADR states plainly that it is not legal advice and that its conclusions need validating for the jurisdictions Arkive operates and distributes in.
Linked issue
Closes #34
JackFrostbyte referenced this pull request2026-08-02 00:30:52 -04:00