frontmattering 0.4.2__tar.gz → 0.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. {frontmattering-0.4.2 → frontmattering-0.4.3}/CHANGELOG.md +9 -0
  2. {frontmattering-0.4.2/kernel/frontmattering.egg-info → frontmattering-0.4.3}/PKG-INFO +5 -5
  3. {frontmattering-0.4.2 → frontmattering-0.4.3}/README.md +4 -4
  4. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/AI_INDEX.json +8 -8
  5. {frontmattering-0.4.2/kernel/frontmattering/resources → frontmattering-0.4.3/kernel}/KERNEL_ACCEPTANCE_REPORT.md +1 -1
  6. frontmattering-0.4.3/kernel/frontmattering/__init__.py +1 -0
  7. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/__main__.py +5 -5
  8. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/AI_INDEX.json +8 -8
  9. {frontmattering-0.4.2/kernel → frontmattering-0.4.3/kernel/frontmattering/resources}/KERNEL_ACCEPTANCE_REPORT.md +1 -1
  10. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_pilot_readiness.py +3 -3
  11. {frontmattering-0.4.2/kernel → frontmattering-0.4.3/kernel/frontmattering/resources}/tools/distribution_receipt.py +1 -1
  12. {frontmattering-0.4.2/kernel → frontmattering-0.4.3/kernel/frontmattering/resources}/tools/generate_ai_index.py +26 -4
  13. {frontmattering-0.4.2 → frontmattering-0.4.3/kernel/frontmattering.egg-info}/PKG-INFO +5 -5
  14. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_pilot_readiness.py +3 -3
  15. {frontmattering-0.4.2/kernel/frontmattering/resources → frontmattering-0.4.3/kernel}/tools/distribution_receipt.py +1 -1
  16. {frontmattering-0.4.2/kernel/frontmattering/resources → frontmattering-0.4.3/kernel}/tools/generate_ai_index.py +26 -4
  17. {frontmattering-0.4.2 → frontmattering-0.4.3}/pyproject.toml +1 -1
  18. frontmattering-0.4.2/kernel/frontmattering/__init__.py +0 -1
  19. {frontmattering-0.4.2 → frontmattering-0.4.3}/.editorconfig +0 -0
  20. {frontmattering-0.4.2 → frontmattering-0.4.3}/.gitattributes +0 -0
  21. {frontmattering-0.4.2 → frontmattering-0.4.3}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  22. {frontmattering-0.4.2 → frontmattering-0.4.3}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  23. {frontmattering-0.4.2 → frontmattering-0.4.3}/.github/pull_request_template.md +0 -0
  24. {frontmattering-0.4.2 → frontmattering-0.4.3}/.github/workflows/ci.yml +0 -0
  25. {frontmattering-0.4.2 → frontmattering-0.4.3}/.github/workflows/release.yml +0 -0
  26. {frontmattering-0.4.2 → frontmattering-0.4.3}/.gitignore +0 -0
  27. {frontmattering-0.4.2 → frontmattering-0.4.3}/CODE_OF_CONDUCT.md +0 -0
  28. {frontmattering-0.4.2 → frontmattering-0.4.3}/COMMERCIAL_LICENSE_REQUIRED.md +0 -0
  29. {frontmattering-0.4.2 → frontmattering-0.4.3}/CONTRIBUTING.md +0 -0
  30. {frontmattering-0.4.2 → frontmattering-0.4.3}/FRONTMATTERING_V0_4_2_DELIVERY_NOTE.md +0 -0
  31. {frontmattering-0.4.2 → frontmattering-0.4.3}/FRONTMATTERING_v0_4_2_RELEASE_SUMMARY.md +0 -0
  32. {frontmattering-0.4.2 → frontmattering-0.4.3}/GOVERNANCE.md +0 -0
  33. {frontmattering-0.4.2 → frontmattering-0.4.3}/LICENSE.md +0 -0
  34. {frontmattering-0.4.2 → frontmattering-0.4.3}/MANIFEST.in +0 -0
  35. {frontmattering-0.4.2 → frontmattering-0.4.3}/NOTICE +0 -0
  36. {frontmattering-0.4.2 → frontmattering-0.4.3}/RELEASE_NOTES_v0_4_2.md +0 -0
  37. {frontmattering-0.4.2 → frontmattering-0.4.3}/REPOSITORY_STATUS.md +0 -0
  38. {frontmattering-0.4.2 → frontmattering-0.4.3}/SECURITY.md +0 -0
  39. {frontmattering-0.4.2 → frontmattering-0.4.3}/SUPPORT.md +0 -0
  40. {frontmattering-0.4.2 → frontmattering-0.4.3}/THIRD_PARTY_NOTICES.md +0 -0
  41. {frontmattering-0.4.2 → frontmattering-0.4.3}/TRADEMARKS.md +0 -0
  42. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/README.md +0 -0
  43. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/benchmark_contract.yaml +0 -0
  44. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/expected_answers.yaml +0 -0
  45. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/fixtures/README.md +0 -0
  46. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/participant_receipt.schema.json +0 -0
  47. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/source_corpus/00_START_HERE.md +0 -0
  48. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/source_corpus/10_NORMATIVE_SPEC.md +0 -0
  49. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/source_corpus/20_IMPLEMENTATION_CONTRACT.md +0 -0
  50. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/source_corpus/21_LEGACY_IMPLEMENTATION_CONTRACT.md +0 -0
  51. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/source_corpus/30_TEST_SUFFICIENCY.md +0 -0
  52. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/source_corpus/40_EVIDENCE_RECORD.md +0 -0
  53. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/source_corpus/50_RELEASE_DECISION.md +0 -0
  54. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/tasks.yaml +0 -0
  55. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/tools/build_arms.py +0 -0
  56. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/tools/check_content_equivalence.py +0 -0
  57. {frontmattering-0.4.2 → frontmattering-0.4.3}/benchmarks/cold_start_v1/tools/score.py +0 -0
  58. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/AI_START_HERE.md +0 -0
  59. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/DAILY_USE_GUIDE.md +0 -0
  60. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/FRONTMATTERING_FRONTMATTER_SPEC_v0_1_5.md +0 -0
  61. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/no_frontmatter_demo/00_AI_START_HERE.md +0 -0
  62. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/no_frontmatter_demo/10_NORMATIVE_SPEC.md +0 -0
  63. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/no_frontmatter_demo/20_IMPLEMENTATION_CONTRACT.md +0 -0
  64. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/no_frontmatter_demo/30_TEST_SUFFICIENCY.md +0 -0
  65. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/no_frontmatter_demo/40_EVIDENCE_RECORD.md +0 -0
  66. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/no_frontmatter_demo/50_RELEASE_DECISION.md +0 -0
  67. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/power_demo/00_AI_START_HERE.md +0 -0
  68. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/power_demo/10_NORMATIVE_SPEC.md +0 -0
  69. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/power_demo/20_IMPLEMENTATION_CONTRACT.md +0 -0
  70. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/power_demo/30_TEST_SUFFICIENCY.md +0 -0
  71. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/power_demo/40_EVIDENCE_RECORD.md +0 -0
  72. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/examples/power_demo/50_RELEASE_DECISION.md +0 -0
  73. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/adoption_digest_mismatch_rejected/doc.md +0 -0
  74. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/adoption_record_on_wrong_role_rejected/doc.md +0 -0
  75. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/adoption_record_shape_rejected/doc.md +0 -0
  76. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/adoption_without_bootstrap_receipt_rejected/doc.md +0 -0
  77. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/authored_go_used_as_evidence_rejected/doc.md +0 -0
  78. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/body_tether_body_digest_mismatch_rejected/doc.md +0 -0
  79. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/body_tether_fields_mismatch_rejected/doc.md +0 -0
  80. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/body_tether_malformed_rejected/doc.md +0 -0
  81. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/body_tether_missing_under_trust_rejected/.frontmattering/project.yaml +0 -0
  82. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/body_tether_missing_under_trust_rejected/doc.md +0 -0
  83. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/body_tether_scope_selector_rejected/doc.md +0 -0
  84. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/body_tether_unknown_canonicalization_rejected/doc.md +0 -0
  85. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/bootstrap_receipt_shape_rejected/doc.md +0 -0
  86. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/bootstrap_without_validator_blocks_adoption/doc.md +0 -0
  87. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/claim_boundary_missing_does_not_verify_rejected/doc.md +0 -0
  88. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/claimed_state_overreach_rejected/doc.md +0 -0
  89. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/clause_enforcement_drift_rejected/doc.md +0 -0
  90. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/container_cardinality_rejected/doc.md +0 -0
  91. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/deepest_intention_missing_rejected/doc.md +0 -0
  92. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/downstream_phase_without_upstream_evidence_rejected/doc.md +0 -0
  93. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/duplicate_document_id_rejected/a.md +0 -0
  94. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/duplicate_document_id_rejected/b.md +0 -0
  95. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/duplicate_yaml_key_rejected/doc.md +0 -0
  96. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/evidence_edge_digest_missing_rejected/doc.md +0 -0
  97. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/evidence_reference_used_as_truth_rejected/doc.md +0 -0
  98. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/external_edge_locator_missing_rejected/doc.md +0 -0
  99. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/external_edge_set_id_missing_rejected/doc.md +0 -0
  100. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/extracted_catalog_drift_rejected/doc.md +0 -0
  101. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/fixture_reverse_reachability_drift_rejected/doc.md +0 -0
  102. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/frontmatter_only_view_incomplete_rejected/doc.md +0 -0
  103. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/frontmatter_registry_conflict_blocks/doc.md +0 -0
  104. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/frontmatter_view_body_truth_overclaim_rejected/doc.md +0 -0
  105. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/generated_state_in_frontmatter_rejected/doc.md +0 -0
  106. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/green_checks_conflation_rejected/doc.md +0 -0
  107. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/historical_digest_used_as_current_evidence_rejected/doc.md +0 -0
  108. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/implementation_start_gate_bypass_rejected/doc.md +0 -0
  109. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/intention_positive_negative_conflation_rejected/doc.md +0 -0
  110. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/legacy_string_machine_surface_requires_mapping/doc.md +0 -0
  111. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/load_order_inversion_flagged/a.md +0 -0
  112. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/load_order_inversion_flagged/b.md +0 -0
  113. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/machine_surface_identity_incomplete_rejected/doc.md +0 -0
  114. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/migration_field_drop_rejected/doc.md +0 -0
  115. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/migration_silent_coercion_rejected/doc.md +0 -0
  116. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/missing_frontmatter_rejected/doc.md +0 -0
  117. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/non_root_exception_or_silent_fallback_rejected/doc.md +0 -0
  118. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/nonowner_redefines_intention_rejected/doc.md +0 -0
  119. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/output_format_conflation_rejected/doc.md +0 -0
  120. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/parser_byte_ranges_missing_rejected/doc.md +0 -0
  121. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/parser_partial_model_on_error_rejected/doc.md +0 -0
  122. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/parser_source_locator_missing_rejected/doc.md +0 -0
  123. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/projected_field_without_origin_rejected/doc.md +0 -0
  124. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/projection_rebuild_nondeterminism_rejected/doc.md +0 -0
  125. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/projection_row_without_source_locator_rejected/doc.md +0 -0
  126. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/relationship_resolution_scope_missing_rejected/doc.md +0 -0
  127. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/relationship_resolution_scope_unknown_rejected/doc.md +0 -0
  128. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/relationship_semantics_rejected/doc.md +0 -0
  129. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/relationship_target_unresolved_rejected/doc.md +0 -0
  130. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/release_surface_digest_missing_rejected/doc.md +0 -0
  131. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/required_dependency_cycle_rejected/a.md +0 -0
  132. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/required_dependency_cycle_rejected/b.md +0 -0
  133. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/routing_tag_not_in_task_catalog_rejected/doc.md +0 -0
  134. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/routing_tag_router_not_in_scope_rejected/doc.md +0 -0
  135. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/scope_on_nonsupersedes_rejected/doc.md +0 -0
  136. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/stale_bootstrap_receipt_rejected/doc.md +0 -0
  137. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/stale_validation_result_rejected/doc.md +0 -0
  138. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/supersedes_without_scope_rejected/doc.md +0 -0
  139. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/target_section_not_found_rejected/a.md +0 -0
  140. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/target_section_not_found_rejected/b.md +0 -0
  141. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/target_sections_on_external_edge_rejected/doc.md +0 -0
  142. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/task_scoped_defects_filtering/router.md +0 -0
  143. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/task_scoped_defects_filtering/selected.md +0 -0
  144. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/task_scoped_defects_filtering/skipped.md +0 -0
  145. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/template_claims_normative_authority_rejected/doc.md +0 -0
  146. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/two_documents_own_same_intention_rejected/a.md +0 -0
  147. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/two_documents_own_same_intention_rejected/b.md +0 -0
  148. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/undefined_conditional_token_rejected/doc.md +0 -0
  149. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/undefined_type_rejected/doc.md +0 -0
  150. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/unknown_authority_rejected/doc.md +0 -0
  151. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/unknown_document_role_rejected/doc.md +0 -0
  152. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/unknown_field_rejected/doc.md +0 -0
  153. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/unknown_root_block_rejected/doc.md +0 -0
  154. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/unresolved_reference_on_required_edge_rejected/doc.md +0 -0
  155. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/unsupported_schema_version_rejected/doc.md +0 -0
  156. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/untemplated_frontmatter_bypass_rejected/doc.md +0 -0
  157. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/validator_passes_conflation_rejected/doc.md +0 -0
  158. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/invalid/yaml_1_1_boolean_words_not_coerced/doc.md +0 -0
  159. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/blockquote.md +0 -0
  160. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/code_fence.md +0 -0
  161. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/dangerous_html.md +0 -0
  162. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/dangerous_uri.md +0 -0
  163. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/direct_instruction.md +0 -0
  164. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/generated_resource_limits.yaml +0 -0
  165. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/indirect_instruction.md +0 -0
  166. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/legitimate_security_discussion.md +0 -0
  167. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/link.md +0 -0
  168. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/pilot_security/table.md +0 -0
  169. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/adoption_locator_trigger_word_is_data_valid/doc.md +0 -0
  170. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/body_tether_fresh_valid/doc.md +0 -0
  171. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/bootstrap_validation_receipt_valid/doc.md +0 -0
  172. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/claim_prose_substrings_are_not_verdicts_valid/doc.md +0 -0
  173. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/companion_and_appendix_edges_valid/a.md +0 -0
  174. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/companion_and_appendix_edges_valid/b.md +0 -0
  175. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/document_binding_to_external_intention_valid/doc.md +0 -0
  176. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/document_realizing_external_intention_valid/doc.md +0 -0
  177. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/document_referencing_external_intention_valid/doc.md +0 -0
  178. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/evidence_record_valid/doc.md +0 -0
  179. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/evidence_support_substrings_are_not_proof_valid/doc.md +0 -0
  180. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/external_document_set_edge_valid/doc.md +0 -0
  181. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/frontmatter_adoption_record_valid/doc.md +0 -0
  182. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/frontmatter_projection_mapping_valid/doc.md +0 -0
  183. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/frontmatter_spec_bootstrap_valid/doc.md +0 -0
  184. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/implementation_contract_valid/doc.md +0 -0
  185. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/normative_spec_valid/doc.md +0 -0
  186. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/orientation_router_valid/doc.md +0 -0
  187. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/release_metadata_valid/doc.md +0 -0
  188. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/target_sections_resolved_valid/a.md +0 -0
  189. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/target_sections_resolved_valid/b.md +0 -0
  190. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/template_valid/doc.md +0 -0
  191. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/unresolved_reference_optional_edge_valid/doc.md +0 -0
  192. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/untemplated_document_valid/doc.md +0 -0
  193. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/fixtures/valid/yaml_1_2_plain_words_valid/doc.md +0 -0
  194. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/FRONTMATTER_INDEX_PROVENANCE.json +0 -0
  195. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/ai_instruction_risk.py +0 -0
  196. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/authoring.py +0 -0
  197. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/body_tether.py +0 -0
  198. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/common/__init__.py +0 -0
  199. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/common/errors.py +0 -0
  200. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/core.py +0 -0
  201. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/corpus_selection.py +0 -0
  202. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/frontmatter_index.py +0 -0
  203. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/harness_errors.py +0 -0
  204. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/inventory.py +0 -0
  205. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/MARKDOWN_PARSE_RESULT_schema.json +0 -0
  206. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/MARKDOWN_PROVENANCE.json +0 -0
  207. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/USER_MANUAL.md +0 -0
  208. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/__init__.py +0 -0
  209. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/api.py +0 -0
  210. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/cli/__init__.py +0 -0
  211. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/cli/__main__.py +0 -0
  212. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/cli/dump_sections.py +0 -0
  213. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/__init__.py +0 -0
  214. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/blockquotes.py +0 -0
  215. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/codeblocks.py +0 -0
  216. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/footnotes.py +0 -0
  217. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/frontmatter.py +0 -0
  218. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/headings.py +0 -0
  219. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/html.py +0 -0
  220. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/html_collector.py +0 -0
  221. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/images.py +0 -0
  222. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/inline_code.py +0 -0
  223. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/links.py +0 -0
  224. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/lists.py +0 -0
  225. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/math.py +0 -0
  226. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/paragraphs.py +0 -0
  227. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/tables.py +0 -0
  228. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/collectors_phase8/tasklists.py +0 -0
  229. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/fetchers/__init__.py +0 -0
  230. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/fetchers/preview.py +0 -0
  231. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/fetchers/url_fetcher.py +0 -0
  232. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/security/__init__.py +0 -0
  233. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/security/scanner.py +0 -0
  234. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/utils/__init__.py +0 -0
  235. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/utils/profiling.py +0 -0
  236. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/utils/section.py +0 -0
  237. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/utils/text_normalization.py +0 -0
  238. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/utils/timeout.py +0 -0
  239. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/utils/token_warehouse.py +0 -0
  240. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/markdown/utils/url_utils.py +0 -0
  241. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/promotion.py +0 -0
  242. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/AI_START_HERE.md +0 -0
  243. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/DAILY_USE_GUIDE.md +0 -0
  244. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/FRONTMATTERING_FRONTMATTER_SPEC_v0_1_5.md +0 -0
  245. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/__init__.py +0 -0
  246. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/no_frontmatter_demo/00_AI_START_HERE.md +0 -0
  247. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/no_frontmatter_demo/10_NORMATIVE_SPEC.md +0 -0
  248. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/no_frontmatter_demo/20_IMPLEMENTATION_CONTRACT.md +0 -0
  249. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/no_frontmatter_demo/30_TEST_SUFFICIENCY.md +0 -0
  250. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/no_frontmatter_demo/40_EVIDENCE_RECORD.md +0 -0
  251. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/no_frontmatter_demo/50_RELEASE_DECISION.md +0 -0
  252. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/power_demo/00_AI_START_HERE.md +0 -0
  253. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/power_demo/10_NORMATIVE_SPEC.md +0 -0
  254. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/power_demo/20_IMPLEMENTATION_CONTRACT.md +0 -0
  255. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/power_demo/30_TEST_SUFFICIENCY.md +0 -0
  256. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/power_demo/40_EVIDENCE_RECORD.md +0 -0
  257. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/examples/power_demo/50_RELEASE_DECISION.md +0 -0
  258. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/adoption_digest_mismatch_rejected/doc.md +0 -0
  259. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/adoption_record_on_wrong_role_rejected/doc.md +0 -0
  260. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/adoption_record_shape_rejected/doc.md +0 -0
  261. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/adoption_without_bootstrap_receipt_rejected/doc.md +0 -0
  262. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/authored_go_used_as_evidence_rejected/doc.md +0 -0
  263. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/body_tether_body_digest_mismatch_rejected/doc.md +0 -0
  264. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/body_tether_fields_mismatch_rejected/doc.md +0 -0
  265. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/body_tether_malformed_rejected/doc.md +0 -0
  266. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/body_tether_missing_under_trust_rejected/.frontmattering/project.yaml +0 -0
  267. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/body_tether_missing_under_trust_rejected/doc.md +0 -0
  268. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/body_tether_scope_selector_rejected/doc.md +0 -0
  269. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/body_tether_unknown_canonicalization_rejected/doc.md +0 -0
  270. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/bootstrap_receipt_shape_rejected/doc.md +0 -0
  271. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/bootstrap_without_validator_blocks_adoption/doc.md +0 -0
  272. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/claim_boundary_missing_does_not_verify_rejected/doc.md +0 -0
  273. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/claimed_state_overreach_rejected/doc.md +0 -0
  274. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/clause_enforcement_drift_rejected/doc.md +0 -0
  275. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/container_cardinality_rejected/doc.md +0 -0
  276. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/deepest_intention_missing_rejected/doc.md +0 -0
  277. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/downstream_phase_without_upstream_evidence_rejected/doc.md +0 -0
  278. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/duplicate_document_id_rejected/a.md +0 -0
  279. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/duplicate_document_id_rejected/b.md +0 -0
  280. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/duplicate_yaml_key_rejected/doc.md +0 -0
  281. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/evidence_edge_digest_missing_rejected/doc.md +0 -0
  282. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/evidence_reference_used_as_truth_rejected/doc.md +0 -0
  283. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/external_edge_locator_missing_rejected/doc.md +0 -0
  284. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/external_edge_set_id_missing_rejected/doc.md +0 -0
  285. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/extracted_catalog_drift_rejected/doc.md +0 -0
  286. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/fixture_reverse_reachability_drift_rejected/doc.md +0 -0
  287. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/frontmatter_only_view_incomplete_rejected/doc.md +0 -0
  288. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/frontmatter_registry_conflict_blocks/doc.md +0 -0
  289. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/frontmatter_view_body_truth_overclaim_rejected/doc.md +0 -0
  290. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/generated_state_in_frontmatter_rejected/doc.md +0 -0
  291. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/green_checks_conflation_rejected/doc.md +0 -0
  292. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/historical_digest_used_as_current_evidence_rejected/doc.md +0 -0
  293. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/implementation_start_gate_bypass_rejected/doc.md +0 -0
  294. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/intention_positive_negative_conflation_rejected/doc.md +0 -0
  295. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/legacy_string_machine_surface_requires_mapping/doc.md +0 -0
  296. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/load_order_inversion_flagged/a.md +0 -0
  297. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/load_order_inversion_flagged/b.md +0 -0
  298. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/machine_surface_identity_incomplete_rejected/doc.md +0 -0
  299. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/migration_field_drop_rejected/doc.md +0 -0
  300. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/migration_silent_coercion_rejected/doc.md +0 -0
  301. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/missing_frontmatter_rejected/doc.md +0 -0
  302. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/non_root_exception_or_silent_fallback_rejected/doc.md +0 -0
  303. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/nonowner_redefines_intention_rejected/doc.md +0 -0
  304. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/output_format_conflation_rejected/doc.md +0 -0
  305. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/parser_byte_ranges_missing_rejected/doc.md +0 -0
  306. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/parser_partial_model_on_error_rejected/doc.md +0 -0
  307. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/parser_source_locator_missing_rejected/doc.md +0 -0
  308. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/projected_field_without_origin_rejected/doc.md +0 -0
  309. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/projection_rebuild_nondeterminism_rejected/doc.md +0 -0
  310. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/projection_row_without_source_locator_rejected/doc.md +0 -0
  311. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/relationship_resolution_scope_missing_rejected/doc.md +0 -0
  312. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/relationship_resolution_scope_unknown_rejected/doc.md +0 -0
  313. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/relationship_semantics_rejected/doc.md +0 -0
  314. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/relationship_target_unresolved_rejected/doc.md +0 -0
  315. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/release_surface_digest_missing_rejected/doc.md +0 -0
  316. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/required_dependency_cycle_rejected/a.md +0 -0
  317. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/required_dependency_cycle_rejected/b.md +0 -0
  318. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/routing_tag_not_in_task_catalog_rejected/doc.md +0 -0
  319. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/routing_tag_router_not_in_scope_rejected/doc.md +0 -0
  320. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/scope_on_nonsupersedes_rejected/doc.md +0 -0
  321. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/stale_bootstrap_receipt_rejected/doc.md +0 -0
  322. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/stale_validation_result_rejected/doc.md +0 -0
  323. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/supersedes_without_scope_rejected/doc.md +0 -0
  324. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/target_section_not_found_rejected/a.md +0 -0
  325. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/target_section_not_found_rejected/b.md +0 -0
  326. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/target_sections_on_external_edge_rejected/doc.md +0 -0
  327. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/task_scoped_defects_filtering/router.md +0 -0
  328. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/task_scoped_defects_filtering/selected.md +0 -0
  329. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/task_scoped_defects_filtering/skipped.md +0 -0
  330. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/template_claims_normative_authority_rejected/doc.md +0 -0
  331. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/two_documents_own_same_intention_rejected/a.md +0 -0
  332. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/two_documents_own_same_intention_rejected/b.md +0 -0
  333. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/undefined_conditional_token_rejected/doc.md +0 -0
  334. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/undefined_type_rejected/doc.md +0 -0
  335. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/unknown_authority_rejected/doc.md +0 -0
  336. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/unknown_document_role_rejected/doc.md +0 -0
  337. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/unknown_field_rejected/doc.md +0 -0
  338. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/unknown_root_block_rejected/doc.md +0 -0
  339. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/unresolved_reference_on_required_edge_rejected/doc.md +0 -0
  340. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/unsupported_schema_version_rejected/doc.md +0 -0
  341. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/untemplated_frontmatter_bypass_rejected/doc.md +0 -0
  342. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/validator_passes_conflation_rejected/doc.md +0 -0
  343. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/invalid/yaml_1_1_boolean_words_not_coerced/doc.md +0 -0
  344. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/blockquote.md +0 -0
  345. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/code_fence.md +0 -0
  346. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/dangerous_html.md +0 -0
  347. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/dangerous_uri.md +0 -0
  348. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/direct_instruction.md +0 -0
  349. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/generated_resource_limits.yaml +0 -0
  350. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/indirect_instruction.md +0 -0
  351. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/legitimate_security_discussion.md +0 -0
  352. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/link.md +0 -0
  353. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/pilot_security/table.md +0 -0
  354. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/adoption_locator_trigger_word_is_data_valid/doc.md +0 -0
  355. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/body_tether_fresh_valid/doc.md +0 -0
  356. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/bootstrap_validation_receipt_valid/doc.md +0 -0
  357. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/claim_prose_substrings_are_not_verdicts_valid/doc.md +0 -0
  358. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/companion_and_appendix_edges_valid/a.md +0 -0
  359. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/companion_and_appendix_edges_valid/b.md +0 -0
  360. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/document_binding_to_external_intention_valid/doc.md +0 -0
  361. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/document_realizing_external_intention_valid/doc.md +0 -0
  362. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/document_referencing_external_intention_valid/doc.md +0 -0
  363. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/evidence_record_valid/doc.md +0 -0
  364. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/evidence_support_substrings_are_not_proof_valid/doc.md +0 -0
  365. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/external_document_set_edge_valid/doc.md +0 -0
  366. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/frontmatter_adoption_record_valid/doc.md +0 -0
  367. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/frontmatter_projection_mapping_valid/doc.md +0 -0
  368. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/frontmatter_spec_bootstrap_valid/doc.md +0 -0
  369. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/implementation_contract_valid/doc.md +0 -0
  370. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/normative_spec_valid/doc.md +0 -0
  371. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/orientation_router_valid/doc.md +0 -0
  372. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/release_metadata_valid/doc.md +0 -0
  373. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/target_sections_resolved_valid/a.md +0 -0
  374. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/target_sections_resolved_valid/b.md +0 -0
  375. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/template_valid/doc.md +0 -0
  376. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/unresolved_reference_optional_edge_valid/doc.md +0 -0
  377. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/untemplated_document_valid/doc.md +0 -0
  378. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/fixtures/valid/yaml_1_2_plain_words_valid/doc.md +0 -0
  379. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/generated/FRONTMATTERING_FRONTMATTER_SCHEMA.schema.json +0 -0
  380. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/__init__.py +0 -0
  381. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_frontmatter_sqlite_index.py +0 -0
  382. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_kernel_cleanliness.py +0 -0
  383. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_kernel_exception_taxonomy.py +0 -0
  384. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_markdown_parser_adoption.py +0 -0
  385. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_projection_consistency.py +0 -0
  386. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_python_syntax.py +0 -0
  387. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/check_report_quality.py +0 -0
  388. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/finding_registry.py +0 -0
  389. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/frontmattering_cli.py +0 -0
  390. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/generate_frontmatter_schema.py +0 -0
  391. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/kernel_reporting.py +0 -0
  392. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/make_fixtures.py +0 -0
  393. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/pack_kernel_distro.py +0 -0
  394. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/test_verify_kernel.py +0 -0
  395. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/validate_frontmatters.py +0 -0
  396. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/tools/verify_kernel.py +0 -0
  397. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/resources/workflow-docs-manifest.yaml +0 -0
  398. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/schema_projection.py +0 -0
  399. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/speccompile.py +0 -0
  400. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering/validator.py +0 -0
  401. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering.egg-info/SOURCES.txt +0 -0
  402. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering.egg-info/dependency_links.txt +0 -0
  403. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering.egg-info/entry_points.txt +0 -0
  404. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering.egg-info/requires.txt +0 -0
  405. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/frontmattering.egg-info/top_level.txt +0 -0
  406. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/generated/FRONTMATTERING_FRONTMATTER_SCHEMA.schema.json +0 -0
  407. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_frontmatter_sqlite_index.py +0 -0
  408. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_kernel_cleanliness.py +0 -0
  409. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_kernel_exception_taxonomy.py +0 -0
  410. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_markdown_parser_adoption.py +0 -0
  411. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_projection_consistency.py +0 -0
  412. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_python_syntax.py +0 -0
  413. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/check_report_quality.py +0 -0
  414. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/finding_registry.py +0 -0
  415. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/frontmattering_cli.py +0 -0
  416. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/generate_frontmatter_schema.py +0 -0
  417. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/kernel_reporting.py +0 -0
  418. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/make_fixtures.py +0 -0
  419. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/pack_kernel_distro.py +0 -0
  420. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/test_verify_kernel.py +0 -0
  421. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/validate_frontmatters.py +0 -0
  422. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/tools/verify_kernel.py +0 -0
  423. {frontmattering-0.4.2 → frontmattering-0.4.3}/kernel/workflow-docs-manifest.yaml +0 -0
  424. {frontmattering-0.4.2 → frontmattering-0.4.3}/setup.cfg +0 -0
  425. {frontmattering-0.4.2 → frontmattering-0.4.3}/tests/test_frontmattering_p0_regressions.py +0 -0
  426. {frontmattering-0.4.2 → frontmattering-0.4.3}/tests/test_red_body_tether.py +0 -0
  427. {frontmattering-0.4.2 → frontmattering-0.4.3}/tests/test_red_cli_trust_adoption.py +0 -0
  428. {frontmattering-0.4.2 → frontmattering-0.4.3}/tests/test_red_frontmattering_rt_n.py +0 -0
  429. {frontmattering-0.4.2 → frontmattering-0.4.3}/tests/test_red_runtime_parity.py +0 -0
  430. {frontmattering-0.4.2 → frontmattering-0.4.3}/tests/test_red_tether_scope.py +0 -0
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.3
4
+
5
+ - README/PyPI long description: install instruction is now `pip install frontmattering` instead of a local wheel path.
6
+ - Public license summary now states the 30-day evaluation permission (LICENSE.md §2), not only the paid-commercial requirement.
7
+ - Fixed `frontmattering doctor`: the AI_INDEX currency check embedded Python- and terminal-width-sensitive argparse output (usage-line wrapping and positional `.required`), producing a spurious FAIL on any environment other than the one the index was frozen on. Index generation is now deterministic — whitespace-normalized command signatures and `required` derived from `nargs` — so `doctor` passes across supported Python versions.
8
+ - Removed the residual `-pypi-clear` publication marker from internal version strings.
9
+ - No validator, frontmatter-schema, runtime-parity, or canonical-model (`v0.1.5`) changes.
10
+ - Both wheel and sdist are published for this version.
11
+
3
12
  ## 0.4.2
