Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .claude/skills/add-community-record/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
name: add-community-record
description: Discover and add evidence-backed CommunityMech communities through local
scouting, identifier allocation and validated record writing; do not promote scouting
stubs as records.
---

# Add a CommunityMech record

Use [scout-communities](../scout-communities/SKILL.md) to build a bounded candidate
frontier; inspect primary papers and reuse previously acquired research.
[deep-research-community](../deep-research-community/SKILL.md) is a separate
provider workflow whose spending requires existing authorization.
Search community names, source identifiers, exact membership and prior decisions
across `kb/communities/`, `data/isolates/`, `kb/taxa/`, research and history with
ignored files included. A title overlap is only a lead, not identity proof.

Read [manage-identifiers](../manage-identifiers/SKILL.md) and
[the current schema](../../../src/communitymech/schema/communitymech.yaml).
Allocate `CommunityMech:` IDs across **both** communities and isolates; check
again immediately before creation to avoid another session's allocation.
Scouting stubs under `research/scouting/stubs/` contain placeholder IDs and `_scout`
metadata and are not valid `MicrobialCommunity` records. Build from the current
class and nearest appropriate validated record, not historical skill examples.

Establish exact community scope, verified membership/strains, source-backed
interactions, environmental/growth context and claim evidence. Write with
`communitymech.validation.write_validated.write_validated_community` using the
correct root class; the default is `MicrobialCommunity`, while reusable taxon
records use `CommonTaxon`. Preserve native key order and use the curation event
helper plus append-only `just new-history` for actual additions.
Run `just validate <record-path>`, `just validate-strict <record-path>`,
`just validate-terms <record-path>`, `just validate-references-explained <record-path>`,
`just validate-history`, `just audit-writers`, `just gen-html`,
`just check-docs-current` and `just qc`. Reuse
[review-communities](../review-communities/SKILL.md) for its native rubric.

For an open discovery goal, maintain added/already-present/rejected/blocked
candidate dispositions. Re-query the recorded frontier after curation and report
no further admissible candidates only within that bounded source/query scope;
never claim that no undiscovered microbial communities exist.
## Scope and completion

For one target, read the whole maintained record and its generated projection or
components. For a corpus goal, first freeze an inventory of record IDs, paths,
input hashes and applicable graph/protein elements; resume that ledger after an
interruption. Include hidden and ignored inputs when establishing absence.
Classify each target as checked, changed, evidence-limited, excluded, not
applicable or blocked, with reasons and inspected sources. A sample, a provider
report and a validator pass do not establish whole-corpus scientific completion.

Use [curate-yaml-record](../curate-yaml-record/SKILL.md) for the local evidence,
write, history and status contract; this adapter does not replace its managed
method. Record actual agent identity. Preserve scientific status rules and
unrelated edits. Use inspected primary evidence for mechanistic claims and exact
active identifiers for instances; never infer causality from association or
coverage from an empty query. A quotation is source text; interpretation belongs
in the native notes/explanation field.

Save final scientific assessments through
[review-yaml-record](../review-yaml-record/SKILL.md),
[record reviews](../../../docs/record-reviews.md), and the
[local profile](../../../docs/record-review-profile.md), including their native
persistence exceptions. Keep coverage/checkpoint accounting even when a clean
review should not produce a bundle. Unavailable prerequisites remain blocked;
a skipped target is not a completed enrichment. This skill authorizes no paid
provider call by itself.

After a completed goal, follow the user's authorized commit, push/PR,
adversarial review, issue/fix, merge and branch-cleanup sequence under the current
repository guidance. Carry forward existing authorization without asking again.
Use fresh required checks and native merge-queue rules. Verify actual merge and
landed content before deleting that feature branch or starting the next goal.
Only genuine review findings become issues; a no-diff goal needs a documented
no-op receipt rather than an artificial commit.
74 changes: 74 additions & 0 deletions .claude/skills/add-uniprot-protein-examples/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
name: add-uniprot-protein-examples
description: Review CommunityMech taxon gene annotations and add verified UniProt
identifiers with evidence linking exact proteins to community roles or interactions.
---

# CommunityMech UniProt gene/protein annotations

