Skip to content

Add inbox/ intake for new corpus resources - #2

Merged
sclintonowasp merged 1 commit into
mainfrom
inbox-intake
Oct 28, 2026
Merged

sclintonowasp merged 1 commit into
mainfrom
inbox-intake

Conversation

@sclintonowasp

Copy link
Copy Markdown
Member

Adds an inbox/ drop zone so contributors can submit a resource in a PR and have it checked and placed automatically. Stacked on #1.

  • inbox/ is PR-only staging; validate_corpus.py now fails while it holds anything but its README, so nothing unreviewed reaches main.
  • scripts/process_inbox.py reads each file plus a .yaml sidecar. It requires an explicit license statement in the document (CC BY-SA 4.0, CC BY 4.0, Apache-2.0, MIT) before vendoring; vague "creative commons licenses" boilerplate doesn't count. It moves the file into corpus/<initiative>/, appends the MANIFEST entry, and flips any supersedes: entry. status: linked catalogs without vendoring. Anything else is held with a reason.
  • .github/workflows/process-inbox.yaml runs it on PRs touching inbox/, commits the result to same-repo PR branches, and comments the report. Fork PRs get a dry-run report in the job summary.
  • "Propose a corpus resource" issue form for URL-only suggestions.
  • README, CONTRIBUTING, CODEOWNERS updated.

Bot commits pushed with the default GITHUB_TOKEN don't re-trigger other workflows. The job validates after processing, but if validate-corpus is a required check, add a CORPUS_BOT_TOKEN secret (GitHub App or fine-grained token, contents: write) so it re-runs on the processed commit.

Tested on a scratch copy: a licensed PDF with supersedes: processed correctly; a PDF with no sidecar and an unlicensed markdown file were held with reasons; a sidecar-only linked entry was cataloged; the resulting manifest parses and the validator blocks while inbox/ isn't empty.


Generated by Claude Code

- inbox/ is a PR-only staging area; validate_corpus.py fails while it
  holds anything but its README, so nothing unreviewed reaches main.
- scripts/process_inbox.py reads each submission + .yaml sidecar,
  requires an explicit license statement (CC BY-SA/BY 4.0, Apache-2.0,
  MIT) before vendoring, moves the file into corpus/<initiative>/,
  appends the MANIFEST entry, and flips any `supersedes:` entry.
  `status: linked` catalogs without vendoring. Anything else is held
  with a reason.
- process-inbox.yaml runs it on PRs touching inbox/, commits the result
  to same-repo PR branches and comments the report; fork PRs get a
  dry-run report in the job summary.
- "Propose a corpus resource" issue form for URL-only suggestions.
- README/CONTRIBUTING/CODEOWNERS updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015bzez2N6vdSh6qXV7Y44P9
@github-actions

Copy link
Copy Markdown

Inbox processing

Nothing in inbox/.

Reviewers: confirm the license and the manifest entry before merging.

@sclintonowasp
sclintonowasp changed the base branch from add-corpus-tooling to main October 28, 2026 17:43
@sclintonowasp
sclintonowasp merged commit 17859f8 into main Oct 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants