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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). Thi
## [Unreleased]

### Added
- Trained DataClass classifiers v0.1 — specified→trained→registered→reproduced (closes the program's last owed thread): `tools/train_dataclass_classifiers.py` trains real per-class LOGISTIC (one-vs-rest) + per-table SOFTMAX heads, MONOTONE-constrained in `monotonicFeatures` (weight >=0 projection = TF-Lattice essence), deterministically; emits trained weights + a conformant `ModelManifest` (id=DataClass modelRef) + train/eval `RunRecord`s (ids=runRef/evalRunRef) so the previously-dangling DataClass classifier references now RESOLVE. `validate-trained-classifiers` (recompute-don't-trust): digest matches weight bytes; eval accuracy REPRODUCED from weights+fixture (inflated claim fails); model verified genuinely monotone (perturb up → score never drops); refs resolve; artifacts schema-conform. Teeth-verified (tampered weights refused). Uses numpy.
- Learned spell-correction + user dictionary v0.1 — from context, not dictionary matching (task #13): `tools/learned_dictionary.py` decides each UNKNOWN token from a count-based skip-gram word-sense predictor (PPMI + truncated SVD; SGNS≈PPMI-SVD) instead of a static wordlist. LEARN a token that recurs with a coherent word-sense (a real domain term the dictionary hadn't seen); CORRECT a rare token to the known word its SENSE matches (skip-gram cosine picks the target, not edit distance alone — a near-spelled but different-sense token is not auto-corrected); leave the rest UNKNOWN (fail-closed, human-admitted). Every decision is a proposal, never a silent rewrite. `validate-learned-dictionary` teeth: epistemiclevel learned, reciept->receipt by sense, qwzptl unknown, learned term never auto-corrected. Uses numpy.
- Stopword deviation analysis v0.1 — the dropped words are governed vocabulary too (task #13): `tools/stopword_analysis.py` audits the loop's stoplist ACROSS domains using two signals — cross-domain deviation (concentration) AND compositional density (repeated-collocation rate) — because frequency alone can't tell a domain term from a stylistic quirk. Surfaces `term-candidate` (concentrated + compositional = a domain term hiding in the stoplist, propose un-stoplisting) vs `stylistic` (concentrated by style only) vs `noise` (uniform). `validate-stopword-analysis` teeth: domain terms surfaced; a stylistically-concentrated word ('and') is NOT wrongly promoted; a uniform word ('the') is noise. `stopword-analysis-live` audits the shipped stoplist over specs/*.md. Compositional density is the bigram floor of the k-gram TF-IDF/LSA differential (orders 3..7) to follow.
- k-gram TF-IDF/LSA differential v0.1 — confirm stopword candidates by compositional scale (task #13): `tools/kgram_tfidf_differential.py` measures a candidate word's domain-specificity across n-gram ORDERS 3..7 (TF-IDF over domains + LSA/truncated-SVD top component) and takes the differential. Signal is discounted by intrinsic unigram specificity so a stopword embedded in a domain phrase ('the state machine') can't borrow the phrase's specificity. A true term PERSISTS across orders (confirmed-term = strongest un-stoplist proposal); a concentrated-but-diffuse word ('and') or a borrowed-specificity word ('the') stays unconfirmed. `validate-kgram-differential` teeth: set/class/state confirmed across 3..7; 'and' unconfirmed; 'the' stripped by the unigram discount. Closes the two-stage design (stopword deviation -> k-gram confirmation). Uses numpy.
Expand Down
13 changes: 11 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
.PHONY: validate validate-resource-contract validate-measurement validate-value-type validate-source-locator validate-sourceos-repo-manifest validate-mesh-action-registry validate-control-plane-examples validate-nlboot-examples validate-lattice-data-governai-examples validate-ops-history-examples validate-runtime-observability-examples validate-interpretability-examples validate-lifecycle-boundary-examples validate-svf-contracts validate-sync-cycle-receipts validate-onboarding-examples validate-runtime-causality-examples validate-agentic-os-examples validate-triparty-examples validate-labor-market-examples validate-supply-chain-risk-examples validate-reasoning-examples validate-mpcc-event-examples validate-knowledge-nugget-examples validate-semantic-action-examples validate-epistemic-kernel-examples validate-ab-update-examples validate-device-service-examples validate-duplicate-schema-ids validate-lawful-dispatch-receipt validate-architectural-building-block validate-agent-passport-examples validate-seam-definition-examples validate-agent-system-vocabulary validate-genesis-inception-examples validate-measurement validate-world-model-examples validate-eval-item-examples validate-ingestion-pipeline-examples validate-data-acquisition-examples validate-glossary-alignment-examples validate-data-class-examples validate-table-keys validate-dag-loop validate-vocab-currency-loop vocab-currency-dogfood validate-glossary-promotion validate-agreement validate-stopword-analysis stopword-analysis-live validate-kgram-differential validate-learned-dictionary
.PHONY: validate validate-resource-contract validate-measurement validate-value-type validate-source-locator validate-sourceos-repo-manifest validate-mesh-action-registry validate-control-plane-examples validate-nlboot-examples validate-lattice-data-governai-examples validate-ops-history-examples validate-runtime-observability-examples validate-interpretability-examples validate-lifecycle-boundary-examples validate-svf-contracts validate-sync-cycle-receipts validate-onboarding-examples validate-runtime-causality-examples validate-agentic-os-examples validate-triparty-examples validate-labor-market-examples validate-supply-chain-risk-examples validate-reasoning-examples validate-mpcc-event-examples validate-knowledge-nugget-examples validate-semantic-action-examples validate-epistemic-kernel-examples validate-ab-update-examples validate-device-service-examples validate-duplicate-schema-ids validate-lawful-dispatch-receipt validate-architectural-building-block validate-agent-passport-examples validate-seam-definition-examples validate-agent-system-vocabulary validate-genesis-inception-examples validate-measurement validate-world-model-examples validate-eval-item-examples validate-ingestion-pipeline-examples validate-data-acquisition-examples validate-glossary-alignment-examples validate-data-class-examples validate-table-keys validate-dag-loop validate-vocab-currency-loop vocab-currency-dogfood validate-glossary-promotion validate-agreement validate-stopword-analysis stopword-analysis-live validate-kgram-differential validate-learned-dictionary train-dataclass-classifiers

validate: validate-data-class-examples validate-glossary-alignment-examples validate-data-acquisition-examples validate-ingestion-pipeline-examples validate-control-plane-examples validate-nlboot-examples validate-lattice-data-governai-examples validate-ops-history-examples validate-runtime-observability-examples validate-interpretability-examples validate-lifecycle-boundary-examples validate-svf-contracts validate-sync-cycle-receipts validate-onboarding-examples validate-runtime-causality-examples validate-agentic-os-examples validate-triparty-examples validate-labor-market-examples validate-supply-chain-risk-examples validate-reasoning-examples validate-mpcc-event-examples validate-knowledge-nugget-examples validate-semantic-action-examples validate-epistemic-kernel-examples validate-ab-update-examples validate-device-service-examples validate-duplicate-schema-ids validate-value-type validate-source-locator validate-sourceos-repo-manifest validate-mesh-action-registry validate-lawful-dispatch-receipt validate-architectural-building-block validate-agent-passport-examples validate-seam-definition-examples validate-agent-system-vocabulary validate-genesis-inception-examples validate-measurement validate-world-model-examples validate-eval-item-examples validate-resource-contract validate-table-keys validate-dag-loop validate-vocab-currency-loop validate-glossary-promotion validate-agreement validate-stopword-analysis validate-kgram-differential validate-learned-dictionary
validate: validate-data-class-examples validate-glossary-alignment-examples validate-data-acquisition-examples validate-ingestion-pipeline-examples validate-control-plane-examples validate-nlboot-examples validate-lattice-data-governai-examples validate-ops-history-examples validate-runtime-observability-examples validate-interpretability-examples validate-lifecycle-boundary-examples validate-svf-contracts validate-sync-cycle-receipts validate-onboarding-examples validate-runtime-causality-examples validate-agentic-os-examples validate-triparty-examples validate-labor-market-examples validate-supply-chain-risk-examples validate-reasoning-examples validate-mpcc-event-examples validate-knowledge-nugget-examples validate-semantic-action-examples validate-epistemic-kernel-examples validate-ab-update-examples validate-device-service-examples validate-duplicate-schema-ids validate-value-type validate-source-locator validate-sourceos-repo-manifest validate-mesh-action-registry validate-lawful-dispatch-receipt validate-architectural-building-block validate-agent-passport-examples validate-seam-definition-examples validate-agent-system-vocabulary validate-genesis-inception-examples validate-measurement validate-world-model-examples validate-eval-item-examples validate-resource-contract validate-table-keys validate-dag-loop validate-vocab-currency-loop validate-glossary-promotion validate-agreement validate-stopword-analysis validate-kgram-differential validate-learned-dictionary validate-trained-classifiers
@echo "OK: validate"

validate-ingestion-pipeline-examples:
Expand Down Expand Up @@ -30,6 +30,15 @@ validate-learned-dictionary:
python3 -m pip install --user numpy >/dev/null
python3 tools/validate_learned_dictionary.py

validate-trained-classifiers:
python3 -m pip install --user jsonschema numpy referencing >/dev/null
python3 tools/validate_trained_classifiers.py

# On-demand: retrain + re-emit the DataClass classifier artifacts (deterministic).
train-dataclass-classifiers:
python3 -m pip install --user numpy >/dev/null
python3 tools/train_dataclass_classifiers.py

validate-stopword-analysis:
python3 tools/validate_stopword_analysis.py

Expand Down
19 changes: 19 additions & 0 deletions examples/model-manifest.dataclass-assigner.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"id": "urn:srcos:model-manifest:dataclass-assigner-lattice-v1",
"type": "ModelManifest",
"specVersion": "2.1.0",
"modelDigest": "sha256:6092cf3788d3cad23c5639dd5e10e92d74a652ccc56ef6250542a91beb452f04",
"displayName": "dataclass-assigner (monotone wide-and-deep)",
"architecture": "monotone-logistic-wide-and-deep",
"format": "onnx",
"quantization": "none",
"license": "Apache-2.0",
"signature": {
"algorithm": "ed25519",
"keyId": "srcos-model-signing-2026",
"signatureDigest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
},
"evidenceRefs": [
"urn:srcos:run:dataclass-currency-logistic-eval-001"
]
}
53 changes: 53 additions & 0 deletions examples/run.dataclass-eval.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"id": "urn:srcos:run:dataclass-currency-logistic-eval-001",
"type": "RunRecord",
"specVersion": "2.0.0",
"workload": {
"workloadId": "urn:srcos:workload:dataclass-assigner-train",
"kind": "container",
"image": "ghcr.io/srcos/dataclass-trainer:v1",
"entrypoint": "train",
"params": {
"metric": "accuracy",
"value": 1.0,
"perClassAccuracy": {
"revenue": 1.0,
"cost": 1.0
}
}
},
"sphere": {
"sphereId": "urn:srcos:sphere:platform_curated",
"name": "Platform Curated Sphere",
"boundary": {
"zone": "curated",
"networkPolicy": null,
"storagePolicy": null
},
"controls": {
"accessEnforcer": "enforcer.v2",
"provenance": "hashes",
"containerAttestation": "basic"
}
},
"inputs": [
{
"refType": "dataset",
"id": "urn:srcos:dataset:dataclass-assigner-weights",
"fieldPaths": []
}
],
"outputs": [
{
"refType": "dataset",
"id": "urn:srcos:dataset:dataclass-eval-report",
"fieldPaths": []
}
],
"tokenRef": "tok_dataclass",
"status": "succeeded",
"time": {
"startedAt": "2026-08-03T02:00:00Z",
"endedAt": "2026-08-03T02:00:20Z"
}
}
53 changes: 53 additions & 0 deletions examples/run.dataclass-train.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"id": "urn:srcos:run:dataclass-assigner-train-001",
"type": "RunRecord",
"specVersion": "2.0.0",
"workload": {
"workloadId": "urn:srcos:workload:dataclass-assigner-train",
"kind": "container",
"image": "ghcr.io/srcos/dataclass-trainer:v1",
"entrypoint": "train",
"params": {
"epochs": 400,
"lr": 0.3,
"monotonicFeatures": [
"token_magnitude",
"decimal_places"
]
}
},
"sphere": {
"sphereId": "urn:srcos:sphere:platform_curated",
"name": "Platform Curated Sphere",
"boundary": {
"zone": "curated",
"networkPolicy": null,
"storagePolicy": null
},
"controls": {
"accessEnforcer": "enforcer.v2",
"provenance": "hashes",
"containerAttestation": "basic"
}
},
"inputs": [
{
"refType": "dataset",
"id": "urn:srcos:dataset:dataclass-training",
"fieldPaths": []
}
],
"outputs": [
{
"refType": "dataset",
"id": "urn:srcos:dataset:dataclass-assigner-weights",
"fieldPaths": []
}
],
"tokenRef": "tok_dataclass",
"status": "succeeded",
"time": {
"startedAt": "2026-08-03T02:00:00Z",
"endedAt": "2026-08-03T02:00:20Z"
}
}
Loading
Loading