4
13
 
5
14
  - Removed the mistaken MIT component license expression after confirming the package contains Frontmattering-owned source and normal runtime dependencies, not vendored third-party source.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frontmattering
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: Governed frontmatter, freshness tethers, and validate-only runtime gates for agent-facing Markdown
5
5
  Author: Lasse T.
6
6
  License-Expression: LicenseRef-FRONTMATTERING-Individual-Use-1.2
@@ -36,10 +36,10 @@ Frontmattering makes Markdown safer for agents.
36
36
 
37
37
  It adds governed frontmatter, task routing, body/frontmatter freshness tethers, and a vendorable validate-only runtime gate so an agent can consume a compact brief without silently relying on stale documentation.
38
38
 
39
- ## Install from a local distribution
39
+ ## Install
40
40
 
41
41
  ```bash
42
- python -m pip install frontmattering-0.4.2-py3-none-any.whl
42
+ python -m pip install frontmattering
43
43
  frontmattering --version
44
44
  frontmattering doctor
45
45
  ```
@@ -73,7 +73,7 @@ The runtime artifact is validate-only. It does not expose init, promote, new, in
73
73
 
74
74
  ## License
75
75
 
76
- Frontmattering is source-available. It is free for individual natural persons within the scope of `LICENSE.md`. Professional, organizational, commercial, client, employer, CI/CD, hosted, managed-service, platform, consulting, or revenue-connected use requires a paid commercial license.
76
+ Frontmattering is source-available. It is free for individual personal use within the scope of `LICENSE.md`. Professional, organizational, employer, client, CI/CD, hosted, managed-service, platform, consulting, or revenue-connected use is permitted for a 30-day evaluation period under `LICENSE.md`; continued use after the evaluation requires a paid commercial license.
77
77
 
