axis-synome 0.1.0.dev61__tar.gz → 0.1.0.dev62__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 (147) hide show
  1. axis_synome-0.1.0.dev62/AGENTS.md +58 -0
  2. axis_synome-0.1.0.dev62/CLAUDE.md +1 -0
  3. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/PKG-INFO +1 -1
  4. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/_version.py +2 -2
  5. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome.egg-info/PKG-INFO +1 -1
  6. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome.egg-info/SOURCES.txt +2 -0
  7. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/.flake8 +0 -0
  8. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/README.md +0 -0
  9. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/WRITING_SPECS.md +0 -0
  10. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/pyproject.toml +0 -0
  11. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/setup.cfg +0 -0
  12. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/__init__.py +0 -0
  13. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/export_entities.py +0 -0
  14. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/__init__.py +0 -0
  15. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/all_entities/__init__.py +0 -0
  16. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/all_entities/lending_markets.py +0 -0
  17. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/README.md +0 -0
  18. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/__init__.py +0 -0
  19. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/alm_proxies.py +0 -0
  20. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/asset_categories.py +0 -0
  21. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/assets.py +0 -0
  22. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/assets_by_prime.py +0 -0
  23. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/networks.py +0 -0
  24. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/primes.py +0 -0
  25. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/protocol_sets.py +0 -0
  26. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/tokens.py +0 -0
  27. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/entities/types.py +0 -0
  28. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/formulas/asc.py +0 -0
  29. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/formulas/asc_collateral_ratio.py +0 -0
  30. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/formulas/asc_incentive.py +0 -0
  31. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/formulas/dab.py +0 -0
  32. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/formulas/latent_asc.py +0 -0
  33. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/formulas/ratio_latent_asc.py +0 -0
  34. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/asc/formulas/resting_asc.py +0 -0
  35. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/codegen_test/entities/agents.py +0 -0
  36. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/crypto_lending/__init__.py +0 -0
  37. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/crypto_lending/formulas/__init__.py +0 -0
  38. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/crypto_lending/formulas/lif.py +0 -0
  39. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/entities/__init__.py +0 -0
  40. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/entities/audit_firms.py +0 -0
  41. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/entities/protocol_risk.py +0 -0
  42. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/entities/smart_contract_risk.py +0 -0
  43. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/__init__.py +0 -0
  44. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/administrative_rrc/__init__.py +0 -0
  45. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/administrative_rrc/administrative_risk.py +0 -0
  46. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/audit_factor.py +0 -0
  47. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/entities/__init__.py +0 -0
  48. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/entities/lending_protocol.py +0 -0
  49. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/entities/precomputed_crr.py +0 -0
  50. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/financial_rrc/__init__.py +0 -0
  51. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/financial_rrc/entities.py +0 -0
  52. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/financial_rrc/perpetual_positions.py +0 -0
  53. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/__init__.py +0 -0
  54. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/__init__.py +0 -0
  55. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/asset_correlation_coefficient.py +0 -0
  56. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/capital_requirement_without_buffers.py +0 -0
  57. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/exposure_caps.py +0 -0
  58. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/fixed_crr_rrc.py +0 -0
  59. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/instance_financial_rrc.py +0 -0
  60. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/lending_rrc.py +0 -0
  61. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/pipeline.py +0 -0
  62. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/precomputed_crr_rrc.py +0 -0
  63. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/financial_rrc/probability_of_default.py +0 -0
  64. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/formulas/required_risk_capital.py +0 -0
  65. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/lindy_factor.py +0 -0
  66. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/smart_contract_rrc/__init__.py +0 -0
  67. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/smart_contract_rrc/exceptions.py +0 -0
  68. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/risk_capital/smart_contract_rrc/smart_contract_risk.py +0 -0
  69. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/suraf/README.md +0 -0
  70. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/suraf/entities/assessor_score.py +0 -0
  71. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/suraf/entities/assets.py +0 -0
  72. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/suraf/entities/mappings.py +0 -0
  73. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/suraf/formulas/crr.py +0 -0
  74. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec/suraf/formulas/scoring.py +0 -0
  75. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/__init__.py +0 -0
  76. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/correlation_matrix.py +0 -0
  77. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/evm_address.py +0 -0
  78. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/math_protocol.py +0 -0
  79. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/pendle_validation.py +0 -0
  80. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/references/__init__.py +0 -0
  81. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/references/graph.py +0 -0
  82. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/runtime/__init__.py +0 -0
  83. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/runtime/base.py +0 -0
  84. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/runtime/math.py +0 -0
  85. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/runtime/reference.py +0 -0
  86. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/validated_dataclass.py +0 -0
  87. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_support/validated_str.py +0 -0
  88. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_validator/__init__.py +0 -0
  89. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_validator/check_source_uuids.py +0 -0
  90. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_validator/checker.py +0 -0
  91. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_validator/flake8_plugin.py +0 -0
  92. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome/spec_validator/python_subset.py +0 -0
  93. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome.egg-info/dependency_links.txt +0 -0
  94. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome.egg-info/entry_points.txt +0 -0
  95. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome.egg-info/requires.txt +0 -0
  96. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/src/axis_synome.egg-info/top_level.txt +0 -0
  97. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/__init__.py +0 -0
  98. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/conftest.py +0 -0
  99. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/mocks.py +0 -0
  100. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_alm_proxies.py +0 -0
  101. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_asc.py +0 -0
  102. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_asc_collateral_ratio.py +0 -0
  103. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_asc_incentive.py +0 -0
  104. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_asset_categories.py +0 -0
  105. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_dab.py +0 -0
  106. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_evm_address.py +0 -0
  107. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_latent_asc.py +0 -0
  108. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_prime_agent_data_validation.py +0 -0
  109. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_ratio_latent_asc.py +0 -0
  110. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/asc/test_resting_asc.py +0 -0
  111. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/__init__.py +0 -0
  112. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/administrative_rrc/test_administrative_risk.py +0 -0
  113. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/financial_rrc/__init__.py +0 -0
  114. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/financial_rrc/test_lending_rrc.py +0 -0
  115. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/financial_rrc/test_perpetual_positions.py +0 -0
  116. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/formulas/__init__.py +0 -0
  117. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/formulas/test_correlation_matrix.py +0 -0
  118. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/formulas/test_loss_given_default.py +0 -0
  119. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/smart_contract_rrc/__init__.py +0 -0
  120. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/smart_contract_rrc/test_exceptions.py +0 -0
  121. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/risk_capital/smart_contract_rrc/test_smart_contract_risk.py +0 -0
  122. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/scripts/test_export_entities.py +0 -0
  123. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_support/__init__.py +0 -0
  124. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_support/references/__init__.py +0 -0
  125. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_support/references/test_graph.py +0 -0
  126. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_support/runtime/__init__.py +0 -0
  127. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_support/runtime/test_base.py +0 -0
  128. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_support/runtime/test_math.py +0 -0
  129. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_validator/test_check_source_uuids.py +0 -0
  130. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_validator/test_checker.py +0 -0
  131. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/spec_validator/test_flake8_plugin.py +0 -0
  132. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/__init__.py +0 -0
  133. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/entities/__init__.py +0 -0
  134. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/entities/test_assessor_score.py +0 -0
  135. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/formulas/__init__.py +0 -0
  136. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/formulas/test_crr.py +0 -0
  137. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/formulas/test_scoring.py +0 -0
  138. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/static/aave_ausdc/v1/crr_mapping.csv +0 -0
  139. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/static/aave_ausdc/v1/penalty.csv +0 -0
  140. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_1_scores.csv +0 -0
  141. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_2_scores.csv +0 -0
  142. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/static/aave_ausdc/v1/scorecards/Assessor_3_scores.csv +0 -0
  143. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/static/aave_ausdc/v1/weights.csv +0 -0
  144. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/suraf_client/__init__.py +0 -0
  145. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/suraf_client/suraf_client.py +0 -0
  146. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/tests/axis_synome/suraf/suraf_client/test_suraf_client.py +0 -0
  147. {axis_synome-0.1.0.dev61 → axis_synome-0.1.0.dev62}/uv.lock +0 -0
