From research-papers
Reconciles concept inventories from concepts.yaml files across paper directories. Identifies name collisions, proposes canonical names, reports groups, and optionally rewrites files with --fix.
npx claudepluginhub ctoth/research-papers-plugin --plugin research-papersThis skill uses the workspace's default tool permissions.
Reconcile paper-local concept inventories across a paper collection.
Extracts concepts from a paper's claims.yaml via propose_concepts.py, enriches definitions from notes.md, and registers them into a propstore source branch using pks.
Extracts canonical domain terms into CONTEXT.md, flags ambiguities (same word, different meanings) and synonyms. Re-invokes to update in place for new terms or audits.
Detects and fixes vault structural misalignments: broken backlinks, concept fragmentation, entity miscategorization, duplicated entities, misnamed entities. Interactive or cron modes via bedrock compress.
Share bugs, ideas, or general feedback.
Reconcile paper-local concept inventories across a paper collection.
papers_dir=""
fix_mode=false
vocab_path=""
for arg in $ARGUMENTS; do
case "$arg" in
--fix) fix_mode=true ;;
--vocabulary) next_is_vocab=true ;;
*)
if [[ "$next_is_vocab" == "true" ]]; then
vocab_path="$arg"
next_is_vocab=false
else
papers_dir="$arg"
fi
;;
esac
done
Read every concepts.yaml file under $papers_dir:
find "$papers_dir" -name "concepts.yaml" -type f
For each file, extract all concept inventory entries:
local_nameproposed_namedefinitionformBuild a frequency table: concept_name → {count, papers[], definitions[], forms[]}.
If --vocabulary was given, read the YAML file. Its concepts mapping provides known canonical names and their aliases.
Group concept inventory entries that may refer to the same underlying concept:
abbreviations section to expand short forms before comparison.ratio vs structural), keep them in the same report but flag them as contested rather than auto-merged.For each collision group, select the canonical name:
concepts.yaml filesWrite a report with:
If --fix was passed:
concepts.yaml files so proposed_name matches the selected canonical namelocal_name, definitions, forms, and all non-name fields unchangedclaims.yaml here; claim rewriting happens later when papers are re-extracted or re-ingested against the updated concept inventoryconcepts.yaml files were modifiedVocabulary reconciliation complete.
Papers scanned: N
Unique concept names: N
Collision groups found: N
Contested groups: N
- [canonical_name]: [variant1] (3 papers), [variant2] (1 paper)
...
Report written to: reports/vocabulary-reconciliation-report.md