78
78
  Frontmattering is not open-source software under the Open Source Definition because professional and organizational use is restricted without a commercial license.
79
79
 
@@ -88,4 +88,4 @@ A `STALE` or `UNTETHERED` summary must not be relied on without reading the body
88
88
 
89
89
  ## Publication status
90
90
 
91
- This v0.4.2 package is a PyPI-clear technical candidate after license/notice cleanup. Custom license text should still receive legal review before paid commercial sales.
91
+ This v0.4.3 package is a public-surface cleanup of the v0.4.2 PyPI-clear release (install/readme/license-summary corrections; no validator, schema, or canonical-model changes). Custom license text should still receive legal review before paid commercial sales.
@@ -4,10 +4,10 @@ Frontmattering makes Markdown safer for agents.
4
4
 
5
5
  It adds governed frontmatter, task routing, body/frontmatter freshness tethers, and a vendorable validate-only runtime gate so an agent can consume a compact brief without silently relying on stale documentation.
6
6
 
7
- ## Install from a local distribution
7
+ ## Install
8
8
 
9
9
  ```bash
10
- python -m pip install frontmattering-0.4.2-py3-none-any.whl
10
+ python -m pip install frontmattering
11
11
  frontmattering --version
12
12
  frontmattering doctor
13
13
  ```
