Repository navigation
Curation: live claims board (who works on which dataset), warn-only - #25
Merged
Merged
Conversation
Who works on which dataset now lives on the remote's `claims` branch, pushed directly (no PR): one YAML file per claimed dataset and a README table on GitHub. A claim is a commit on the fetched tip, so a race on the same dataset has one winner. Login is the repository's write access; any git remote works. - `data-foundry-curation claims list|claim|release|renew|check|sync| import-records|init` (src/data_foundry/curation/claims.py), git plumbing only, never touching the working tree; claims expire after 7 days unless renewed. - The records' `claimed_by` and WIP value mirror the board; the claim PR to main is gone. - Warn only: save_record warns on another curator's claim, a Claude Code hook lists the board at session start and warns before an edit, the dashboard's Claimed by column shows the board and claims/releases from the cell. - Pages fetches the board before building; a workflow on the claims branch dispatches it on every claim. - Docs: knowledge-data-foundry/references/claims.md, the skills, README, CLAUDE.md, GETTING_STARTED.md and a CHANGELOG entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YHxFEkgCy8bE5DhoykkptE
The claimed_by vocabulary drops Mustafa, Alex and Gioia: only the two of us are curating at the moment. Their names stay in checked_by for the records they checked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YHxFEkgCy8bE5DhoykkptE
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Claims reached the other curators only after a separate claim PR was merged to
main. That needed an ask, CI and a merge, so with five curators and their agents nobody knew in time who was working on what.What
Claims now live on the branch
claimsand are pushed straight to it, with no PR. The branch holds one YAML file per claimed dataset, plus a README table that serves as the team's board.$DATA_FOUNDRY_CLAIMS_REMOTE,$DATA_FOUNDRY_CLAIMS_BRANCH).data-foundry-curation claims list|claim|release|renew|check|sync|import-records|init(src/data_foundry/curation/claims.py). It uses git plumbing only and never touches your working tree or branch. Claims expire after 7 days unless renewed, and an expired one can be taken over with--steal(the branch log records it).claimed_byand the WIP value become a mirror of the board, written byclaims claim/release/sync. The claim PR tomaingoes away.save_record, when it writes a record another curator holds (ClaimWarning);.claude/settings.json,.claude/hooks/claims_hook.py), which lists the board at session start and warns before an Edit or Write on another curator's dataset;claimsbranch dispatches the Pages build on every claim..claude/skills/knowledge-data-foundry/references/claims.md.Already done on the remote
claimsbranch was created and the 39 claims from the records were imported (all Lennart's).claimsforbids force-push and deletion, so the log can't be rewritten.For each curator, once
Claude Code may ask you to approve the new project hooks the first time.
Tests
The new
tests/test_claims.pyuses a local bare repo as the remote and two clones as two curators. It covers:save_recordwarning, the hook (warns, never decides, fails open), the CLI and the dashboard endpoint.Full suite: 1325 passed, 175 skipped.
🤖 Generated with Claude Code
https://claude.ai/code/session_01YHxFEkgCy8bE5DhoykkptE