skills/scholar-evaluation/references/local_tooling.md
Every bundled script:
.json or .csv files;Inputs are limited to 2 MiB, JSON depth 20, 25,000 structure nodes, 50 rubric criteria, 50 comparison evaluations, and 20,000 agreement rows. Outputs are limited to 2 MiB.
Use an authorized local directory. Keep private source documents in the institution's records system and reference them with opaque local identifiers.
assets/rubric_template.json — valid structure, but deliberately records
content validity as not established.assets/evaluation_template.json — structurally valid all-missing example.assets/evidence_manifest_template.json — synthetic local-reference records.assets/process_checklist_template.json — fail-closed unconfirmed controls.assets/ratings_template.csv — pseudonymous synthetic agreement data.Copy a template into an authorized working directory before editing it. Do not replace synthetic identifiers with names or contact information.
PYTHONDONTWRITEBYTECODE=1 python3 scripts/validate_rubric.py \
--rubric assets/rubric_template.json
The validator checks:
A rubric can be structurally valid while warning that content validity is not
documented. Structural validity is not psychometric validity.
PYTHONDONTWRITEBYTECODE=1 python3 scripts/calculate_scores.py \
--rubric assets/rubric_template.json \
--evaluation assets/evaluation_template.json \
--output /tmp/scholar-score.json
The evaluation contains one entry for every criterion:
{
"criterion_id": "method_design",
"status": "rated",
"score": 3,
"uncertainty": 0.5,
"evidence_ids": ["EVIDENCE-SYNTHETIC-METHOD"],
"rationale_ref": "LOCAL-RATING-RATIONALE-METHOD"
}
For missing or not_applicable, score and uncertainty must be null and
evidence_ids must be empty. A local rationale reference remains required.
The output reports weighted contributions, coverage, missing and not-applicable weight, normalized score, and a bounded uncertainty range. It contains no quality label, threshold, decision, or recommendation.
PYTHONDONTWRITEBYTECODE=1 python3 scripts/check_traceability.py \
--rubric assets/rubric_template.json \
--evaluation assets/evaluation_template.json \
--evidence assets/evidence_manifest_template.json
The checker verifies that:
It reports identifiers, paths, and counts only. It never opens or copies the referenced source.
Provide two to 50 evaluation JSON files for distinct scholarly works:
PYTHONDONTWRITEBYTECODE=1 python3 scripts/weight_sensitivity.py \
--rubric assets/rubric_template.json \
--evaluation /tmp/work-a-evaluation.json \
--evaluation /tmp/work-b-evaluation.json \
--delta 0.2 \
--output /tmp/weight-sensitivity.json
For each criterion, the script multiplies its weight by 1-delta and
1+delta, renormalizes all weights to one, and recomputes descriptive scores.
It reports:
The base order is included solely to detect instability. It is not a ranking recommendation and must never be used for people or high-impact decisions.
The CSV header must be exactly:
evaluation_id,work_id,rater_id,criterion_id,status,score
Use pseudonymous rater identifiers. Run:
PYTHONDONTWRITEBYTECODE=1 python3 scripts/summarize_agreement.py \
--rubric assets/rubric_template.json \
--ratings assets/ratings_template.csv \
--output /tmp/agreement-summary.json
For each criterion and overall, the report includes:
Rater identifiers are not emitted. These are descriptive agreement summaries, not chance-corrected reliability, generalizability, validity, or fairness evidence.
PYTHONDONTWRITEBYTECODE=1 python3 scripts/check_process.py \
--process assets/process_checklist_template.json
The template is intentionally unconfirmed and therefore does not pass. Complete it only from documented local records. The checker covers:
high_impact_use: true or any unconfirmed decision control blocks the process.
The checklist does not authorize a prohibited use.
Generate a minimized scaffold:
PYTHONDONTWRITEBYTECODE=1 python3 scripts/generate_report_scaffold.py \
--rubric assets/rubric_template.json \
--evaluation assets/evaluation_template.json \
--output /tmp/developmental-report-scaffold.json
Optional companion reports:
PYTHONDONTWRITEBYTECODE=1 python3 scripts/generate_report_scaffold.py \
--rubric assets/rubric_template.json \
--evaluation /tmp/work-a-evaluation.json \
--traceability /tmp/traceability.json \
--agreement /tmp/agreement-summary.json \
--sensitivity /tmp/weight-sensitivity.json \
--process /tmp/process-check.json \
--output /tmp/developmental-report-scaffold.json
The scaffold includes:
It does not draft findings from source documents or issue a decision.
0: requested calculation or validation completed successfully;2: invalid, blocked, incomplete, failed traceability, or unsafe input.Errors contain only stable codes and JSON paths, never supplied values. Use
--force only when replacing a known local report.