@@ -41,7 +41,7 @@ The runtime artifact is validate-only. It does not expose init, promote, new, in
41
41
 
42
42
  ## License
43
43
 
44
- Frontmattering is source-available. It is free for individual natural persons within the scope of `LICENSE.md`. Professional, organizational, commercial, client, employer, CI/CD, hosted, managed-service, platform, consulting, or revenue-connected use requires a paid commercial license.
44
+ Frontmattering is source-available. It is free for individual personal use within the scope of `LICENSE.md`. Professional, organizational, employer, client, CI/CD, hosted, managed-service, platform, consulting, or revenue-connected use is permitted for a 30-day evaluation period under `LICENSE.md`; continued use after the evaluation requires a paid commercial license.
45
45
 
46
46
  Frontmattering is not open-source software under the Open Source Definition because professional and organizational use is restricted without a commercial license.
47
47
 
@@ -56,4 +56,4 @@ A `STALE` or `UNTETHERED` summary must not be relied on without reading the body
56
56
 
57
57
  ## Publication status
58
58
 
59
- This v0.4.2 package is a PyPI-clear technical candidate after license/notice cleanup. Custom license text should still receive legal review before paid commercial sales.
59
+ This v0.4.3 package is a public-surface cleanup of the v0.4.2 PyPI-clear release (install/readme/license-summary corrections; no validator, schema, or canonical-model changes). Custom license text should still receive legal review before paid commercial sales.
@@ -62,7 +62,7 @@
62
62
  "description": "Process exit code documented by the command implementation.",
