openmodus 0.0.2__tar.gz → 0.0.4__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 (416) hide show
  1. openmodus-0.0.4/ARCHITECTURE.md +123 -0
  2. openmodus-0.0.4/CONTRIBUTING.md +68 -0
  3. openmodus-0.0.4/PKG-INFO +472 -0
  4. openmodus-0.0.4/README.md +423 -0
  5. openmodus-0.0.4/READMEs/README.en.md +425 -0
  6. openmodus-0.0.4/docs/authoring-contract.md +240 -0
  7. openmodus-0.0.4/docs/knowledge-lifecycle-boundary.md +281 -0
  8. {openmodus-0.0.2 → openmodus-0.0.4}/pyproject.toml +19 -4
  9. openmodus-0.0.4/scripts/README.md +30 -0
  10. openmodus-0.0.4/scripts/package_smoke.py +6 -0
  11. openmodus-0.0.4/scripts/release_smoke/__init__.py +7 -0
  12. openmodus-0.0.4/scripts/release_smoke/archive.py +189 -0
  13. openmodus-0.0.4/scripts/release_smoke/cli.py +58 -0
  14. openmodus-0.0.4/scripts/release_smoke/contracts.py +273 -0
  15. openmodus-0.0.4/scripts/release_smoke/diagnostics.py +20 -0
  16. openmodus-0.0.4/scripts/release_smoke/runtime.py +487 -0
  17. openmodus-0.0.4/scripts/release_smoke/verification.py +210 -0
  18. openmodus-0.0.4/scripts/wheel-smoke.sh +49 -0
  19. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/__init__.py +1 -1
  20. openmodus-0.0.4/src/modus/activation_guidance.py +28 -0
  21. openmodus-0.0.4/src/modus/artifacts_io.py +537 -0
  22. openmodus-0.0.4/src/modus/atomic_writes.py +529 -0
  23. openmodus-0.0.4/src/modus/cli.py +169 -0
  24. openmodus-0.0.4/src/modus/cli_commands/__init__.py +1 -0
  25. openmodus-0.0.4/src/modus/cli_commands/analysis.py +259 -0
  26. openmodus-0.0.4/src/modus/cli_commands/analysis_display.py +73 -0
  27. openmodus-0.0.4/src/modus/cli_commands/common.py +149 -0
  28. openmodus-0.0.4/src/modus/cli_commands/context.py +62 -0
  29. openmodus-0.0.4/src/modus/cli_commands/discovery.py +136 -0
  30. openmodus-0.0.4/src/modus/cli_commands/initialize.py +274 -0
  31. openmodus-0.0.4/src/modus/cli_commands/knowledge.py +243 -0
  32. openmodus-0.0.4/src/modus/cli_commands/presentation.py +210 -0
  33. openmodus-0.0.4/src/modus/cli_commands/uninstall.py +508 -0
  34. openmodus-0.0.4/src/modus/cli_commands/update.py +589 -0
  35. openmodus-0.0.4/src/modus/command_reference.py +417 -0
  36. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/__init__.py +1 -1
  37. openmodus-0.0.4/src/modus/commands/help.py +50 -0
  38. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/init_project.py +47 -211
  39. openmodus-0.0.4/src/modus/commands/init_report.py +196 -0
  40. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/install_state.py +45 -34
  41. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/maintenance_scope.py +3 -0
  42. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/reporting.py +9 -8
  43. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/seed_business.py +9 -6
  44. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/self_update.py +35 -30
  45. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/status.py +13 -7
  46. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/uninstall.py +29 -1
  47. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/uninstall_report.py +37 -24
  48. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/uninstall_self.py +14 -21
  49. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/update.py +39 -10
  50. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/update_report.py +50 -29
  51. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/verify_anchors.py +13 -12
  52. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/verify_knowledge.py +3 -1
  53. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/config.py +89 -35
  54. openmodus-0.0.4/src/modus/display_labels.py +30 -0
  55. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/git_hygiene.py +32 -22
  56. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/hooks/bootstrap.py +7 -9
  57. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/hooks/contracts.py +3 -3
  58. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/hooks/environment.py +3 -2
  59. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/hooks/protocol.py +15 -13
  60. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/hooks/runtime.py +7 -4
  61. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_identity.py +11 -0
  62. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_reader.py +31 -22
  63. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_seeds.py +10 -41
  64. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_update.py +24 -13
  65. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/authoring_card.py +33 -19
  66. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/discovery.py +67 -47
  67. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/markdown_integrity.py +39 -11
  68. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/metadata.py +4 -3
  69. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/publication.py +67 -31
  70. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/structure.py +4 -5
  71. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_write_session.py +22 -23
  72. openmodus-0.0.4/src/modus/machine/ARCHITECTURE.md +84 -0
  73. openmodus-0.0.4/src/modus/machine/README.md +107 -0
  74. openmodus-0.0.4/src/modus/machine/capability/README.md +15 -0
  75. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/composition_model.py +4 -0
  76. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/input_normalization.py +28 -0
  77. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/seed_selection.py +8 -1
  78. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/traversal.py +27 -0
  79. openmodus-0.0.4/src/modus/machine/corpus/README.md +13 -0
  80. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/input_snapshot.py +98 -29
  81. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/lifecycle.py +46 -31
  82. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/scan.py +5 -1
  83. openmodus-0.0.4/src/modus/machine/corpus/source_coordinates.py +97 -0
  84. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/source_inventory.py +104 -74
  85. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/source_roles.py +9 -0
  86. openmodus-0.0.4/src/modus/machine/facts/README.md +15 -0
  87. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_context.py +15 -1
  88. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_contracts.py +11 -1
  89. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_resolvers/__init__.py +5 -1
  90. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_resolvers/base.py +7 -0
  91. openmodus-0.0.4/src/modus/machine/facts/build_resolvers/cpp_resolver.py +207 -0
  92. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_resolvers/go_resolver.py +11 -1
  93. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_resolvers/java_resolver.py +174 -82
  94. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_resolvers/python_resolver.py +62 -41
  95. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_resolvers/typescript_resolver.py +64 -45
  96. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/build_support.py +45 -1
  97. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/cpp.py +66 -21
  98. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/go.py +11 -0
  99. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/java.py +10 -0
  100. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/merge.py +13 -0
  101. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/models.py +31 -27
  102. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/process.py +18 -2
  103. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/python.py +41 -1
  104. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/typescript.py +7 -1
  105. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/contracts.py +14 -10
  106. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/entry_contracts.py +14 -0
  107. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/entry_observation.py +41 -1
  108. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/extension_registry.py +26 -18
  109. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/extraction_cache.py +32 -3
  110. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/framework_facts.py +102 -41
  111. openmodus-0.0.4/src/modus/machine/facts/frontend.py +438 -0
  112. openmodus-0.0.4/src/modus/machine/facts/frontend_context.py +229 -0
  113. openmodus-0.0.4/src/modus/machine/facts/frontend_server.py +495 -0
  114. openmodus-0.0.4/src/modus/machine/facts/frontend_state.py +440 -0
  115. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/generic.py +1 -0
  116. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/lifecycle.py +4 -0
  117. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/native_binding.py +188 -125
  118. openmodus-0.0.4/src/modus/machine/facts/native_parser.py +110 -0
  119. openmodus-0.0.4/src/modus/machine/facts/native_syntax.py +171 -0
  120. openmodus-0.0.2/src/modus/machine/facts/native_parser.py → openmodus-0.0.4/src/modus/machine/facts/native_visitor.py +234 -346
  121. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/provider_assets/ModusJavaAnalyzer.java +134 -31
  122. openmodus-0.0.4/src/modus/machine/facts/provider_assets/modus_go_analyzer.go +455 -0
  123. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/rule_signals.py +25 -0
  124. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/search_metadata.py +3 -0
  125. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/semantic_contracts.py +8 -0
  126. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/semantic_ir.py +86 -21
  127. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/semantic_providers.py +17 -0
  128. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/source_contracts.py +18 -4
  129. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/source_evidence.py +22 -0
  130. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/structural.py +5 -2
  131. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/value_summary.py +98 -44
  132. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/languages.py +11 -0
  133. openmodus-0.0.4/src/modus/machine/packet/README.md +15 -0
  134. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/packet/context_builder.py +53 -0
  135. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/packet/cursor.py +7 -0
  136. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/packet/query.py +42 -0
  137. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/pipeline.py +8 -2
  138. openmodus-0.0.4/src/modus/machine/projection/README.md +13 -0
  139. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/lifecycle.py +21 -0
  140. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/proposals.py +66 -24
  141. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/publication.py +2 -0
  142. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/scope_candidates.py +41 -0
  143. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/scope_profiles.py +20 -0
  144. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/views.py +21 -0
  145. openmodus-0.0.4/src/modus/machine/resolution/README.md +13 -0
  146. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/evidence_graph.py +9 -0
  147. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/lifecycle.py +12 -0
  148. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/method_graph.py +25 -0
  149. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/navigation.py +19 -0
  150. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/reference_outcomes.py +22 -0
  151. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/semantic_reconcile.py +36 -0
  152. openmodus-0.0.4/src/modus/machine/resolution/topology.py +546 -0
  153. openmodus-0.0.4/src/modus/machine/resolution/topology_records.py +310 -0
  154. openmodus-0.0.4/src/modus/machine/resolution/topology_resources.py +365 -0
  155. openmodus-0.0.4/src/modus/machine/resolution/topology_rules.py +475 -0
  156. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/topology_validation.py +58 -20
  157. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/view_quarantine.py +1 -1
  158. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/bundle.py +113 -48
  159. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/bundle_catalogs.py +62 -388
  160. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/catalog.py +165 -90
  161. openmodus-0.0.4/src/modus/machine/store/catalog_building.py +100 -0
  162. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/contracts.py +24 -0
  163. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/evidence_records.py +25 -0
  164. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/fingerprint.py +6 -0
  165. openmodus-0.0.4/src/modus/machine/store/scope_catalog.py +368 -0
  166. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/manifest.py +33 -29
  167. openmodus-0.0.4/src/modus/orchestrator/README.md +47 -0
  168. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/context_resolver.py +2 -2
  169. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/evidence_search.py +35 -3
  170. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/knowledge_sync.py +18 -12
  171. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/models.py +4 -14
  172. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/module_meta.py +12 -9
  173. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/path_scope.py +1 -1
  174. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/preflight.py +2 -2
  175. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/search_policy.py +11 -0
  176. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/paths.py +6 -6
  177. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/codebuddy.py +6 -5
  178. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/cursor.py +4 -2
  179. openmodus-0.0.4/src/modus/platforms/display.py +20 -0
  180. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/hooks.py +9 -13
  181. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/models.py +22 -26
  182. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/registry.py +4 -7
  183. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/rendering.py +6 -7
  184. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/sections.py +5 -7
  185. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/precedence.py +8 -8
  186. openmodus-0.0.4/src/modus/retrieval/README.md +42 -0
  187. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/delivery.py +19 -9
  188. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/index.py +4 -1
  189. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/pipeline.py +85 -18
  190. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/query.py +12 -1
  191. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/routing.py +37 -12
  192. openmodus-0.0.4/src/modus/retrieval/runtime.py +38 -0
  193. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/settings.py +2 -2
  194. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/discovery.py +1 -0
  195. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/documents.py +74 -31
  196. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/lexical.py +3 -0
  197. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/ranking.py +14 -0
  198. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/selection.py +10 -3
  199. openmodus-0.0.4/src/modus/scaffold/README.md +49 -0
  200. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/__init__.py +5 -1
  201. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/catalog.py +13 -25
  202. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/project.py +7 -10
  203. openmodus-0.0.4/src/modus/scaffold/templates/README.md +30 -0
  204. openmodus-0.0.4/src/modus/scaffold/templates/knowledge/business/experience/index.md +7 -0
  205. openmodus-0.0.4/src/modus/scaffold/templates/knowledge/business/index.md +11 -0
  206. openmodus-0.0.4/src/modus/scaffold/templates/knowledge/business/meta/index.md +7 -0
  207. openmodus-0.0.4/src/modus/scaffold/templates/knowledge/business/scenario/index.md +7 -0
  208. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/knowledge/constraint/global-standard.md +5 -1
  209. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/knowledge/constraint/team-standard.md +1 -1
  210. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/knowledge/handbook/SKILL.md +5 -0
  211. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/SKILL.md +1 -1
  212. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/cpp.md +8 -0
  213. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/dotnet.md +4 -0
  214. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/go.md +8 -0
  215. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/java.md +8 -0
  216. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/kotlin.md +4 -0
  217. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/php.md +8 -0
  218. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/python.md +4 -0
  219. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/rust.md +4 -0
  220. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-profiles/web.md +8 -0
  221. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/global-standard.md +4 -0
  222. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/workspace-init.md +10 -1
  223. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-reinit/SKILL.md +1 -1
  224. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-sync-knowledge/SKILL.md +1 -1
  225. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-update-knowledge/SKILL.md +1 -1
  226. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/SKILL.md +6 -1
  227. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/domain-worker-prompt.md +9 -1
  228. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/index.md +4 -0
  229. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/dotnet.md +4 -0
  230. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/generic.md +4 -0
  231. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/go.md +4 -0
  232. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/iac.md +4 -0
  233. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/index.md +5 -1
  234. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/java.md +4 -0
  235. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/kotlin.md +4 -0
  236. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/native.md +4 -0
  237. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/php.md +4 -0
  238. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/python.md +4 -0
  239. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/rust.md +4 -0
  240. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/language-adapters/typescript.md +4 -0
  241. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/machine-packet.md +8 -0
  242. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/scenario-closure.md +6 -0
  243. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/evidence/scope-modeling.md +1 -1
  244. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/api.md +6 -1
  245. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/business.md +5 -1
  246. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/collaboration.md +5 -1
  247. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/domain.md +12 -6
  248. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/infrastructure.md +6 -1
  249. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/module.md +14 -6
  250. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/object.md +6 -1
  251. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/root.md +10 -4
  252. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/rule.md +5 -1
  253. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/state-machine.md +6 -1
  254. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/team-standard.md +6 -1
  255. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/deliverables/topics.md +5 -0
  256. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/index.md +5 -0
  257. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/layout.md +5 -0
  258. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/localization.md +4 -2
  259. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/surface-profiles.md +5 -1
  260. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/visual-expression.md +7 -0
  261. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/index.md +4 -0
  262. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/parallel-domain-authoring.md +9 -2
  263. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/authoring/publication.md +7 -0
  264. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/constraint-usage.md +5 -0
  265. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/framework-update.md +4 -0
  266. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/using-modus/references/router-details.md +6 -0
  267. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/writer.py +5 -9
  268. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/schema_resources.py +4 -4
  269. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scope_models.py +66 -40
  270. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scope_resolver.py +4 -0
  271. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/sensitive_literals.py +5 -0
  272. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/skillmd.py +16 -10
  273. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/source_listing.py +7 -0
  274. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/surface.py +1 -1
  275. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/versioning.py +1 -1
  276. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/workspace.py +86 -189
  277. openmodus-0.0.4/src/modus/workspace_maps.py +172 -0
  278. openmodus-0.0.4/tests/README.md +41 -0
  279. openmodus-0.0.4/tests/_support/__init__.py +1 -0
  280. openmodus-0.0.4/tests/_support/analysis.py +30 -0
  281. openmodus-0.0.4/tests/_support/markdown.py +56 -0
  282. openmodus-0.0.4/tests/_support/paths.py +7 -0
  283. openmodus-0.0.4/tests/_support/sensitive_samples.py +13 -0
  284. openmodus-0.0.4/tests/fixtures/simple_service/order/order_repo.py +24 -0
  285. openmodus-0.0.4/tests/fixtures/simple_service/order/order_service.py +27 -0
  286. openmodus-0.0.4/tests/fixtures/simple_service/payment/payment_gateway.py +19 -0
  287. openmodus-0.0.4/tests/fixtures/simple_service/payment/payment_service.py +21 -0
  288. openmodus-0.0.4/tests/machine/test_architecture.py +202 -0
  289. openmodus-0.0.4/tests/machine/test_capability_composer.py +158 -0
  290. openmodus-0.0.4/tests/machine/test_context_builder.py +254 -0
  291. openmodus-0.0.4/tests/machine/test_contracts.py +209 -0
  292. openmodus-0.0.4/tests/machine/test_corpus.py +41 -0
  293. openmodus-0.0.4/tests/machine/test_extraction_cache_identity.py +46 -0
  294. openmodus-0.0.4/tests/machine/test_language_fixtures.py +324 -0
  295. openmodus-0.0.4/tests/machine/test_lifecycle_degradation.py +138 -0
  296. openmodus-0.0.4/tests/machine/test_progress.py +72 -0
  297. openmodus-0.0.4/tests/machine/test_projection.py +162 -0
  298. openmodus-0.0.4/tests/machine/test_public_contracts.py +129 -0
  299. openmodus-0.0.4/tests/machine/test_states.py +102 -0
  300. openmodus-0.0.4/tests/machine/test_store_validation.py +435 -0
  301. openmodus-0.0.4/tests/test_analysis_pipeline.py +374 -0
  302. openmodus-0.0.4/tests/test_cli_boundaries.py +174 -0
  303. openmodus-0.0.4/tests/test_cli_localization.py +234 -0
  304. openmodus-0.0.4/tests/test_documented_cli.py +138 -0
  305. openmodus-0.0.4/tests/test_evidence_selection.py +323 -0
  306. openmodus-0.0.4/tests/test_hooks.py +166 -0
  307. openmodus-0.0.4/tests/test_install_safety.py +132 -0
  308. openmodus-0.0.4/tests/test_knowledge_retrieval.py +303 -0
  309. openmodus-0.0.4/tests/test_knowledge_update.py +350 -0
  310. openmodus-0.0.4/tests/test_orchestrator.py +90 -0
  311. openmodus-0.0.4/tests/test_platforms.py +113 -0
  312. openmodus-0.0.4/tests/test_project_lifecycle.py +368 -0
  313. openmodus-0.0.4/tests/test_release_smoke.py +154 -0
  314. openmodus-0.0.4/tests/test_scaffold.py +112 -0
  315. openmodus-0.0.4/tests/test_sensitive_literals.py +130 -0
  316. openmodus-0.0.4/tests/test_verify_knowledge.py +323 -0
  317. openmodus-0.0.4/tests/test_workspace_lifecycle.py +144 -0
  318. {openmodus-0.0.2 → openmodus-0.0.4}/uv.lock +3 -1
  319. openmodus-0.0.2/PKG-INFO +0 -420
  320. openmodus-0.0.2/README.md +0 -371
  321. openmodus-0.0.2/READMEs/README.en.md +0 -372
  322. openmodus-0.0.2/docs/knowledge-lifecycle-boundary.md +0 -558
  323. openmodus-0.0.2/docs/modus-authoring-contract-latest.md +0 -1774
  324. openmodus-0.0.2/src/modus/activation_guidance.py +0 -31
  325. openmodus-0.0.2/src/modus/artifacts_io.py +0 -1066
  326. openmodus-0.0.2/src/modus/cli.py +0 -2007
  327. openmodus-0.0.2/src/modus/command_reference.py +0 -372
  328. openmodus-0.0.2/src/modus/commands/help.py +0 -131
  329. openmodus-0.0.2/src/modus/machine/ARCHITECTURE.md +0 -121
  330. openmodus-0.0.2/src/modus/machine/README.md +0 -138
  331. openmodus-0.0.2/src/modus/machine/capability/README.md +0 -10
  332. openmodus-0.0.2/src/modus/machine/corpus/README.md +0 -9
  333. openmodus-0.0.2/src/modus/machine/corpus/source_coordinates.py +0 -80
  334. openmodus-0.0.2/src/modus/machine/facts/README.md +0 -11
  335. openmodus-0.0.2/src/modus/machine/facts/build_resolvers/cpp_resolver.py +0 -173
  336. openmodus-0.0.2/src/modus/machine/facts/frontend.py +0 -1425
  337. openmodus-0.0.2/src/modus/machine/facts/provider_assets/modus_go_analyzer.go +0 -367
  338. openmodus-0.0.2/src/modus/machine/packet/README.md +0 -18
  339. openmodus-0.0.2/src/modus/machine/projection/README.md +0 -9
  340. openmodus-0.0.2/src/modus/machine/resolution/README.md +0 -9
  341. openmodus-0.0.2/src/modus/machine/resolution/topology.py +0 -1539
  342. openmodus-0.0.2/src/modus/orchestrator/README.md +0 -67
  343. openmodus-0.0.2/src/modus/retrieval/README.md +0 -64
  344. openmodus-0.0.2/src/modus/retrieval/runtime.py +0 -39
  345. openmodus-0.0.2/src/modus/scaffold/README.md +0 -74
  346. openmodus-0.0.2/src/modus/scaffold/templates/README.md +0 -37
  347. {openmodus-0.0.2 → openmodus-0.0.4}/.gitignore +0 -0
  348. {openmodus-0.0.2 → openmodus-0.0.4}/LICENSE +0 -0
  349. {openmodus-0.0.2 → openmodus-0.0.4}/schemas/machine/analysis-receipt.schema.json +0 -0
  350. {openmodus-0.0.2 → openmodus-0.0.4}/schemas/machine/authoring-context-packet.schema.json +0 -0
  351. {openmodus-0.0.2 → openmodus-0.0.4}/schemas/machine/capability-slice.schema.json +0 -0
  352. {openmodus-0.0.2 → openmodus-0.0.4}/schemas/machine/evidence-page.schema.json +0 -0
  353. {openmodus-0.0.2 → openmodus-0.0.4}/schemas/module-meta.schema.yaml +0 -0
  354. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/__main__.py +0 -0
  355. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/context_cmd.py +0 -0
  356. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/commands/permission_errors.py +0 -0
  357. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/hooks/__init__.py +0 -0
  358. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/hooks/context.py +0 -0
  359. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/__init__.py +0 -0
  360. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/knowledge_verification/models.py +0 -0
  361. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/__init__.py +0 -0
  362. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/api.py +0 -0
  363. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/__init__.py +0 -0
  364. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/composer.py +0 -0
  365. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/contracts.py +0 -0
  366. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/capability/lifecycle.py +0 -0
  367. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/__init__.py +0 -0
  368. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/contracts.py +0 -0
  369. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/source_filters.py +0 -0
  370. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/corpus/source_snapshot.py +0 -0
  371. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/errors.py +0 -0
  372. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/__init__.py +0 -0
  373. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/__init__.py +0 -0
  374. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/compiler/cache.py +0 -0
  375. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/frontend_frameworks.py +0 -0
  376. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/frontend_routes.py +0 -0
  377. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/language_capabilities.py +0 -0
  378. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/facts/provider_assets/modus_typescript_analyzer.cjs +0 -0
  379. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/implementation.py +0 -0
  380. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/language-registry.json +0 -0
  381. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/packet/__init__.py +0 -0
  382. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/packet/contracts.py +0 -0
  383. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/packet/lifecycle.py +0 -0
  384. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/progress.py +0 -0
  385. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/__init__.py +0 -0
  386. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/community_signal.py +0 -0
  387. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/projection/contracts.py +0 -0
  388. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/receipts.py +0 -0
  389. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/__init__.py +0 -0
  390. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/contracts.py +0 -0
  391. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/resolution/topology_model.py +0 -0
  392. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/runtime/__init__.py +0 -0
  393. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/runtime/resources.py +0 -0
  394. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/runtime/toolchains.py +0 -0
  395. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/states.py +0 -0
  396. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/__init__.py +0 -0
  397. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/machine/store/ids.py +0 -0
  398. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/__init__.py +0 -0
  399. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/fallback.py +0 -0
  400. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/orchestrator/query_terms.py +0 -0
  401. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/__init__.py +0 -0
  402. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/base.py +0 -0
  403. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/claude.py +0 -0
  404. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/platforms/codex.py +0 -0
  405. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/project_activation.py +0 -0
  406. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/py.typed +0 -0
  407. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/__init__.py +0 -0
  408. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/budget.py +0 -0
  409. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/__init__.py +0 -0
  410. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/sections.py +0 -0
  411. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/retrieval/stages/settings.py +0 -0
  412. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/commands/init.md +0 -0
  413. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/commands/reinit.md +0 -0
  414. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/commands/update-knowledge.md +0 -0
  415. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/scaffold/templates/skills/modus-init/references/constraint-extraction.md +0 -0
  416. {openmodus-0.0.2 → openmodus-0.0.4}/src/modus/text_tree.py +0 -0