Read [the schema](../../../src/communitymech/schema/communitymech.yaml),
[ground-causal-graph-taxa](../ground-causal-graph-taxa/SKILL.md) and the full
community plus linked reusable taxon. The native protein route is
`CommonTaxon.genes[]` (`GeneAnnotation`), not a new `protein_examples` field on
community interactions. `gene_id` accepts a UniProtKB CURIE, with gene symbol,
locus, genome, GO terms, supported role/interaction and claim evidence where
appropriate under the current schema.

Inventory communities/isolates and referenced `kb/taxa/` genes. Resolve the
protein in the exact parent taxon and experimental context. Confirm any versioned
genome matches the parent's declared genome and that the source establishes the
role/interaction claimed. A gene annotation must not assert a role merely because
the family is present or a neighbor carries it. If a community-specific protein
example lacks a suitable native owner or relationship, record the representation
gap instead of inserting unsupported fields.

Write through `communitymech.validation.write_validated.write_validated_community`
with `target_class="CommonTaxon"` for reusable taxa, and append truthful curation
and repository history. Run `just validate-taxa`, `just validate-terms-taxa`,
`just validate-history`, `just audit-writers` and `just qc`; run the appropriate
community/reference and page-current gates when linked community content changes.
## Protein identity and evidence

Inspect live UniProt entry metadata or a release-pinned, provenance-verifiable
native snapshot. Check primary accession and active/merged/deleted state,
organism and strain, sequence/isoform, gene/locus mapping and source identity.
Prefer an exact assayed protein over a convenient ortholog. A named gene alone
is not a unique protein match. Keep family, whole complex, individual subunit,
native protein and experimental construct distinct. UniProt identity metadata
supports identity; primary role evidence supports participation in the record's
mechanism. Retain the original accession and an explicit mapping rationale when
resolving a changed identifier. Do not silently substitute species or isoforms.
## Scope and completion

For one target, read the whole maintained record and its generated projection or
components. For a corpus goal, first freeze an inventory of record IDs, paths,
input hashes and applicable graph/protein elements; resume that ledger after an
interruption. Include hidden and ignored inputs when establishing absence.
Classify each target as checked, changed, evidence-limited, excluded, not
applicable or blocked, with reasons and inspected sources. A sample, a provider
report and a validator pass do not establish whole-corpus scientific completion.

Use [curate-yaml-record](../curate-yaml-record/SKILL.md) for the local evidence,
write, history and status contract; this adapter does not replace its managed
method. Record actual agent identity. Preserve scientific status rules and
unrelated edits. Use inspected primary evidence for mechanistic claims and exact
active identifiers for instances; never infer causality from association or
coverage from an empty query. A quotation is source text; interpretation belongs
in the native notes/explanation field.

Save final scientific assessments through
[review-yaml-record](../review-yaml-record/SKILL.md),
[record reviews](../../../docs/record-reviews.md), and the
[local profile](../../../docs/record-review-profile.md), including their native
persistence exceptions. Keep coverage/checkpoint accounting even when a clean
review should not produce a bundle. Unavailable prerequisites remain blocked;
a skipped target is not a completed enrichment. This skill authorizes no paid
provider call by itself.

After a completed goal, follow the user's authorized commit, push/PR,
adversarial review, issue/fix, merge and branch-cleanup sequence under the current
repository guidance. Carry forward existing authorization without asking again.
Use fresh required checks and native merge-queue rules. Verify actual merge and
landed content before deleting that feature branch or starting the next goal.
Only genuine review findings become issues; a no-diff goal needs a documented
no-op receipt rather than an artificial commit.
67 changes: 67 additions & 0 deletions .claude/skills/curate-causal-graphs/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
name: curate-causal-graphs
description: Review and curate CommunityMech ecological interaction downstream graphs
with evidence for each directed causal claim, preserving taxon and experimental
scope.
---

# CommunityMech causal interaction graphs

Read [the schema](../../../src/communitymech/schema/communitymech.yaml),
[ground-causal-graph-taxa](../ground-causal-graph-taxa/SKILL.md) and
[evidence-curation](../evidence-curation/SKILL.md).
The native graph is `MicrobialCommunity.ecological_interactions` with
`EcologicalInteraction.downstream` (`InteractionDownstream`), not a copied
TraitMech nodes/edges list. Inventory `kb/communities/*.yaml` and
`data/isolates/*.yaml`; read reusable `kb/taxa/` records that support a claim.