63
63
  "type": "int"
64
64
  },
65
- "signature": "frontmattering brief [-h] [--task TASK]\n [--section {summary,blocks,traps,limits,do-not,trust,reading-order,defects,claim-boundary}]\n [--include-dev] [--format {markdown,json}]\n [paths ...]",
65
+ "signature": "frontmattering brief [-h] [--task TASK] [--section {summary,blocks,traps,limits,do-not,trust,reading-order,defects,claim-boundary}] [--include-dev] [--format {markdown,json}] [paths ...]",
66
66
  "summary": "==SUPPRESS==",
67
67
  "type": "function"
68
68
  },
@@ -188,7 +188,7 @@
188
188
  "description": "Process exit code documented by the command implementation.",
189
189
  "type": "int"
190
190
  },
191
- "signature": "frontmattering index [-h]\n {build,rebuild,update,check,status,delete} ...",
191
+ "signature": "frontmattering index [-h] {build,rebuild,update,check,status,delete} ...",
192
192
  "summary": "==SUPPRESS==",
193
193
  "type": "function"
194
194
  },
@@ -232,7 +232,7 @@
232
232
  "description": "Process exit code documented by the command implementation.",
233
233
  "type": "int"
234
234
  },
235
- "signature": "frontmattering init [-h] --set-id SET_ID --title TITLE [--force]\n directory",
235
+ "signature": "frontmattering init [-h] --set-id SET_ID --title TITLE [--force] directory",
236
236
  "summary": "==SUPPRESS==",
237
237
  "type": "function"
238
238
  },
@@ -360,7 +360,7 @@
360
360
  "description": "Process exit code documented by the command implementation.",
361
361
  "type": "int"
362
362
  },
363
- "signature": "frontmattering new [-h]\n [--profile {contract,evidence,guide,registry,release,router,spec}]\n --title TITLE [--summary SUMMARY] [--force]\n path",
363
+ "signature": "frontmattering new [-h] [--profile {contract,evidence,guide,registry,release,router,spec}] --title TITLE [--summary SUMMARY] [--force] path",
364
364
  "summary": "==SUPPRESS==",
365
365
  "type": "function"
366
366
  },
@@ -416,7 +416,7 @@
416
416
  "description": "Process exit code documented by the command implementation.",
417
417
  "type": "int"
418
418
  },
419
- "signature": "frontmattering parse [-h] [--output OUTPUT] [--batch]\n [--security-profile {permissive,moderate,strict}]\n [--allows-html]\n path",
419
+ "signature": "frontmattering parse [-h] [--output OUTPUT] [--batch] [--security-profile {permissive,moderate,strict}] [--allows-html] path",
420
420
  "summary": "==SUPPRESS==",
421
421
  "type": "function"
422
422
  },
@@ -494,7 +494,7 @@
494
494
  "description": "Process exit code documented by the command implementation.",
495
495
  "type": "int"
496
496
  },
497
- "signature": "frontmattering promote [-h]\n --profile {contract,evidence,guide,registry,release,router,spec}\n [--title TITLE] [--output OUTPUT] [--in-place]\n [--check] [--format {markdown,json}]\n input",
497
+ "signature": "frontmattering promote [-h] --profile {contract,evidence,guide,registry,release,router,spec} [--title TITLE] [--output OUTPUT] [--in-place] [--check] [--format {markdown,json}] input",
498
498
  "summary": "==SUPPRESS==",
499
499
  "type": "function"
500
500
  },
@@ -545,7 +545,7 @@
545
545
  "description": "Process exit code documented by the command implementation.",
546
546
  "type": "int"
547
547
  },
548
- "signature": "frontmattering query [-h] [--index INDEX] [--task TASK]\n [--authority AUTHORITY] [--role ROLE]\n [--target TARGET]",
548
+ "signature": "frontmattering query [-h] [--index INDEX] [--task TASK] [--authority AUTHORITY] [--role ROLE] [--target TARGET]",
549
549
  "summary": "==SUPPRESS==",
