HuleEdu public research code
This directory defines the generated curated research-code edition of HuleEdu. HuleEdu is the only authored source for this edition.
Approved changes to these selected files are published automatically to the Codeberg repository and the static code reader. The full public commit SHA identifies the same edition in both places.
The edition contains the reviewed research execution sources for feature contracts and extraction, training and score mapping, comparative judgement, Bradley--Terry aggregation, and local embeddings. It contains no research inputs, model packages, provider payloads, or operational configuration.
Run the deterministic synthetic demonstration after installing the declared public dependencies:
python3 -m pip install -r public_research_code/requirements.txt
python3 public_research_code/run_synthetic_demo.py
The command imports the current HuleEdu feature registry, prediction-mapping, and Bradley--Terry modules. It uses only literal synthetic numeric inputs and does not create files, start services, contact a network endpoint, or load a model.
The package is licensed under Apache-2.0; see the root LICENSE file.
Repository tree
- LICENSE
- libs/common_core/src/common_core/__init__.py
- libs/common_core/src/common_core/api_models/__init__.py
- libs/common_core/src/common_core/api_models/anchor_summary.py
- libs/common_core/src/common_core/api_models/assessment_instructions.py
- libs/common_core/src/common_core/api_models/batch_prompt_amendment.py
- libs/common_core/src/common_core/api_models/batch_registration.py
- libs/common_core/src/common_core/api_models/l2_intake.py
- libs/common_core/src/common_core/api_models/l2_intake_runtime.py
- libs/common_core/src/common_core/api_models/language_tool.py
- libs/common_core/src/common_core/api_models/llm_provider.py
- libs/common_core/src/common_core/batch_service_models.py
- libs/common_core/src/common_core/browser_auth_contract.py
- libs/common_core/src/common_core/config_enums.py
- libs/common_core/src/common_core/domain_enums.py
- libs/common_core/src/common_core/emailing_models.py
- libs/common_core/src/common_core/entitlements_models.py
- libs/common_core/src/common_core/error_enums.py
- libs/common_core/src/common_core/essay_service_models.py
- libs/common_core/src/common_core/event_enums.py
- libs/common_core/src/common_core/events/__init__.py
- libs/common_core/src/common_core/events/ai_feedback_events.py
- libs/common_core/src/common_core/events/base_event_models.py
- libs/common_core/src/common_core/events/batch_coordination_events.py
- libs/common_core/src/common_core/events/cj_assessment_events.py
- libs/common_core/src/common_core/events/cj_assessment_request_v2.py
- libs/common_core/src/common_core/events/cj_llm_config_overrides.py
- libs/common_core/src/common_core/events/cj_pair_matching_contracts.py
- libs/common_core/src/common_core/events/cj_pair_selection_metadata.py
- libs/common_core/src/common_core/events/cj_research_completion_events.py
- libs/common_core/src/common_core/events/cj_research_continuation_events.py
- libs/common_core/src/common_core/events/cj_research_events.py
- libs/common_core/src/common_core/events/cj_research_models.py
- libs/common_core/src/common_core/events/cj_research_plan_events.py
- libs/common_core/src/common_core/events/class_events.py
- libs/common_core/src/common_core/events/client_commands.py
- libs/common_core/src/common_core/events/els_bos_events.py
- libs/common_core/src/common_core/events/envelope.py
- libs/common_core/src/common_core/events/essay_lifecycle_events.py
- libs/common_core/src/common_core/events/file_events.py
- libs/common_core/src/common_core/events/file_management_events.py
- libs/common_core/src/common_core/events/llm_provider_events.py
- libs/common_core/src/common_core/events/nlp_events.py
- libs/common_core/src/common_core/events/nlp_feature_outputs.py
- libs/common_core/src/common_core/events/notification_events.py
- libs/common_core/src/common_core/events/pipeline_events.py
- libs/common_core/src/common_core/events/resource_consumption_events.py
- libs/common_core/src/common_core/events/result_events.py
- libs/common_core/src/common_core/events/spellcheck_models.py
- libs/common_core/src/common_core/events/utils.py
- libs/common_core/src/common_core/events/validation_events.py
- libs/common_core/src/common_core/events/writing_issue_ledger.py
- libs/common_core/src/common_core/grade_scales.py
- libs/common_core/src/common_core/identity_enums.py
- libs/common_core/src/common_core/identity_models.py
- libs/common_core/src/common_core/internal_identity_context.py
- libs/common_core/src/common_core/metadata_models.py
- libs/common_core/src/common_core/models/__init__.py
- libs/common_core/src/common_core/models/error_models.py
- libs/common_core/src/common_core/observability_enums.py
- libs/common_core/src/common_core/pipeline_models.py
- libs/common_core/src/common_core/product_identity_realms.py
- libs/common_core/src/common_core/py.typed
- libs/common_core/src/common_core/status_enums.py
- libs/common_core/src/common_core/websocket_auth_contract.py
- libs/common_core/src/common_core/websocket_enums.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/__init__.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/accepted_artifacts.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/accepted_family_artifacts.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/artifacts.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/boundaries.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/candidate_lexical_sophistication_sidecars.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/candidate_rst_sidecars.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/candidate_sidecar_basic_features.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/candidate_sidecar_row_links.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/candidate_sidecars.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/core_l2_membership.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/cumulative_correction_accepted.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/current.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/current_family_builders.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/current_input_roles.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/current_lexical_families.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/models.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/prompt_mappings.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/prompt_relevance_v3.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/prompt_relevance_v3_accepted.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/prompt_relevance_v3_candidate.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/provenance.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/runtime_specs.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/schema.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/scorer_artifacts.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/feature_contracts/scorer_set_typology.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/normalization/__init__.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/normalization/l2_evidence_matcher.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/normalization/models.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/normalization/protocols.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/normalization/spell_evidence.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/normalization/spell_normalizer.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/normalization/whitelist.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/__init__.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/adapters.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/builder.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/correction_overlay_ledger.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/correction_overlay_lexical.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/correction_overlay_materializer.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/correction_overlay_models.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/correction_overlay_rejected_pairs.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/correction_overlay_writer.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/dialect.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/feature_inputs.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/feature_text.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/feature_text_replacement_planner.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/models.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/offline_artifact_writer.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/offline_artifacts.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/parser_stabilization_policy.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/protocols.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/reviewed_spelling_authority.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/text_coordinates.py
- libs/huleedu_nlp_shared/src/huleedu_nlp_shared/writing_issues/text_streams.py
- libs/huleedu_nlp_shared/tests/feature_contracts/test_current_registry_import.py
- libs/huleedu_nlp_shared/tests/feature_contracts/test_current_scorer_set_typology.py
- public_research_code/ARCHITECTURE.md
- public_research_code/EXCLUSIONS.md
- public_research_code/README.md
- public_research_code/check_projection.py
- public_research_code/inventory.json
- public_research_code/manifest.json
- public_research_code/requirements.txt
- public_research_code/run_synthetic_demo.py
- scripts/ml_training/essay_scoring/__init__.py
- scripts/ml_training/essay_scoring/embedding_config.py
- scripts/ml_training/essay_scoring/features/combiner.py
- scripts/ml_training/essay_scoring/features/embeddings.py
- scripts/ml_training/essay_scoring/features/feature_input.py
- scripts/ml_training/essay_scoring/features/language_tool_evidence.py
- scripts/ml_training/essay_scoring/features/pipeline.py
- scripts/ml_training/essay_scoring/features/pipeline_helpers.py
- scripts/ml_training/essay_scoring/features/protocols.py
- scripts/ml_training/essay_scoring/features/results.py
- scripts/ml_training/essay_scoring/features/schema.py
- scripts/ml_training/essay_scoring/features/spacy_pipeline.py
- scripts/ml_training/essay_scoring/features/tier1_error_readability.py
- scripts/ml_training/essay_scoring/features/tier2_family_computations.py
- scripts/ml_training/essay_scoring/features/tier2_prompt_selection.py
- scripts/ml_training/essay_scoring/features/tier2_syntactic_cohesion.py
- scripts/ml_training/essay_scoring/features/utils.py
- scripts/ml_training/essay_scoring/features/writing_issue_ledger.py
- scripts/ml_training/essay_scoring/offload/__init__.py
- scripts/ml_training/essay_scoring/offload/embedding_pooling_policies.py
- scripts/ml_training/essay_scoring/scorers/accepted/__init__.py
- scripts/ml_training/essay_scoring/scorers/accepted/calibration.py
- scripts/ml_training/essay_scoring/scorers/accepted/compatibility.py
- scripts/ml_training/essay_scoring/scorers/accepted/package_io.py
- scripts/ml_training/essay_scoring/scorers/accepted/package_profile.py
- scripts/ml_training/essay_scoring/scorers/accepted/package_validation.py
- scripts/ml_training/essay_scoring/scorers/accepted/prediction.py
- scripts/ml_training/essay_scoring/tests/test_embedding_config.py
- scripts/ml_training/essay_scoring/tests/test_feature_selection.py
- scripts/ml_training/essay_scoring/tests/test_grade_band_weighting.py
- scripts/ml_training/essay_scoring/tests/test_prediction_mapping.py
- scripts/ml_training/essay_scoring/training/evaluation.py
- scripts/ml_training/essay_scoring/training/feature_selection.py
- scripts/ml_training/essay_scoring/training/prediction_mapping.py
- scripts/ml_training/essay_scoring/training/qwk.py
- scripts/ml_training/essay_scoring/training/xgboost/grade_band_weighting.py
- scripts/ml_training/essay_scoring/training/xgboost/trainer.py
- scripts/ml_training/essay_scoring/training/xgboost/training_modes.py
- scripts/ml_training/essay_scoring/training/xgboost_training_profile.py
- services/cj_assessment_service/cj_core_logic/batch_llm_metadata.py
- services/cj_assessment_service/cj_core_logic/bt_inference.py
- services/cj_assessment_service/cj_core_logic/bt_scoring.py
- services/cj_assessment_service/cj_core_logic/comparison_batch_orchestrator.py
- services/cj_assessment_service/cj_core_logic/comparison_processing.py
- services/cj_assessment_service/cj_core_logic/comparison_request_normalizer.py
- services/cj_assessment_service/cj_core_logic/comparison_submission_metadata.py
- services/cj_assessment_service/cj_core_logic/pair_generation.py
- services/cj_assessment_service/cj_core_logic/pair_generation_budget.py
- services/cj_assessment_service/cj_core_logic/pair_generation_queries.py
- services/cj_assessment_service/cj_core_logic/pair_generation_task_builder.py
- services/cj_assessment_service/cj_core_logic/pair_matching_resolution.py
- services/cj_assessment_service/cj_core_logic/pair_orientation.py
- services/cj_assessment_service/implementations/llm_interaction_impl.py
- services/cj_assessment_service/implementations/llm_provider_service_client.py
- services/cj_assessment_service/models_api.py
- services/cj_assessment_service/protocols.py
- services/cj_assessment_service/tests/unit/test_bt_se_computation.py
- services/cj_assessment_service/tests/unit/test_comparison_request_normalizer.py
- services/llm_provider_service/api/llm_routes.py
- services/llm_provider_service/api_models.py
- services/llm_provider_service/internal_models.py
- services/llm_provider_service/protocols.py
- services/llm_provider_service/response_validator.py
- tests/public_research_code/test_check_projection.py