Review each interaction and downstream target, direction, mechanism, participant
and organism/condition scope against inspected primary sources. Preserve stable
interaction names and their `downstream[].target` references. Taxon membership, co-occurrence
and a metabolite correlation do not prove a causal chain. If evidence supports
only an interaction but not the proposed downstream link, retain the narrower
supported claim and record the unresolved step. Do not fabricate native slots.
The causal-edge mode of
[deep-research-community](../deep-research-community/SKILL.md) may supply leads;
it does not itself curate the graph or satisfy scientific review.

Use `communitymech.curate.curation_event.record_curation_event` and
`communitymech.validation.write_validated.write_validated_community`; append
actual repository history. Run community validation/strict/term/reference gates,
`just validate-history`, `just audit-writers`, `just qc`, then `just gen-html` and
`just check-docs-current` for changed communities. Verify downstream references
and citations explicitly even if a structural validator accepts them.
## Scope and completion

For one target, read the whole maintained record and its generated projection or
components. For a corpus goal, first freeze an inventory of record IDs, paths,
input hashes and applicable graph/protein elements; resume that ledger after an
interruption. Include hidden and ignored inputs when establishing absence.
Classify each target as checked, changed, evidence-limited, excluded, not
applicable or blocked, with reasons and inspected sources. A sample, a provider
report and a validator pass do not establish whole-corpus scientific completion.

Use [curate-yaml-record](../curate-yaml-record/SKILL.md) for the local evidence,
write, history and status contract; this adapter does not replace its managed
method. Record actual agent identity. Preserve scientific status rules and
unrelated edits. Use inspected primary evidence for mechanistic claims and exact
active identifiers for instances; never infer causality from association or
coverage from an empty query. A quotation is source text; interpretation belongs
in the native notes/explanation field.

Save final scientific assessments through
[review-yaml-record](../review-yaml-record/SKILL.md),
[record reviews](../../../docs/record-reviews.md), and the
[local profile](../../../docs/record-review-profile.md), including their native
persistence exceptions. Keep coverage/checkpoint accounting even when a clean
review should not produce a bundle. Unavailable prerequisites remain blocked;
a skipped target is not a completed enrichment. This skill authorizes no paid
provider call by itself.

After a completed goal, follow the user's authorized commit, push/PR,
adversarial review, issue/fix, merge and branch-cleanup sequence under the current
repository guidance. Carry forward existing authorization without asking again.
Use fresh required checks and native merge-queue rules. Verify actual merge and
landed content before deleting that feature branch or starting the next goal.
Only genuine review findings become issues; a no-diff goal needs a documented
no-op receipt rather than an artificial commit.
2 changes: 1 addition & 1 deletion .claude/skills/ground-taxa-gtdb/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ taxonomy entries and their id anchors do not line up.
*Chlorobium* went unprotected — it survived earlier sweeps only because its
recompute happened to fail (#376).
- **`is_reclassified: true`** — GTDB uses a different name than NCBI at that
rank. Read it as exactly that and no more: 51 of 138 true values (37%) are a
rank. Read it as exactly that and no more: 53 of 141 true values (38%) are a
dropped strain designation, a polyphyly suffix, a GTDB placeholder
epithet, or a nomenclatural ending rather than any kind of
reclassification (#441, #480)
Expand Down
4 changes: 2 additions & 2 deletions docs/404.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ <h1>Page Not Found (404)</h1>
<h2>Explore CommunityMech</h2>
<ul>
<li><a href="index.html">Landing Page &amp; Overview</a></li>
<li><a href="browser.html">Interactive Community Browser (458 communities)</a></li>
<li><a href="browser.html">Interactive Community Browser (473 communities)</a></li>
<li><a href="text_map.html">Community Text Embedding Map</a></li>
<li><a href="community_umap.html">Taxonomic UMAP Embedding</a></li>
<li><a href="sequence_map.html">ESM-2 Protein Sequence Map</a></li>
Expand All @@ -71,7 +71,7 @@ <h2>Explore CommunityMech</h2>
</ul>
</div>
<footer>
<p>CommunityMech Knowledge Base (458 communities) &bull;
<p>CommunityMech Knowledge Base (473 communities) &bull;
Schema: <a href="schema.html"><code>https://w3id.org/communitymech</code></a> &bull;
Source: <a href="https://github.com/CultureBotAI/CommunityMech">kb/communities/</a> &bull;
License: BSD-3-Clause</p>
Expand Down
Loading
Loading