550
550
  "type": "function"
551
551
  },
@@ -615,7 +615,7 @@
615
615
  "description": "Process exit code documented by the command implementation.",
616
616
  "type": "int"
617
617
  },
618
- "signature": "frontmattering schema [-h] [--output OUTPUT] [--check PATH] [--vscode]\n [paths ...]",
618
+ "signature": "frontmattering schema [-h] [--output OUTPUT] [--check PATH] [--vscode] [paths ...]",
619
619
  "summary": "==SUPPRESS==",
620
620
  "type": "function"
621
621
  },
@@ -64,7 +64,7 @@ template_contract:
64
64
 
65
65
  spec: FRONTMATTERING_FRONTMATTER_SPEC_v0_1_5.md
66
66
  spec_sha256: cb4f431d6326a04a2b30d5d1b4a99c301342b017799953b12740acf5b110b023
67
- kernel_files_sha256: 713befd933348e6ee6331c4748d2d0eab8a7650cf175832c70d8cebd7b2c55bb
67
+ kernel_files_sha256: 9a94048a44cda60de8749783dc296cb02d45bbaf08253632b38073d5816f5c81
68
68
 
69
69
  classes_total: 101
70
70
  ok: 101 missing_fixture: 0 wrong_finding: 0 not_rejected: 0 rejected_valid: 0
@@ -0,0 +1 @@
1
+ __version__ = "0.4.3"
@@ -719,7 +719,7 @@ def _parse_one_document(path: Path, args: argparse.Namespace) -> tuple[dict, int
719
719
  metadata.pop("security", None)
720
720
  payload = {
721
721
  "schema_version": "frontmattering_document_ir/v0_3",
722
- "distribution_version": "0.4.2",
722
+ "distribution_version": "0.4.3",
723
723
  "canonical_model_version": "0.1.5",
724
724
  "source": {
725
725
  "path": str(path),
@@ -772,7 +772,7 @@ def command_parse(args: argparse.Namespace) -> int:
772
772
  dest.parent.mkdir(parents=True, exist_ok=True)
773
773
  dest.write_text(json.dumps(_json_safe(payload), indent=2, sort_keys=True, ensure_ascii=False)+"\n", encoding="utf-8")
774
774
  records.append({"source": rel.as_posix()[:-8], "ir": rel.as_posix(), "source_sha256": payload["source"]["sha256"]})
775
- manifest = {"schema_version":"frontmattering_ir_batch_manifest/v0_3","distribution_version":"0.4.2-pypi-clear","source_root":str(path),"document_count":len(records),"records":records,"selection":selection.payload(),"claim_boundary":"Disposable deterministic projection; source Markdown remains authoritative."}
775
+ manifest = {"schema_version":"frontmattering_ir_batch_manifest/v0_3","distribution_version":"0.4.3","source_root":str(path),"document_count":len(records),"records":records,"selection":selection.payload(),"claim_boundary":"Disposable deterministic projection; source Markdown remains authoritative."}
776
776
  (out_root/"manifest.json").write_text(json.dumps(manifest,indent=2,sort_keys=True)+"\n",encoding="utf-8")
777
777
  print(f"document_ir_batch_written={out_root} documents={len(records)}")
778
778
  return terminal
@@ -1019,7 +1019,7 @@ def _runtime_wrapper() -> str:
1019
1019
  "runtime_builder": "frontmattering.__main__.command_runtime_pack",
1020
1020
  }
1021
1021
  return RUNTIME_WRAPPER_TEMPLATE.replace(
1022
- "__KERNEL_VERSION__", "0.4.2"
1022
+ "__KERNEL_VERSION__", "0.4.3"
1023
1023
  ).replace(
1024
1024
  "__RUNTIME_BUILD_MANIFEST__", json.dumps(manifest, sort_keys=True)
1025
1025
  )
@@ -1066,7 +1066,7 @@ def command_runtime_pack(args: argparse.Namespace) -> int:
1066
1066
  "schema_version": "frontmattering_runtime_pack_report/v0_2",
1067
1067
  "runtime_artifact": str(out),
1068
1068
  "canonical_model_version": "0.1.5",
1069
- "kernel_version": "0.4.2",
1069
+ "kernel_version": "0.4.3",
1070
1070
  "artifact_format": "python_zipapp",
1071
1071
  "surface": "validate_only",
1072
1072
  "artifact_sha256": hashlib.sha256(artifact_bytes).hexdigest(),
@@ -1104,7 +1104,7 @@ def build_parser() -> argparse.ArgumentParser:
1104
1104
  prog="frontmattering",
1105
1105
  description="Govern and orient load-bearing Markdown with Frontmattering canonical model v0.1.5 frontmatter.",
1106
1106
  )
1107
- parser.add_argument("--version", action="version", version="frontmattering distribution v0.4.2; canonical model v0.1.5")
1107
+ parser.add_argument("--version", action="version", version="frontmattering distribution v0.4.3; canonical model v0.1.5")
1108
1108
  sub = parser.add_subparsers(dest="command", required=True, parser_class=StrictArgumentParser)
1109
1109
 
1110
1110
  init = sub.add_parser("init", help="Initialize a small Frontmattering document set and package router.")
@@ -62,7 +62,7 @@
62
62
  "description": "Process exit code documented by the command implementation.",
63
63
  "type": "int"
64
64
  },
65
- "signature": "frontmattering brief [-h] [--task TASK]\n [--section {summary,blocks,traps,limits,do-not,trust,reading-order,defects,claim-boundary}]\n [--include-dev] [--format {markdown,json}]\n [paths ...]",
65
+ "signature": "frontmattering brief [-h] [--task TASK] [--section {summary,blocks,traps,limits,do-not,trust,reading-order,defects,claim-boundary}] [--include-dev] [--format {markdown,json}] [paths ...]",
66
66
  "summary": "==SUPPRESS==",
67
67
  "type": "function"
68
68
  },
@@ -188,7 +188,7 @@
188
188
  "description": "Process exit code documented by the command implementation.",
189
189
  "type": "int"
190
190
  },
191
- "signature": "frontmattering index [-h]\n {build,rebuild,update,check,status,delete} ...",
191
+ "signature": "frontmattering index [-h] {build,rebuild,update,check,status,delete} ...",
192
192
  "summary": "==SUPPRESS==",
193
193
  "type": "function"
194
194
  },
@@ -232,7 +232,7 @@
232
232
  "description": "Process exit code documented by the command implementation.",
233
233
  "type": "int"
234
234
  },
235
- "signature": "frontmattering init [-h] --set-id SET_ID --title TITLE [--force]\n directory",
235
+ "signature": "frontmattering init [-h] --set-id SET_ID --title TITLE [--force] directory",
236
236
  "summary": "==SUPPRESS==",
237
237
  "type": "function"
238
238
  },
@@ -360,7 +360,7 @@
360
360
  "description": "Process exit code documented by the command implementation.",
361
361
  "type": "int"
362
362
  },
363
- "signature": "frontmattering new [-h]\n [--profile {contract,evidence,guide,registry,release,router,spec}]\n --title TITLE [--summary SUMMARY] [--force]\n path",
363
+ "signature": "frontmattering new [-h] [--profile {contract,evidence,guide,registry,release,router,spec}] --title TITLE [--summary SUMMARY] [--force] path",
364
364
  "summary": "==SUPPRESS==",
365
365
  "type": "function"
366
366
  },
@@ -416,7 +416,7 @@
416
416
  "description": "Process exit code documented by the command implementation.",
417
417
  "type": "int"
418
418
  },
419
- "signature": "frontmattering parse [-h] [--output OUTPUT] [--batch]\n [--security-profile {permissive,moderate,strict}]\n [--allows-html]\n path",
419
+ "signature": "frontmattering parse [-h] [--output OUTPUT] [--batch] [--security-profile {permissive,moderate,strict}] [--allows-html] path",
420
420
  "summary": "==SUPPRESS==",
421
421
  "type": "function"
422
422
  },
@@ -494,7 +494,7 @@
494
494
  "description": "Process exit code documented by the command implementation.",
495
495
  "type": "int"