@@ -0,0 +1,58 @@
1
+ # axis-synome — Agent Instructions
2
+
3
+ `axis-synome` is a Python framework that encodes Sky Atlas calculation rules as
4
+ machine-verifiable specs. This file documents agent rules that apply when working
5
+ inside `axis-synome/`.
6
+
7
+ ## Setup
8
+
9
+ From the repo root, run **`make setup`** once after cloning. This installs Python
10
+ deps, lefthook git hooks, and the Claude/Codex skills — all of which further guide
11
+ and constrain agent work. Run **`make check-all`** before opening or updating a PR
12
+ (it is what CI runs).
13
+
14
+ ## Where to find what
15
+
16
+ - **`WRITING_SPECS.md`** — authoritative guide for writing axis-synome specs. Read
17
+ it before editing anything under `spec/`.
18
+
19
+ ## Editing axis-synome specs (`spec/`)
20
+
21
+ Highlights from `WRITING_SPECS.md` that are not auto-discoverable from the code:
22
+
23
+ - Specs are **pure, declarative Python**: no I/O, no mutable state, no side effects.
24
+ - The spec language subset is enforced by the `AXS` flake8 plugin
25
+ (`axis_synome.spec_validator`); read its rules in `python_subset.py` and `checker.py`
26
+ rather than restating them here. In short: no reassignment, no conditional assignment,
27
+ no imperative control flow, no mutation, imports limited to the spec, `math`, and
28
+ approved support packages.
29
+ - **Provenance lives in docstrings as reST fields**, e.g. `:source_uuid: <uuid>`. In
30
+ `**/formulas/*.py`, public functions are treated as formulas by convention; outside
31
+ formula modules, `:source_uuid:` is the explicit opt-in marker. Parameters are
32
+ module-level `Final[...]` constants with a trailing string-literal docstring carrying
33
+ the description and `:source_uuid:`. The `check-spec-uuids` tool resolves every
34
+ `:source_uuid:` against the `content/` document tree on every `make check-all`.
35
+ - **Entities** use `pydantic.dataclasses.dataclass` (frozen) with closed-world `Enum`
36
+ fields; encode eligibility via Enum membership (e.g. `EligiblePrimeAgentASC`) rather
37
+ than booleans or runtime checks.
38
+ - **Start entities formula-local** (`spec/<domain>/entities/`); only uplift to a shared
39
+ location when ≥3 independent formulas reuse them. Moving entities is a breaking
40
+ change.
41
+
42
+ ## Reviewing axis-synome PRs
43
+
44
+ The shared review focus / non-focus list lives in
45
+ [`../.github/copilot-instructions.md`](../.github/copilot-instructions.md) so Copilot
46
+ and humans use the same list. Subtree-specific review rules for `axis-synome/**` live
47
+ in
48
+ [`../.github/instructions/axis-synome.instructions.md`](../.github/instructions/axis-synome.instructions.md)
49
+ (in particular: spec-review patterns AXS cannot enforce, Atlas-alignment guidance,
50
+ and the no-defensive-error-handling rule). Read both before reviewing.
51
+
52
+ ## What belongs in this AGENTS.md
53
+
54
+ Only rules that an agent **cannot reasonably discover on its own** by reading the
55
+ axis-synome subtree (e.g. `pyproject.toml`, the root `Makefile`, `lefthook.yml`).
56
+ Things that *can* be discovered — make-target catalogues, dependency lists,
57
+ type-checker choice, lint rule sets — drift out of date and belong in their config
58
+ of origin, not here.
@@ -0,0 +1 @@
1
+ @AGENTS.md
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: axis-synome
3
- Version: 0.1.0.dev61
3
+ Version: 0.1.0.dev62
4
4
  Summary: Axis specification modules (entities, formulas, validators)
5
5
  Author-email: Archon Tech <hello@archontech.ai>
6
6
  License: MIT
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.1.0.dev61'
22
- __version_tuple__ = version_tuple = (0, 1, 0, 'dev61')
21
+ __version__ = version = '0.1.0.dev62'
22
+ __version_tuple__ = version_tuple = (0, 1, 0, 'dev62')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: axis-synome
3
- Version: 0.1.0.dev61
3
+ Version: 0.1.0.dev62
4
4
  Summary: Axis specification modules (entities, formulas, validators)
5
5
  Author-email: Archon Tech <hello@archontech.ai>
6
6
  License: MIT
@@ -1,4 +1,6 @@
1
1
  .flake8
2
+ AGENTS.md
3
+ CLAUDE.md
2
4
  README.md
3
5
  WRITING_SPECS.md
4
6
  pyproject.toml