patch feat/bootstrap-scooling-lab #2 / 2
42 days ago · Jun 10, 2026 · Diff

Bootstrap Scooling Lab repository

Create the Apache-2.0 training workspace skeleton with typed job contracts, license policy checks, tests, and repository boundary documentation.

sha256:1d3182b1c5c2833c8ab0d437e03eeadfd3ad6679a2877a6baab8d17442d38936 sha
+76 symbols
15 changed · 15 in snapshot files
sha256:af1aebce98b10b6bb3eb12011afb258d4de03c154a4b1edec6346ab42f2611f5 snapshot
+76
symbols added
15
files changed
15
files in snapshot
0
dead code introduced
Semantic Changes 76 symbols
+ docs/
+ src/
+ tests/
+ .gitignore .gitignore
+ .museattributes .museattributes
+ .museignore .museignore
+ NOTICE
~ README.md .md 6 symbols added
+ Scooling Lab section Scooling Lab L1–36
+ Boundary Rules section Boundary Rules L18–27
+ Current Phase section Current Phase L10–18
+ License section License L33–36
+ Local Checks section Local Checks L27–33
+ code[bash] variable variable code[bash] L29–32
~ docs/DEPENDENCY-POLICY.md .md 1 symbol added
+ Dependency Policy section Dependency Policy L1–22
~ docs/ROADMAP.md .md 5 symbols added
+ Roadmap section Roadmap L1–28
+ Phase T0: License And Dependency Inventory section Phase T0: License And Dependency Inventory L3–10
+ Phase T1: Product And Consent Design section Phase T1: Product And Consent Design L10–17
+ Phase T2: Training Job API Contract section Phase T2: Training Job API Contract L17–23
+ Phase T3: Worker Skeleton section Phase T3: Worker Skeleton L23–28
~ docs/SECURITY.md .md 3 symbols added
+ Security section Security L1–21
+ Reporting section Reporting L16–21
+ Rules section Rules L5–16
~ pyproject.toml .toml 16 symbols added
+ project section project L0–0
+ authors[0] section project.authors[0] L0–0
+ name variable variable name L0–0
+ dependencies variable variable dependencies L0–0
+ description variable variable description L0–0
+ license section license L0–0
+ text variable variable text L0–0
+ name variable variable name L0–0
+ readme variable variable readme L0–0
+ requires-python variable variable requires-python L0–0
+ version variable variable version L0–0
+ tool section tool L0–0
+ scooling_lab section scooling_lab L0–0
+ agpl_components_allowed variable variable agpl_components_allowed L0–0
+ phase variable variable phase L0–0
+ private_data_allowed variable variable private_data_allowed L0–0
~ src/scooling_lab/__init__.py .py 4 symbols added
+ __all__ variable variable __all__ L5–5
+ TrainingDatasetRef import import TrainingDatasetRef L3–3
+ TrainingJobRequest import import TrainingJobRequest L3–3
+ TrainingJobStatus import import TrainingJobStatus L3–3
~ src/scooling_lab/contracts.py .py 10 symbols added
+ AdapterKind variable variable AdapterKind L20–20
+ ModelLocationPolicy variable variable ModelLocationPolicy L21–21
+ TrainingDatasetRef class class TrainingDatasetRef L25–31
+ TrainingJobRequest class class TrainingJobRequest L35–42
+ TrainingJobStatus class class TrainingJobStatus L10–17
+ Enum import import Enum L6–6
+ Literal import import Literal L7–7
+ annotations import import annotations L3–3
+ dataclass class import dataclass L5–5
+ validate_training_job_request function function validate_training_job_request L45–63
~ src/scooling_lab/license_policy.py .py 13 symbols added
+ APPROVED_LICENSES variable variable APPROVED_LICENSES L10–10
+ DISALLOWED_PATH_PREFIXES variable variable DISALLOWED_PATH_PREFIXES L11–11
+ DependencyEntry class class DependencyEntry L15–20
+ LicenseAuditResult class class LicenseAuditResult L24–34
+ ok method method ok L31–34
+ audit_dependency_entries function function audit_dependency_entries L58–70
+ Iterable import import Iterable L7–7
+ PurePosixPath import import PurePosixPath L6–6
+ annotations import import annotations L3–3
+ dataclass class import dataclass L5–5
+ is_allowed_source_path function function is_allowed_source_path L49–55
+ is_approved_license function function is_approved_license L43–46
+ normalize_license_id function function normalize_license_id L37–40
~ tests/test_contracts.py .py 9 symbols added
+ TrainingContractTests class class TrainingContractTests L13–62
+ test_blank_required_fields_are_reported_deterministically method method test_blank_required_fields_are_reported_deterministically L33–58
+ test_training_status_values_are_stable method method test_training_status_values_are_stable L60–62
+ test_valid_training_job_request_has_no_errors method method test_valid_training_job_request_has_no_errors L16–31
+ TestCase import import TestCase L3–3
+ TrainingDatasetRef import import TrainingDatasetRef L5–5
+ TrainingJobRequest import import TrainingJobRequest L5–5
+ TrainingJobStatus import import TrainingJobStatus L5–5
+ validate_training_job_request import import validate_training_job_request L5–5
~ tests/test_license_policy.py .py 9 symbols added
+ LicensePolicyTests class class LicensePolicyTests L13–42
+ test_agpl_component_paths_are_blocked method method test_agpl_component_paths_are_blocked L21–24
+ test_audit_splits_accepted_and_rejected_entries method method test_audit_splits_accepted_and_rejected_entries L26–42
+ test_permissive_license_ids_are_allowed method method test_permissive_license_ids_are_allowed L16–19
+ DependencyEntry import import DependencyEntry L5–5
+ TestCase import import TestCase L3–3
+ audit_dependency_entries import import audit_dependency_entries L5–5
+ is_allowed_source_path import import is_allowed_source_path L5–5
+ is_approved_license import import is_approved_license L5–5
Files Changed
+15
15 in snapshot

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:1d3182b1c5c2833c8ab0d437e03eeadfd3ad6679a2877a6baab8d17442d38936 --body "your comment"