496
496
  },
497
- "signature": "frontmattering promote [-h]\n --profile {contract,evidence,guide,registry,release,router,spec}\n [--title TITLE] [--output OUTPUT] [--in-place]\n [--check] [--format {markdown,json}]\n input",
497
+ "signature": "frontmattering promote [-h] --profile {contract,evidence,guide,registry,release,router,spec} [--title TITLE] [--output OUTPUT] [--in-place] [--check] [--format {markdown,json}] input",
498
498
  "summary": "==SUPPRESS==",
499
499
  "type": "function"
500
500
  },
@@ -545,7 +545,7 @@
545
545
  "description": "Process exit code documented by the command implementation.",
546
546
  "type": "int"
547
547
  },
548
- "signature": "frontmattering query [-h] [--index INDEX] [--task TASK]\n [--authority AUTHORITY] [--role ROLE]\n [--target TARGET]",
548
+ "signature": "frontmattering query [-h] [--index INDEX] [--task TASK] [--authority AUTHORITY] [--role ROLE] [--target TARGET]",
549
549
  "summary": "==SUPPRESS==",
550
550
  "type": "function"
551
551
  },
@@ -615,7 +615,7 @@
615
615
  "description": "Process exit code documented by the command implementation.",
616
616
  "type": "int"
617
617
  },
618
- "signature": "frontmattering schema [-h] [--output OUTPUT] [--check PATH] [--vscode]\n [paths ...]",
618
+ "signature": "frontmattering schema [-h] [--output OUTPUT] [--check PATH] [--vscode] [paths ...]",
619
619
  "summary": "==SUPPRESS==",
620
620
  "type": "function"
621
621
  },
@@ -64,7 +64,7 @@ template_contract:
64
64
 
65
65
  spec: FRONTMATTERING_FRONTMATTER_SPEC_v0_1_5.md
66
66
  spec_sha256: cb4f431d6326a04a2b30d5d1b4a99c301342b017799953b12740acf5b110b023
67
- kernel_files_sha256: 713befd933348e6ee6331c4748d2d0eab8a7650cf175832c70d8cebd7b2c55bb
67
+ kernel_files_sha256: 9a94048a44cda60de8749783dc296cb02d45bbaf08253632b38073d5816f5c81
68
68
 
69
69
  classes_total: 101
70
70
  ok: 101 missing_fixture: 0 wrong_finding: 0 not_rejected: 0 rejected_valid: 0
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python3
2
- """Focused regression gate for the clean-break Frontmattering v0.4.2 CLI trust/adoption candidate.
2
+ """Focused regression gate for the clean-break Frontmattering v0.4.3 CLI trust/adoption candidate.
3
3
 
4
4
  This gate verifies implementation obligations and negative cases. It does not
5
5
  supply external participant evidence or prove semantic/product value.
@@ -130,7 +130,7 @@ def check_product_boundary() -> dict:
130
130
  require(phrase not in combined, f"forbidden broad claim present: {phrase}")
131
131
 
132
132
  pyproject = (ROOT / "pyproject.toml").read_text(encoding="utf-8")
133
- require('version = "0.4.2"' in pyproject, "distribution version not updated")
133
+ require('version = "0.4.3"' in pyproject, "distribution version not updated")
134
134
  require('dependencies = ["PyYAML>=6.0", "markdown-it-py>=4.0.0"]' in pyproject, "runtime dependency surface expanded")
135
135
  for forbidden in ("sqlalchemy", "fastapi", "chromadb", "openai", "polars", "pyarrow"):
136
136
  require(forbidden not in pyproject.casefold(), f"forbidden runtime dependency present: {forbidden}")
@@ -528,7 +528,7 @@ def main() -> int:
528
528
  payload = {
529
529
  "schema_version": "frontmattering_pilot_readiness_check/v0_2",
530
530
  "terminal_state": "PASS" if not failures else "FAIL",
531
- "distribution_version": "0.4.2-pypi-clear",
531
+ "distribution_version": "0.4.3",
532
532
  "canonical_model_version": "0.1.5",
533
533
  "results": results,
534
534
  "failures": failures,
@@ -16,7 +16,7 @@ def prohibited():
16
16
  def files():
17
17
  return sorted(p for p in ROOT.rglob('*') if p.is_file() and rel(p) not in EXCLUDED and '.egg-info/' not in rel(p))
18
18
  def payload():
19
- return {'receipt_schema':'frontmattering_distribution_receipt/v0_4','canonical_model_version':'0.1.5','distribution_version':'0.4.2','claim_boundary':'Exact admissible file inventory and digest currency only; not adoption, release approval, semantic adequacy, or production readiness.','files':[{'path':rel(p),'size_bytes':p.stat().st_size,'sha256':sha(p)} for p in files()]}
19
+ return {'receipt_schema':'frontmattering_distribution_receipt/v0_4','canonical_model_version':'0.1.5','distribution_version':'0.4.3','claim_boundary':'Exact admissible file inventory and digest currency only; not adoption, release approval, semantic adequacy, or production readiness.','files':[{'path':rel(p),'size_bytes':p.stat().st_size,'sha256':sha(p)} for p in files()]}
20
20
  def refuse_debris():
21
21
  bad=prohibited()
22
22
  if bad:
@@ -29,6 +29,28 @@ def _subparser_action(parser: argparse.ArgumentParser) -> argparse._SubParsersAc
29
29
  )
30
30
 
31
31
 
32
+ # argparse computes ``.required`` for positional actions differently across
33
+ # CPython versions; derive it from ``nargs`` so the generated index is stable.
34
+ _OPTIONAL_NARGS = frozenset({argparse.OPTIONAL, argparse.ZERO_OR_MORE, argparse.REMAINDER})
35
+
36
+
37
+ def _required(action: argparse.Action) -> bool:
38
+ if action.option_strings:
39
+ return bool(action.required)
40
+ return action.nargs not in _OPTIONAL_NARGS
41
+
42
+
43
+ def _normalize_usage(usage: str) -> str:
44
+ # argparse wraps usage text to the terminal width, so the raw string varies
45
+ # by environment/Python version. Collapse all whitespace to single spaces
46
+ # for a stable, width-independent signature.
47
+ collapsed = " ".join(usage.split())
48
+ prefix = "usage: "
49
+ if collapsed.startswith(prefix):
50
+ collapsed = collapsed[len(prefix):]
51
+ return collapsed
52
+
53
+
32
54
  def _parameter(action: argparse.Action) -> dict[str, Any] | None:
33
55
  if action.dest == "help":
34
56
  return None
@@ -36,7 +58,7 @@ def _parameter(action: argparse.Action) -> dict[str, Any] | None:
36
58
  payload: dict[str, Any] = {
37
59
  "name": name,
38
60
  "dest": action.dest,
39
- "required": bool(getattr(action, "required", False)),
61
+ "required": _required(action),
40
62
  "nargs": action.nargs,
41
63
  "help": action.help,
42
64
  }
@@ -62,8 +84,8 @@ def generate_ai_index() -> dict[str, Any]:
62
84
  "name": name,
63
85
  "type": "function",
64
86
  "path": f"frontmattering.__main__.{getattr(func, '__name__', 'unknown')}",
65
- "summary": command_parser.description or command_parser.get_default("help") or command_parser.format_usage().strip(),
66
- "signature": command_parser.format_usage().replace("usage: ", "").strip(),
87
+ "summary": command_parser.description or command_parser.get_default("help") or _normalize_usage(command_parser.format_usage()),
88
+ "signature": _normalize_usage(command_parser.format_usage()),
67
89
  "parameters": parameters,
