Dulus
An AI agent for your desktop and terminal, on any model you choose. Hosted models run on Fuel, paid in $DULUS.
翻译准备中
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Domain of Unknown Function mechanism knowledge base.
DUFMech starts from Pfam families whose public InterPro metadata still looks like a domain or protein of unknown function. The first tool builds a triage worklist from the InterPro Pfam API, normalizes Pfam rows, keeps DUF short-name hits that may be historically solved, and can render TSV or JSON.
The frozen worklists feed reproducible LinkML family records. Scientific curation lives in separate overlays; imported descriptions and automated seed labels do not become functional claims or completed reviews.
just records # dry run
just records --apply # guarded regeneration
just validate-all # records, schema, review and history checks
just sources-check # offline source and writer governance
just qc # authoritative local and CI gate
See family records and evidence, timestamped reviews, append-only history, source adoption and licensing, offline research planning, KGX and SSSOM exports, offline ID/label validation, and knowledge-gap proposals.
The stable validation check is qc, provided by .github/workflows/validate.yaml
(Validate DUFMech). Its local equivalent is just qc followed by
just id-labels-oak-test, after the locked runtime setup below and
just browser-install. CLAW's merge-queue policy must reference
this exact workflow and job name; changes to either require a coordinated policy
update. Passing a local command does not establish that GitHub rules are enabled.
Record, category and repository skills are shipped under .claude/skills/ and
.agents/skills/. Review reports preserve source hashes, timestamps, scope,
findings and follow-ups; they do not automatically certify scientific conclusions.
Use an immutable published CLAW checkout. CI checks out
b81580f150d5334841f3eb16434575701607bc81; use that same revision locally.
CLAW_SRC supplies the shared profile and interchange contracts to the native
environment. OAK runs only in the separate locked CLAW environment because its
dependencies conflict with DUFMech's native ShEx runtime. Do not add OAK to the
native environment or weaken either dependency lock.
export CLAW_ROOT=/absolute/path/to/published/culturebotai-claw
export CLAW_SRC="$CLAW_ROOT/src"
uv sync --locked --extra dev
env -u VIRTUAL_ENV -u UV_PROJECT_ENVIRONMENT -u PYTHONPATH -u PYTHONHOME \
uv sync --project "$CLAW_ROOT" --locked
just research check
just exports --check
just id-labels-check
just qc
just id-labels-oak-test
Dependency installation may need network access; the checks do not call research
providers or retrieve source data. Full QC requires CLAW_ROOT and fails closed
without it. It runs the real OAK correspondence gate through the isolated wrapper,
not merely --check-index. The separate OAK regression tests genuine adapter
round trips and rejection cases with network access denied.
just research forwards arguments to offline planning and explicitly labelled
dummy DRY_RUN scaffolding. Provider-backed execution stays disabled; a retained
plan is not research findings. just exports defaults to a read-only dry run;
--apply is explicit and changes only the three generated interchange files.
just id-labels --apply regenerates only the frozen-source reference index.
Reference correspondence and Pfam/InterPro associations do not establish
biological function or promote SEEDED/UNSCORED records. Writer declarations
record delegation, required calls and policy tests, not a blanket safety proof.
Use Python 3.13 for development.
just install
just browser-install # Node 22+; needed once for the full QC browser gate
just test
just duf-puf-worklist --limit 10 --format tsv
The worklist can also read saved InterPro JSON for offline fixture runs:
just duf-puf-worklist --input-json interpro-page.json --format json
Freeze a new InterPro/Pfam seed worklist with a matching manifest (today's UTC date):
just freeze-duf-puf-worklist
The original seed worklist was frozen on 2026-10-01. On 2026-10-05 a versioned
classification correction kept all 6,532 families and source counters and
corrected 1,621 historical seed labels to unknown candidates (see the
correction audit).
The October 8 worklist, interpro-pfam-duf-2026-10-08, is the EX_DUF migration of
that snapshot: 32 families Pfam renamed away from DUF/UPF names became EX_DUF, and
1,763 renamed families were added from the InterPro entry API, for 8,295 families
(see the migration record).
The current worklist, interpro-pfam-duf-2026-10-10, preserves all those rows and
adds PF18141 (UPF1_1B_dom, formerly DUF5599), for 8,296 families. The corrected
previous-name parser no longer confuses the UPF1 gene name with a four-digit UPF
family label. See the re-freeze and migration record.
Reclassify verified frozen metadata into a new snapshot without contacting InterPro:
just reclassify-duf-puf-worklist \
--input-json data/worklists/interpro-pfam-duf-2026-10-01.json \
--snapshot-date 2026-10-05 --out-dir /tmp/dufmech-classification-check
Both worklist freezing and reclassification refuse existing output artifacts; choose a new date or output directory instead of rewriting a published snapshot. Seed labels reflect frozen wording, not experimental validation. Scoring remains a separate step.
Expand frozen Pfam rows to UniProtKB protein members through InterPro:
just duf-puf-members --pfam-id PF01519 --limit-members-per-family 5
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