diff --git a/packs/register/convivial_v1.json b/packs/register/convivial_v1.json index fbf9a0e3..78a18353 100644 --- a/packs/register/convivial_v1.json +++ b/packs/register/convivial_v1.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "Warm, conversational register. Seeded openings and closings draw from small bounded buckets; depth follows the standard (3-domain) default. Variation is deterministic across (trace_hash, register_id, turn_idx). See ADR-0071.", "schema_version": "1.0.0", - "mastery_report_sha256": "1c1509fa4bc2aa71fbe3843f4cbc01c9c83fe0047dd4456a66a47a17a426df1c", + "mastery_report_sha256": "86baf0a9ee44f65bcce45ee83d42b1df563476e3efdadc9b3ac40f85caf14a7f", "display_name": "Convivial", "depth_preference": "standard", "realizer_overrides": { @@ -12,14 +12,14 @@ "discourse_markers": { "openings": [ "So,", - "Right \u2014", + "Right —", "OK," ], "transitions": [], "closings": [ "", - " \u2014 does that help?", - " \u2014 make sense?" + " — does that help?", + " — make sense?" ] } } diff --git a/packs/register/convivial_v1.mastery_report.json b/packs/register/convivial_v1.mastery_report.json index 76ab0987..92375e1c 100644 --- a/packs/register/convivial_v1.mastery_report.json +++ b/packs/register/convivial_v1.mastery_report.json @@ -14,11 +14,11 @@ "transitions_reserved": false }, "failure_reasons": [], - "issued_at": "2026-05-19T00:00:00Z", + "issued_at": "2026-05-20T00:00:00Z", "pack_source_sha256": "1d38450b67c55b4895662509aca774b10c198ddbe925ac2f6e2d6356b95adff3", "ratification_method": "seeded_variation_replay_equivalence", "ratified": true, "register_id": "convivial_v1", - "report_sha256": "1c1509fa4bc2aa71fbe3843f4cbc01c9c83fe0047dd4456a66a47a17a426df1c", + "report_sha256": "86baf0a9ee44f65bcce45ee83d42b1df563476e3efdadc9b3ac40f85caf14a7f", "schema_version": "1.0.0" } diff --git a/packs/register/default_neutral_v1.json b/packs/register/default_neutral_v1.json index 3629b72d..a795147d 100644 --- a/packs/register/default_neutral_v1.json +++ b/packs/register/default_neutral_v1.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "Default neutral register. Empty realizer overrides and empty discourse markers. Ratification gate is byte-identity with the unregistered realizer path. See ADR-0068.", "schema_version": "1.0.0", - "mastery_report_sha256": "1bc62bfc36e4b3edbeb3764b2523ac77d2b1e98ec4729aab7463299a117f7100", + "mastery_report_sha256": "83e5a7bd968189a548a3019429c33f95bad51150b04f4ffe01ecb015b914533d", "display_name": "Default neutral", "depth_preference": "standard", "realizer_overrides": {}, diff --git a/packs/register/default_neutral_v1.mastery_report.json b/packs/register/default_neutral_v1.mastery_report.json index ec20bc4a..47d07389 100644 --- a/packs/register/default_neutral_v1.mastery_report.json +++ b/packs/register/default_neutral_v1.mastery_report.json @@ -12,11 +12,11 @@ "transitions_reserved": false }, "failure_reasons": [], - "issued_at": "2026-05-19T00:00:00Z", + "issued_at": "2026-05-20T00:00:00Z", "pack_source_sha256": "380787ce83ef46498ef467bbb9e54c8f8b3574fd5b33c373cb3c7a74169155e3", "ratification_method": "byte_identity_null_lift", "ratified": true, "register_id": "default_neutral_v1", - "report_sha256": "1bc62bfc36e4b3edbeb3764b2523ac77d2b1e98ec4729aab7463299a117f7100", + "report_sha256": "83e5a7bd968189a548a3019429c33f95bad51150b04f4ffe01ecb015b914533d", "schema_version": "1.0.0" } diff --git a/packs/register/formal_v1.json b/packs/register/formal_v1.json index 177b27c0..d128d014 100644 --- a/packs/register/formal_v1.json +++ b/packs/register/formal_v1.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "Formal register. Standard depth with drop_provenance_tag=true and drop_articles=true. Suppresses the parenthetical meta-tag and indefinite/definite articles from gloss surface text, producing the most austere and technically precise output surface of the register pack family. Suitable for legal, technical, and academic output contexts. See ADR-0068, ADR-0070, R6.", "schema_version": "1.0.0", - "mastery_report_sha256": "", + "mastery_report_sha256": "52875b32b65103f7942b3ef44db981f1d7b3e73d5bc566cac0a236865b09a5a0", "display_name": "Formal", "depth_preference": "standard", "realizer_overrides": { diff --git a/packs/register/formal_v1.mastery_report.json b/packs/register/formal_v1.mastery_report.json new file mode 100644 index 00000000..02bddcf9 --- /dev/null +++ b/packs/register/formal_v1.mastery_report.json @@ -0,0 +1,25 @@ +{ + "evidence": { + "depth_preference": "standard", + "discourse_markers_empty": true, + "marker_bucket_sizes": { + "closings": 0, + "openings": 0, + "transitions": 0 + }, + "realizer_overrides_empty": false, + "realizer_overrides_keys": [ + "drop_articles", + "drop_provenance_tag" + ], + "transitions_reserved": false + }, + "failure_reasons": [], + "issued_at": "2026-05-20T00:00:00Z", + "pack_source_sha256": "1f8c25761e9e01c991fe1fafe8daff86c63899ea5d3c41c7022dab8c3a8ea40e", + "ratification_method": "known_key_overrides_invariant_grounding", + "ratified": true, + "register_id": "formal_v1", + "report_sha256": "52875b32b65103f7942b3ef44db981f1d7b3e73d5bc566cac0a236865b09a5a0", + "schema_version": "1.0.0" +} diff --git a/packs/register/pedagogical_v1.json b/packs/register/pedagogical_v1.json index 63d0b141..a6d5583d 100644 --- a/packs/register/pedagogical_v1.json +++ b/packs/register/pedagogical_v1.json @@ -1,9 +1,9 @@ { "register_id": "pedagogical_v1", "version": "1.0.0", - "description": "Pedagogical register. Uses the 'pedagogical' depth tier to expand disclosure across all available semantic domains, with append_semantic_domain_clause=true to anchor each gloss with full semantic domain context. Discourse markers scaffold Socratic progression \u2014 questions fold back to the learner, transitions move the inquiry forward. Variation is deterministic across (trace_hash, register_id, turn_idx). See ADR-0071, R6.", + "description": "Pedagogical register. Uses the 'pedagogical' depth tier to expand disclosure across all available semantic domains, with append_semantic_domain_clause=true to anchor each gloss with full semantic domain context. Discourse markers scaffold Socratic progression — questions fold back to the learner, transitions move the inquiry forward. Variation is deterministic across (trace_hash, register_id, turn_idx). See ADR-0071, R6.", "schema_version": "1.0.0", - "mastery_report_sha256": "96733f1244621e4951dcf01217f6394417bbdf3143657fedfb41677f8337fbf9", + "mastery_report_sha256": "1752f7c6c561998c83e225bf175b2347f6843a7bce8ee367235de3e040a72fa5", "display_name": "Pedagogical", "depth_preference": "pedagogical", "realizer_overrides": { @@ -11,20 +11,20 @@ }, "discourse_markers": { "openings": [ - "Let's think through this \u2014", + "Let's think through this —", "Consider:", - "Here's the core of it \u2014", + "Here's the core of it —", "" ], "transitions": [ - "Now, the key move is \u2014", + "Now, the key move is —", "Which raises the question:", "Notice that" ], "closings": [ - " \u2014 does that step make sense?", - " \u2014 what does that imply for you?", - " \u2014 where does that land?", + " — does that step make sense?", + " — what does that imply for you?", + " — where does that land?", "" ] } diff --git a/packs/register/pedagogical_v1.mastery_report.json b/packs/register/pedagogical_v1.mastery_report.json index 39ee813b..cf3f8535 100644 --- a/packs/register/pedagogical_v1.mastery_report.json +++ b/packs/register/pedagogical_v1.mastery_report.json @@ -14,11 +14,11 @@ "transitions_reserved": true }, "failure_reasons": [], - "issued_at": "2026-05-19T00:00:00Z", + "issued_at": "2026-05-20T00:00:00Z", "pack_source_sha256": "037a25e05f6f2b552615b7330b291186bcac5f5bb2ea3791ec34a93281cb9b58", "ratification_method": "seeded_variation_replay_equivalence", "ratified": true, "register_id": "pedagogical_v1", - "report_sha256": "96733f1244621e4951dcf01217f6394417bbdf3143657fedfb41677f8337fbf9", + "report_sha256": "1752f7c6c561998c83e225bf175b2347f6843a7bce8ee367235de3e040a72fa5", "schema_version": "1.0.0" } diff --git a/packs/register/precise_v1.json b/packs/register/precise_v1.json index fbee6439..252ba336 100644 --- a/packs/register/precise_v1.json +++ b/packs/register/precise_v1.json @@ -1,9 +1,9 @@ { "register_id": "precise_v1", "version": "1.0.0", - "description": "Precise register. Standard depth with disclosure_domain_count=2 and drop_provenance_tag=true. Exposes exactly two semantic domains (focused but not terse), and drops the parenthetical meta-tag from gloss output \u2014 giving formal, clean surface text. Occupies the focused/technical pole: more substantive than terse_v1 (count=1) but narrower than default_neutral_v1 (count=3, no tag suppression). See ADR-0068, ADR-0070, R6.", + "description": "Precise register. Standard depth with disclosure_domain_count=2 and drop_provenance_tag=true. Exposes exactly two semantic domains (focused but not terse), and drops the parenthetical meta-tag from gloss output — giving formal, clean surface text. Occupies the focused/technical pole: more substantive than terse_v1 (count=1) but narrower than default_neutral_v1 (count=3, no tag suppression). See ADR-0068, ADR-0070, R6.", "schema_version": "1.0.0", - "mastery_report_sha256": "35d37773282bce13be19c7e1228d1036048fa5c1c79b9f0506dd4909a0d176e4", + "mastery_report_sha256": "17e35dcbe695290bf157e1d91d7df56a938f79095338a3f7d2d2bbb924d85cf6", "display_name": "Precise", "depth_preference": "standard", "realizer_overrides": { diff --git a/packs/register/precise_v1.mastery_report.json b/packs/register/precise_v1.mastery_report.json index 569c4f1a..4221d1f6 100644 --- a/packs/register/precise_v1.mastery_report.json +++ b/packs/register/precise_v1.mastery_report.json @@ -15,11 +15,11 @@ "transitions_reserved": false }, "failure_reasons": [], - "issued_at": "2026-05-19T00:00:00Z", + "issued_at": "2026-05-20T00:00:00Z", "pack_source_sha256": "36deccbca04a9f1afa84ae76e01842ffd2ff324a52ed5f1a8275d7995a544ad2", "ratification_method": "known_key_overrides_invariant_grounding", "ratified": true, "register_id": "precise_v1", - "report_sha256": "35d37773282bce13be19c7e1228d1036048fa5c1c79b9f0506dd4909a0d176e4", + "report_sha256": "17e35dcbe695290bf157e1d91d7df56a938f79095338a3f7d2d2bbb924d85cf6", "schema_version": "1.0.0" } diff --git a/packs/register/socratic_v1.json b/packs/register/socratic_v1.json index bb134f98..d034e597 100644 --- a/packs/register/socratic_v1.json +++ b/packs/register/socratic_v1.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "Socratic register. Pedagogical depth with append_semantic_domain_clause=true. Discourse markers are question-oriented: openings pose the inquiry, transitions surface the dialectical move, closings return the question to the interlocutor. Variation is deterministic across (trace_hash, register_id, turn_idx). Distinct from pedagogical_v1: no declarative scaffolding — every marker is interrogative. See ADR-0068, ADR-0071, R6.", "schema_version": "1.0.0", - "mastery_report_sha256": "", + "mastery_report_sha256": "be0c983aa894aeaacffd0809d617ea67f884aee448019311d8ec85cb80af03b4", "display_name": "Socratic", "depth_preference": "pedagogical", "realizer_overrides": { diff --git a/packs/register/socratic_v1.mastery_report.json b/packs/register/socratic_v1.mastery_report.json new file mode 100644 index 00000000..b2ed4d47 --- /dev/null +++ b/packs/register/socratic_v1.mastery_report.json @@ -0,0 +1,24 @@ +{ + "evidence": { + "depth_preference": "pedagogical", + "discourse_markers_empty": false, + "marker_bucket_sizes": { + "closings": 4, + "openings": 4, + "transitions": 3 + }, + "realizer_overrides_empty": false, + "realizer_overrides_keys": [ + "append_semantic_domain_clause" + ], + "transitions_reserved": true + }, + "failure_reasons": [], + "issued_at": "2026-05-20T00:00:00Z", + "pack_source_sha256": "856041fe69a71bbbef24efef372b72f94227ab89ad8283525cadfbff8d54d0f5", + "ratification_method": "seeded_variation_replay_equivalence", + "ratified": true, + "register_id": "socratic_v1", + "report_sha256": "be0c983aa894aeaacffd0809d617ea67f884aee448019311d8ec85cb80af03b4", + "schema_version": "1.0.0" +} diff --git a/packs/register/terse_v1.json b/packs/register/terse_v1.json index e0f294b6..791528d2 100644 --- a/packs/register/terse_v1.json +++ b/packs/register/terse_v1.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "Terse register. Compresses without-gloss disclosure to one semantic domain. Grounding source and trace hash are invariant against default_neutral_v1; only surface wording varies. See ADR-0070.", "schema_version": "1.0.0", - "mastery_report_sha256": "16c9be145e954f8adff01f37219c46059d65dc473de1f6e90f8b63acc5c7a862", + "mastery_report_sha256": "b31baad034cdcbbaa77016b711b4ebce8651170752fa1a250a9b467d59354199", "display_name": "Terse", "depth_preference": "terse", "realizer_overrides": { diff --git a/packs/register/terse_v1.mastery_report.json b/packs/register/terse_v1.mastery_report.json index a7b8004b..063bd002 100644 --- a/packs/register/terse_v1.mastery_report.json +++ b/packs/register/terse_v1.mastery_report.json @@ -17,11 +17,11 @@ "transitions_reserved": false }, "failure_reasons": [], - "issued_at": "2026-05-19T00:00:00Z", + "issued_at": "2026-05-20T00:00:00Z", "pack_source_sha256": "b95b886701a9193ba96ce45984c22c1ed5e588b572b05587905d3e6a884c05bc", "ratification_method": "known_key_overrides_invariant_grounding", "ratified": true, "register_id": "terse_v1", - "report_sha256": "16c9be145e954f8adff01f37219c46059d65dc473de1f6e90f8b63acc5c7a862", + "report_sha256": "b31baad034cdcbbaa77016b711b4ebce8651170752fa1a250a9b467d59354199", "schema_version": "1.0.0" } diff --git a/scripts/ratify_anchor_lens_packs.py b/scripts/ratify_anchor_lens_packs.py index bc93aec3..99c53ecf 100644 --- a/scripts/ratify_anchor_lens_packs.py +++ b/scripts/ratify_anchor_lens_packs.py @@ -161,7 +161,9 @@ def main() -> int: return 1 report_path = PACKS_DIR / f"{lens_id}.mastery_report.json" - report_text = json.dumps(report_dict, indent=2, sort_keys=True) + "\n" + report_text = json.dumps( + report_dict, indent=2, sort_keys=True, ensure_ascii=False, + ) + "\n" prior_report = ( report_path.read_text(encoding="utf-8") if report_path.is_file() @@ -180,7 +182,8 @@ def main() -> int: skipped += 1 continue pack_path.write_text( - json.dumps(pack_after, indent=2) + "\n", encoding="utf-8" + json.dumps(pack_after, indent=2, ensure_ascii=False) + "\n", + encoding="utf-8", ) report_path.write_text(report_text, encoding="utf-8") print( diff --git a/scripts/ratify_register_packs.py b/scripts/ratify_register_packs.py index 05c5f6b5..1dc64862 100644 --- a/scripts/ratify_register_packs.py +++ b/scripts/ratify_register_packs.py @@ -274,7 +274,9 @@ def main() -> int: return 1 report_path = PACKS_DIR / f"{register_id}.mastery_report.json" - report_text = json.dumps(report_dict, indent=2, sort_keys=True) + "\n" + report_text = json.dumps( + report_dict, indent=2, sort_keys=True, ensure_ascii=False, + ) + "\n" prior_report = ( report_path.read_text(encoding="utf-8") if report_path.is_file() @@ -293,7 +295,8 @@ def main() -> int: skipped += 1 continue pack_path.write_text( - json.dumps(pack_after, indent=2) + "\n", encoding="utf-8", + json.dumps(pack_after, indent=2, ensure_ascii=False) + "\n", + encoding="utf-8", ) report_path.write_text(report_text, encoding="utf-8") print(