68
90
  "returns": {
69
91
  "type": "int",
@@ -111,7 +133,7 @@ def main(argv: list[str] | None = None) -> int:
111
133
  if existing != current:
112
134
  print("ai_index_check=FAIL")
113
135
  print("why=AI_INDEX.json does not match the live argparse command surface")
114
- print("fix=uv run python FFQT_GUIDES/kernel/tools/generate_ai_index.py --write")
136
+ print("fix=python kernel/tools/generate_ai_index.py --write")
115
137
  return 1
116
138
  print("ai_index_check=PASS")
117
139
  return 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frontmattering
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: Governed frontmatter, freshness tethers, and validate-only runtime gates for agent-facing Markdown
5
5
  Author: Lasse T.
6
6
  License-Expression: LicenseRef-FRONTMATTERING-Individual-Use-1.2
@@ -36,10 +36,10 @@ Frontmattering makes Markdown safer for agents.
36
36
 
37
37
  It adds governed frontmatter, task routing, body/frontmatter freshness tethers, and a vendorable validate-only runtime gate so an agent can consume a compact brief without silently relying on stale documentation.
38
38
 
39
- ## Install from a local distribution
39
+ ## Install
40
40
 
41
41
  ```bash
42
- python -m pip install frontmattering-0.4.2-py3-none-any.whl
42
+ python -m pip install frontmattering
43
43
  frontmattering --version
44
44
  frontmattering doctor
45
45
  ```
@@ -73,7 +73,7 @@ The runtime artifact is validate-only. It does not expose init, promote, new, in
73
73
 
74
74
  ## License
75
75
 
76
- Frontmattering is source-available. It is free for individual natural persons within the scope of `LICENSE.md`. Professional, organizational, commercial, client, employer, CI/CD, hosted, managed-service, platform, consulting, or revenue-connected use requires a paid commercial license.
76
+ Frontmattering is source-available. It is free for individual personal use within the scope of `LICENSE.md`. Professional, organizational, employer, client, CI/CD, hosted, managed-service, platform, consulting, or revenue-connected use is permitted for a 30-day evaluation period under `LICENSE.md`; continued use after the evaluation requires a paid commercial license.
77
77
 
78
78
  Frontmattering is not open-source software under the Open Source Definition because professional and organizational use is restricted without a commercial license.
79
79
 
@@ -88,4 +88,4 @@ A `STALE` or `UNTETHERED` summary must not be relied on without reading the body
88
88
 
89
89
  ## Publication status
90
90
 
91
- This v0.4.2 package is a PyPI-clear technical candidate after license/notice cleanup. Custom license text should still receive legal review before paid commercial sales.
91
+ This v0.4.3 package is a public-surface cleanup of the v0.4.2 PyPI-clear release (install/readme/license-summary corrections; no validator, schema, or canonical-model changes). Custom license text should still receive legal review before paid commercial sales.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env python3
2
- """Focused regression gate for the clean-break Frontmattering v0.4.2 CLI trust/adoption candidate.
2
+ """Focused regression gate for the clean-break Frontmattering v0.4.3 CLI trust/adoption candidate.
3
3
 
4
4
  This gate verifies implementation obligations and negative cases. It does not
5
5
  supply external participant evidence or prove semantic/product value.
@@ -130,7 +130,7 @@ def check_product_boundary() -> dict:
130
130
  require(phrase not in combined, f"forbidden broad claim present: {phrase}")
131
131
 
132
132
  pyproject = (ROOT / "pyproject.toml").read_text(encoding="utf-8")
133
- require('version = "0.4.2"' in pyproject, "distribution version not updated")
133
+ require('version = "0.4.3"' in pyproject, "distribution version not updated")
134
134
  require('dependencies = ["PyYAML>=6.0", "markdown-it-py>=4.0.0"]' in pyproject, "runtime dependency surface expanded")
135
135
  for forbidden in ("sqlalchemy", "fastapi", "chromadb", "openai", "polars", "pyarrow"):
136
136
  require(forbidden not in pyproject.casefold(), f"forbidden runtime dependency present: {forbidden}")
@@ -528,7 +528,7 @@ def main() -> int:
528
528
  payload = {
529
529
  "schema_version": "frontmattering_pilot_readiness_check/v0_2",
530
530
  "terminal_state": "PASS" if not failures else "FAIL",
531
- "distribution_version": "0.4.2-pypi-clear",
531
+ "distribution_version": "0.4.3",
532
532
  "canonical_model_version": "0.1.5",
533
533
  "results": results,
534
534
  "failures": failures,
@@ -16,7 +16,7 @@ def prohibited():
16
16
  def files():
17
17
  return sorted(p for p in ROOT.rglob('*') if p.is_file() and rel(p) not in EXCLUDED and '.egg-info/' not in rel(p))
18
18
  def payload():
19
- return {'receipt_schema':'frontmattering_distribution_receipt/v0_4','canonical_model_version':'0.1.5','distribution_version':'0.4.2','claim_boundary':'Exact admissible file inventory and digest currency only; not adoption, release approval, semantic adequacy, or production readiness.','files':[{'path':rel(p),'size_bytes':p.stat().st_size,'sha256':sha(p)} for p in files()]}
19
+ return {'receipt_schema':'frontmattering_distribution_receipt/v0_4','canonical_model_version':'0.1.5','distribution_version':'0.4.3','claim_boundary':'Exact admissible file inventory and digest currency only; not adoption, release approval, semantic adequacy, or production readiness.','files':[{'path':rel(p),'size_bytes':p.stat().st_size,'sha256':sha(p)} for p in files()]}
20
20
  def refuse_debris():
21
21
  bad=prohibited()
22
22
  if bad:
@@ -29,6 +29,28 @@ def _subparser_action(parser: argparse.ArgumentParser) -> argparse._SubParsersAc
29
29
  )
30
30
 
31
31
 
32
+ # argparse computes ``.required`` for positional actions differently across
33
+ # CPython versions; derive it from ``nargs`` so the generated index is stable.
34
+ _OPTIONAL_NARGS = frozenset({argparse.OPTIONAL, argparse.ZERO_OR_MORE, argparse.REMAINDER})
35
+
36
+
37
+ def _required(action: argparse.Action) -> bool:
38
+ if action.option_strings:
39
+ return bool(action.required)
40
+ return action.nargs not in _OPTIONAL_NARGS
41
+
42
+
43
+ def _normalize_usage(usage: str) -> str:
44
+ # argparse wraps usage text to the terminal width, so the raw string varies
45
+ # by environment/Python version. Collapse all whitespace to single spaces
46
+ # for a stable, width-independent signature.
47
+ collapsed = " ".join(usage.split())
48
+ prefix = "usage: "
49
+ if collapsed.startswith(prefix):
50
+ collapsed = collapsed[len(prefix):]
51
+ return collapsed
52
+
53
+
32
54
  def _parameter(action: argparse.Action) -> dict[str, Any] | None:
33
55
  if action.dest == "help":
34
56
  return None
@@ -36,7 +58,7 @@ def _parameter(action: argparse.Action) -> dict[str, Any] | None:
36
58
  payload: dict[str, Any] = {
37
59
  "name": name,
38
60
  "dest": action.dest,
39
- "required": bool(getattr(action, "required", False)),
61
+ "required": _required(action),
40
62
  "nargs": action.nargs,
41
63
  "help": action.help,
42
64
  }
@@ -62,8 +84,8 @@ def generate_ai_index() -> dict[str, Any]:
62
84
  "name": name,
63
85
  "type": "function",
64
86
  "path": f"frontmattering.__main__.{getattr(func, '__name__', 'unknown')}",
65
- "summary": command_parser.description or command_parser.get_default("help") or command_parser.format_usage().strip(),
66
- "signature": command_parser.format_usage().replace("usage: ", "").strip(),
87
+ "summary": command_parser.description or command_parser.get_default("help") or _normalize_usage(command_parser.format_usage()),
88
+ "signature": _normalize_usage(command_parser.format_usage()),
67
89
  "parameters": parameters,
68
90
  "returns": {
69
91
  "type": "int",
@@ -111,7 +133,7 @@ def main(argv: list[str] | None = None) -> int:
111
133
  if existing != current:
112
134
  print("ai_index_check=FAIL")
113
135
  print("why=AI_INDEX.json does not match the live argparse command surface")
114
- print("fix=uv run python FFQT_GUIDES/kernel/tools/generate_ai_index.py --write")
136
+ print("fix=python kernel/tools/generate_ai_index.py --write")
115
137
  return 1
116
138
  print("ai_index_check=PASS")
117
139
  return 0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "frontmattering"
7
- version = "0.4.2"
7
+ version = "0.4.3"
8
8
  description = "Governed frontmatter, freshness tethers, and validate-only runtime gates for agent-facing Markdown"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -1 +0,0 @@
1
- __version__ = "0.4.2"
File without changes