@@ -0,0 +1,123 @@
1
+ # 架构设计
2
+
3
+ Modus 将三个生命周期分开管理:**接入资产让工作流可用,初始化分析提供可丢弃的证据,经过评审的 Markdown 保存长期知识**。日常检索读取当前源码与知识正文,不重建或重开初始化数据。模块围绕各自拥有的数据、失败语义与变更边界划分。
4
+
5
+ <!--
6
+ 阅读入口按职责排列;新增入口时核对真实的模块所有者。
7
+ -->
8
+
9
+ ## 从这里开始阅读
10
+
11
+ 1. [CLI 组合入口](src/modus/cli.py):五个公开命令与供技能调用的内部适配器。
12
+ 2. [项目安装](src/modus/commands/init_project.py):预检、计划写入、回滚与清单发布。
13
+ 3. [分析 API](src/modus/machine/api.py):构建、验证后打开、证据筛选与创作上下文。
14
+ 4. [上下文解析](src/modus/orchestrator/context_resolver.py):一个请求、一个共享预算、一份当前证据。
15
+ 5. [知识更新](src/modus/knowledge_update.py)与[写入会话](src/modus/knowledge_write_session.py):所有权、读取时哈希、并发冲突与原子发布。
16
+
17
+ <!--
18
+ 依赖方向与写入所有权同时约束扩展,不能仅凭导入无环判断分层。
19
+ -->
20
+
21
+ ## 依赖与所有权
22
+
23
+ ```mermaid
24
+ flowchart TB
25
+ CLI[CLI 组合入口] --> Terminal[终端适配器]
26
+ Terminal --> Commands[应用命令]
27
+ Terminal --> Machine[初始化分析]
28
+ Terminal --> Display[中文帮助与诊断]
29
+ Commands --> Install[模板与平台适配]
30
+ Commands --> Orchestration[上下文与影响编排]
31
+ Orchestration --> Retrieval[当前 Markdown 与源码检索]
32
+ Commands --> Verify[知识完整性核验]
33
+ Commands --> Writes[知识写入会话]
34
+ Install --> Manifest[所有权清单]
35
+ Machine --> Cache[临时证据包]
36
+ Writes --> Knowledge[长期 Markdown 知识]
37
+ ```
38
+
39
+ | 边界 | 所有者 | 扩展规则 |
40
+ | --- | --- | --- |
41
+ | 命令树与全局参数 | `cli.py` | 显式注册公开入口,不承载工作流实现 |
42
+ | 参数、交互、流与退出码 | `cli_commands/` | 按工作流拆分适配器,不修改 Click 全局状态 |
43
+ | 中文帮助与解析错误 | `cli_commands/presentation.py` | 从已注册参数生成帮助,仅适配框架固定句式 |
44
+ | 分析进度与恢复提示 | `cli_commands/analysis_display.py` | 转换展示副本,不改证据、摘要或 JSON 契约 |
45
+ | 协议值的展示名称 | `display_labels.py` | 终端与 Markdown 复用;未知值保留原标识 |
46
+ | 安装与维护事务 | `commands/` | 返回结构化结果,展示由 `*_report.py` 负责 |
47
+ | 平台中立的工作流分发 | `scaffold/` | 验证静态模板并记录资产所有权 |
48
+ | 宿主差异 | `platforms/`、`hooks/` | 声明布局,复用合并与卸载契约;`platforms/display.py` 统一平台显示名与交互顺序 |
49
+ | 初始化分析 | `machine/` | 单向语义阶段,显式覆盖缺口 |
50
+ | 任务编排 | `orchestrator/` | 组合证据与策略,不拥有搜索算法或写入 |
51
+ | 检索 | `retrieval/` | 共享截止时间与输出预算,明确返回部分结果 |
52
+ | 完整性 | `knowledge_verification/` | 报告客观缺陷,不给正文质量打分 |
53
+ | 长期写入 | `knowledge_write_session.py` | 路径约束、所有权、哈希条件写入、锁与原子替换 |
54
+
55
+ <!--
56
+ 机器层的确定性不等于业务结论的完整性,二者各有验收责任。
57
+ -->
58
+
59
+ ## 分析证据是创作输入
60
+
61
+ ```text
62
+ N1 源码基线 → N2 程序事实 → N3 关系解析 → N4 能力模型 → N5 创作投影 → N6 证据包
63
+ ```
64
+
65
+ 后续阶段消费前序契约。投影与打包不能重新读取源码来补造缺失观察。存储与资源策略不依赖任何语义阶段。[架构测试](tests/machine/test_architecture.py)检查这些方向,包括函数内的延迟导入。
66
+
67
+ 可选解析器或编译器缺失,只产生对应范围的覆盖回执。契约、完整性、输入漂移或必需工具失败会中止本轮。完整证据包经过核验后才原子发布;失败不能替换已有完整包,也不能把旧包当作当前证据。消费者必须提供本轮身份,并使用经过认证且有预算限制的查询。
68
+
69
+ [分析层指南](src/modus/machine/README.md)说明扩展注册、进度、摘要与错误码。编译器观察属于 N2;语言适配器无权决定最终业务边界。
70
+
71
+ 同一阶段内部继续按责任分解:
72
+
73
+ | 职责 | 组合入口 | 支撑模块 |
74
+ | --- | --- | --- |
75
+ | 原子发布 | [产物 I/O](src/modus/artifacts_io.py) | [原子写入](src/modus/atomic_writes.py)负责描述符绑定与替换;锁与 YAML 加载留在产物 I/O |
76
+ | 文件内解析 | [原生解析器](src/modus/machine/facts/native_parser.py) | [语法契约](src/modus/machine/facts/native_syntax.py)定义语法类别与可移植结果;[访问器](src/modus/machine/facts/native_visitor.py)负责单文件遍历,入口负责解析器选择与生命周期 |
77
+ | 框架观察 | [前端入口](src/modus/machine/facts/frontend.py) | [上下文](src/modus/machine/facts/frontend_context.py)、[状态](src/modus/machine/facts/frontend_state.py)与[服务路由](src/modus/machine/facts/frontend_server.py)共享源码锚点,不执行应用 |
78
+ | 拓扑 | [拓扑组装](src/modus/machine/resolution/topology.py) | [规则](src/modus/machine/resolution/topology_rules.py)、[记录](src/modus/machine/resolution/topology_records.py)与[资源](src/modus/machine/resolution/topology_resources.py)分开处理分类和发布 |
79
+ | 目录投影 | [证据目录](src/modus/machine/store/bundle_catalogs.py) | [范围目录](src/modus/machine/store/scope_catalog.py)拥有范围记录,[构建原语](src/modus/machine/store/catalog_building.py)共享规范化操作 |
80
+ | 工作区地图 | [工作区服务](src/modus/workspace.py) | [地图渲染](src/modus/workspace_maps.py)只消费观察,不读写成员仓库 |
81
+
82
+ 移动解析实现时必须同步实现指纹。观察结果的缓存身份要随访问器或语法契约变化而失效,仅以源码内容作为缓存键不够。
83
+
84
+ <!--
85
+ 人工正文的所有权与分析缓存不同,重建证据不得覆盖人工知识。
86
+ -->
87
+
88
+ ## 长期知识有独立的生命周期
89
+
90
+ | 接入项目中的位置 | 生命周期与权限 |
91
+ | --- | --- |
92
+ | `.modus/` 与平台接入文件 | 框架受管资产,由清单保护用户修改 |
93
+ | `modus/.cache/` | 可丢弃的分析与临时创作状态 |
94
+ | `modus/knowledge/` | 经评审、随项目版本管理的 Markdown |
95
+ | 知识中的 `business/` 与 `constraint/` | 默认由人工维护,自动化修改需要明确授权 |
96
+
97
+ [创作契约](docs/authoring-contract.md)区分证据闭环、面向读者的正文与发布。机器建议指导调查,当前源码、测试、配置与明确材料确立事实。结构核验 `clean` 不等于业务事实正确或正文清晰。
98
+
99
+ 写入使用准备修改时观察到的哈希。并发修改形成冲突,不被覆盖。迁移先建立新主定义、修复链接,再删除旧生成文件。知识更新批次按文件报告独立结果,不承诺全批回滚;安装事务则对计划目标创建快照,失败时尝试精确回滚,并明确报告恢复不完整。
100
+
101
+ <!--
102
+ 日常读取使用当前项目内容,初始化数据不是长期检索索引。
103
+ -->
104
+
105
+ ## 检索始终面向当前项目
106
+
107
+ [编排层](src/modus/orchestrator/README.md)选择范围并组装协议;[检索管线](src/modus/retrieval/README.md)负责渐进发现 Markdown、词法与结构排序、源码采集和交付。整个请求共用一个预算,缺失证据、不安全文件与截断都可见。运行时不能用初始化缓存替代当前源码。
108
+
109
+ 仅在执行分析命令时导入分析依赖。帮助、状态、安装和普通源码/Markdown 检索不提前加载解析器、图依赖或分析管线。
110
+
111
+ <!--
112
+ 展示语言可本地化,稳定命令、字段和错误码仍保持机器兼容。
113
+ -->
114
+
115
+ ## 中文体验与公开契约
116
+
117
+ 面向用户的帮助、交互、诊断、生成知识和维护文档默认使用简体中文。命令名、参数、路径、Python 标识、JSON 字段、状态值与稳定错误码保持协议原样。用户明确指定其他正文语言时,创作工作流遵从该要求。
118
+
119
+ 中文化在拥有文本的边界完成:命令目录维护语义说明,报告模块维护结果展示,终端层适配框架默认提示,模板维护创作约定。错误信息说明问题与恢复动作,第三方工具的原始诊断可作为细节保留。不得通过全局猴子补丁、整段输出替换或改写传输字段实现本地化。
120
+
121
+ 增加宿主时扩展经过验证的平台注册表;增加语言时同步声明、版本化实现与支持/降级夹具;增加检索信号时修改其所属阶段。不要仅为缩短文件创建抽象,只有所有者、生命周期或失败策略不同才拆分。
122
+
123
+ [贡献指南](CONTRIBUTING.md)说明命名、注释与验证要求。[发布工具](scripts/README.md)检查源码包和 wheel,并脱离源码仓库运行已安装产物。
@@ -0,0 +1,68 @@
1
+ <!--
2
+ 开发工具版本与锁文件一起维护,指南不维护第二套依赖约束。
3
+ 评审关注可观察行为与所有权,不用格式改动代替设计说明。
4
+ 新增边界应说明输入、失败结果与兼容性。
5
+ 语言约定只改变展示,机器字段和稳定路径保持原义。
6
+ 本地验证结果需注明环境,未运行的平台不作通过承诺。
7
+ -->
8
+
9
+ # 参与贡献
10
+
11
+ 先阅读[架构设计](ARCHITECTURE.md),再进入待修改模块的 README。一项变更应围绕一个可观察行为或一个所有权边界展开。提交说明写清问题、修改后的行为与相关验证,便于未参与讨论的维护者评审。
12
+
13
+ ## 本地开发
14
+
15
+ 使用 Python 3.11–3.14,在 Git 工作区按已提交的 uv 锁文件安装:
16
+
17
+ ```bash
18
+ uv sync --locked --extra test
19
+ uv run --locked --extra test pytest -q
20
+ uv run --locked --extra test ruff check src tests scripts
21
+ uv run --locked --extra test ruff format --check src tests scripts
22
+ uv run --locked --extra test mypy
23
+ git diff --check
24
+ ```
25
+
26
+ 发布前执行 `./scripts/wheel-smoke.sh`:重新构建 wheel 与源码包、检查内容,并运行独立的 wheel 验收。该脚本不发布安装包。源码包附带测试与发布脚本,下游维护者可复现检查。
27
+
28
+ CI 覆盖 Linux 的 Python 3.11–3.14,以及 macOS、Windows 的最低与最高支持版本;Linux/Python 3.14 还执行风格、类型与分发检查。本地结果只代表实际运行的环境。覆盖率用于分析,没有强制百分比门槛。
29
+
30
+ ## 命名与模块设计
31
+
32
+ - 组合入口保持声明式:终端适配器拥有参数、交互、输出流和退出码,服务拥有应用行为,报告模块将结构化结果转为读者可理解的文本。
33
+ - 模块以其职责命名。Python 使用 `snake_case`,类型使用 `PascalCase`,JSON 键遵守既有模式。稳定 ID 与路径独立于中文展示名。
34
+ - 在有意义的边界使用带类型的值对象。优先扩展现有所有者,避免泛化工具层、可变全局注册表和没有消费者的兼容别名。
35
+ - 按数据所有权、生命周期或失败策略拆分模块;不为行数或表面整齐制造层级。
36
+ - 区分精确观察、候选、启发式与未解析关系。可选能力缺口可降级,漂移、损坏和无效契约必须阻止错误结果继续传播。
37
+ - 在能解释异常的边界捕获预期异常,保留异常原因。面向用户说明失败对象、当前结果与恢复动作,不以笼统成功掩盖部分失败。
38
+ - 写入需证明所有权、路径约束与并发行为。逐文件原子性不等于批量事务回滚。
39
+
40
+ ## 注释与文档语言
41
+
42
+ 默认使用简体中文编写 CLI 提示、维护文档和面向用户的知识。新增或实质修改的注释、文档字符串优先用中文说明**为何如此、边界是什么、失败时谁负责**;不要逐句复述代码。现有解析算法中的英文技术说明可在相关模块改动时逐步整理,外部协议、术语与原始诊断保留必要拼写。
43
+
44
+ [README.md](README.md)是默认中文入口,[英文版](READMEs/README.en.md)是明确独立的翻译版。安装、命令或支持范围变化时同步维护两者。
45
+
46
+ 语言边界遵循以下规则:
47
+
48
+ | 内容 | 约定 |
49
+ | --- | --- |
50
+ | 帮助、确认、预览、进度、恢复建议 | 简体中文 |
51
+ | 新创作的知识与生成的工作区导航 | 默认简体中文;用户明确指定其他语言时遵从 |
52
+ | 命令、参数、路径、slug、源码标识 | 保持原样 |
53
+ | JSON 字段、枚举状态、诊断码与摘要 | 保持机器契约;说明文本可使用中文 |
54
+ | 多语言检索词、Unicode 测试数据、第三方错误细节 | 保留原始含义,不机械翻译 |
55
+
56
+ 帮助从实际注册参数生成;命令语义放在 `command_reference.py`,通用交互放在 `cli_commands/presentation.py`,分析展示放在 `cli_commands/analysis_display.py`,协议值显示名放在 `display_labels.py`。不得修改 Click/Typer 的全局类、私有常量或整段替换用户输出。
57
+
58
+ `src/modus/scaffold/templates/` 是随包交付的产品契约,Python 直接读取这些资源,不另存一份竞争性正文规范。其[本地化约定](src/modus/scaffold/templates/skills/using-modus/references/authoring/framework/localization.md)规定默认语言与局部修订边界。
59
+
60
+ 设计规则放在负责它的文档中,其他指南通过链接引用。文件名保持稳定、含义明确。创作设计与安装后的参考必须同步更新;相对链接和命令示例会按仓库与真实 CLI 注册情况检查。
61
+
62
+ ## 测试与扩展
63
+
64
+ 参见[测试地图](tests/README.md)。行为修复应覆盖有意义的成功、失败及用户数据保留场景。避免对偶然句式、辅助函数结构或输出长度做质量断言;语言回归可以检查中文语义与协议稳定性。
65
+
66
+ 新增平台需覆盖安装、幂等、共享文件、升级、用户修改保护与卸载。新增语言需覆盖声明、实现版本、观察结果与缺失工具链降级。模式或公开 CLI 变更需说明兼容性影响并更新文档。只在安装后才可能暴露的问题放入产物与运行时冒烟检查。
67
+
68
+ 迭代时执行最小相关检查,提交前跑完整验证。明确说明未执行的检查与原因,不把本地验证表述为跨平台 CI 已通过。