tradingcodex 0.3.1__tar.gz → 0.3.2__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 (310) hide show
  1. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/PKG-INFO +2 -2
  2. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/README.md +1 -1
  3. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/core-concepts-and-rules.md +3 -0
  4. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/deployment.md +5 -3
  5. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/generated-workspaces.md +1 -1
  6. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/research-memory-and-artifacts.md +2 -0
  7. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/roles-skills-and-workflows.md +11 -3
  8. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/validation-and-test-plan.md +3 -0
  9. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/pyproject.toml +1 -1
  10. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tests/test_python_migration.py +82 -2
  11. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex.egg-info/PKG-INFO +2 -2
  12. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/harness.py +9 -3
  13. tradingcodex-0.3.2/tradingcodex_service/version.py +1 -0
  14. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +10 -0
  15. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +1 -1
  16. tradingcodex-0.3.1/tradingcodex_service/version.py +0 -1
  17. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/CONTRIBUTING.md +0 -0
  18. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/LICENSE +0 -0
  19. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/MANIFEST.in +0 -0
  20. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/NOTICE +0 -0
  21. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/TRADEMARKS.md +0 -0
  22. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/__init__.py +0 -0
  23. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/audit/__init__.py +0 -0
  24. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/audit/admin.py +0 -0
  25. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/audit/apps.py +0 -0
  26. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/audit/migrations/0001_initial.py +0 -0
  27. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/audit/migrations/__init__.py +0 -0
  28. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/audit/models.py +0 -0
  29. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/harness/__init__.py +0 -0
  30. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/harness/admin.py +0 -0
  31. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/harness/apps.py +0 -0
  32. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/harness/migrations/0001_initial.py +0 -0
  33. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/harness/migrations/__init__.py +0 -0
  34. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/harness/models.py +0 -0
  35. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/harness/templatetags/__init__.py +0 -0
  36. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/integrations/__init__.py +0 -0
  37. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/integrations/admin.py +0 -0
  38. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/integrations/apps.py +0 -0
  39. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/integrations/migrations/0001_initial.py +0 -0
  40. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/integrations/migrations/0002_brokerconnection_brokeraccount_instrumentmap.py +0 -0
  41. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/integrations/migrations/__init__.py +0 -0
  42. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/integrations/models.py +0 -0
  43. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/mcp/__init__.py +0 -0
  44. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/mcp/admin.py +0 -0
  45. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/mcp/apps.py +0 -0
  46. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/mcp/migrations/0001_initial.py +0 -0
  47. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/mcp/migrations/__init__.py +0 -0
  48. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/mcp/models.py +0 -0
  49. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/mcp/services.py +0 -0
  50. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/__init__.py +0 -0
  51. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/admin.py +0 -0
  52. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/apps.py +0 -0
  53. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/migrations/0001_initial.py +0 -0
  54. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/migrations/0002_approvalreceipt_approved_order_type_and_more.py +0 -0
  55. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/migrations/0003_migrate_orderintent_to_orderticket.py +0 -0
  56. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/migrations/0004_remove_order_intent_compat_fields.py +0 -0
  57. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/migrations/__init__.py +0 -0
  58. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/models.py +0 -0
  59. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/orders/services.py +0 -0
  60. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/policy/__init__.py +0 -0
  61. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/policy/admin.py +0 -0
  62. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/policy/apps.py +0 -0
  63. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/policy/migrations/0001_initial.py +0 -0
  64. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/policy/migrations/__init__.py +0 -0
  65. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/policy/models.py +0 -0
  66. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/policy/services.py +0 -0
  67. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/portfolio/__init__.py +0 -0
  68. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/portfolio/admin.py +0 -0
  69. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/portfolio/apps.py +0 -0
  70. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/portfolio/migrations/0001_initial.py +0 -0
  71. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/portfolio/migrations/0002_brokersyncrun_portfolioledgerevent_reconciliationrun.py +0 -0
  72. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/portfolio/migrations/__init__.py +0 -0
  73. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/portfolio/models.py +0 -0
  74. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/workflows/__init__.py +0 -0
  75. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/workflows/admin.py +0 -0
  76. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/workflows/apps.py +0 -0
  77. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/workflows/migrations/0001_initial.py +0 -0
  78. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/workflows/migrations/__init__.py +0 -0
  79. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/apps/workflows/models.py +0 -0
  80. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/assets/tradingcodex-banner.svg +0 -0
  81. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/README.md +0 -0
  82. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/artifact-supervisor-loop-prd.md +0 -0
  83. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/components.md +0 -0
  84. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/financial-workflow-references.md +0 -0
  85. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/guardrails.md +0 -0
  86. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/harness.md +0 -0
  87. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/improvement-loop.md +0 -0
  88. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/interfaces-and-surfaces.md +0 -0
  89. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/licensing-and-commercialization.md +0 -0
  90. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/product-direction.md +0 -0
  91. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/safety-policy-and-execution.md +0 -0
  92. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/system-architecture.md +0 -0
  93. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/docs/user-facing-skills.md +0 -0
  94. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/install.sh +0 -0
  95. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/installation.md +0 -0
  96. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/setup.cfg +0 -0
  97. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tests/test_broker_center_prd.py +0 -0
  98. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tests/test_e2e_user_scenarios.py +0 -0
  99. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex.egg-info/SOURCES.txt +0 -0
  100. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex.egg-info/dependency_links.txt +0 -0
  101. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex.egg-info/entry_points.txt +0 -0
  102. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex.egg-info/requires.txt +0 -0
  103. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex.egg-info/top_level.txt +0 -0
  104. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/__init__.py +0 -0
  105. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/__main__.py +0 -0
  106. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/__init__.py +0 -0
  107. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/bootstrap.py +0 -0
  108. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/connectors.py +0 -0
  109. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/db.py +0 -0
  110. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/decision.py +0 -0
  111. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/doctor.py +0 -0
  112. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/mcp.py +0 -0
  113. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/mode.py +0 -0
  114. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/orders.py +0 -0
  115. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/policy.py +0 -0
  116. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/profile.py +0 -0
  117. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/research.py +0 -0
  118. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/skills.py +0 -0
  119. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/strategies.py +0 -0
  120. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/subagents.py +0 -0
  121. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/utils.py +0 -0
  122. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/workflow.py +0 -0
  123. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/commands/workspaces.py +0 -0
  124. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/generator.py +0 -0
  125. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/mcp_stdio.py +0 -0
  126. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/service_autostart.py +0 -0
  127. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_cli/startup_status.py +0 -0
  128. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/__init__.py +0 -0
  129. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/admin.py +0 -0
  130. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/api.py +0 -0
  131. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/__init__.py +0 -0
  132. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/agents.py +0 -0
  133. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/artifact_quality.py +0 -0
  134. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/audit.py +0 -0
  135. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/brokers.py +0 -0
  136. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/common.py +0 -0
  137. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/components.py +0 -0
  138. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/context_budget.py +0 -0
  139. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/decision_packages.py +0 -0
  140. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/markdown_preview.py +0 -0
  141. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/orders.py +0 -0
  142. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/policy.py +0 -0
  143. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/portfolio.py +0 -0
  144. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/research.py +0 -0
  145. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/runtime.py +0 -0
  146. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/runtime_mode.py +0 -0
  147. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/workflow_planner.py +0 -0
  148. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/application/workflow_routing.py +0 -0
  149. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/asgi.py +0 -0
  150. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/mcp_runtime.py +0 -0
  151. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/settings.py +0 -0
  152. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
  153. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/static/tradingcodex_web/app.css +0 -0
  154. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/static/tradingcodex_web/app.js +0 -0
  155. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/static/vendor/htmx/htmx.min.js +0 -0
  156. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/activity.html +0 -0
  157. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/agent_skills.html +0 -0
  158. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/agents.html +0 -0
  159. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/base.html +0 -0
  160. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/brokers.html +0 -0
  161. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/dashboard.html +0 -0
  162. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/decisions.html +0 -0
  163. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/fragments/role_inspector.html +0 -0
  164. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/fragments/starter_prompt.html +0 -0
  165. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/fragments/topology_canvas.html +0 -0
  166. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/fragments/workspace_card.html +0 -0
  167. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/harness.html +0 -0
  168. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/mcp_router.html +0 -0
  169. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/orders.html +0 -0
  170. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/policy.html +0 -0
  171. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/portfolio.html +0 -0
  172. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/research.html +0 -0
  173. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/starter_prompt.html +0 -0
  174. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/templates/web/strategies.html +0 -0
  175. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/urls.py +0 -0
  176. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/web.py +0 -0
  177. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/tradingcodex_service/wsgi.py +0 -0
  178. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/__init__.py +0 -0
  179. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
  180. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
  181. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/audit/module.json +0 -0
  182. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.codex/config.toml +0 -0
  183. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +0 -0
  184. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
  185. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
  186. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.tradingcodex/capabilities.yaml +0 -0
  187. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
  188. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
  189. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/policy-bindings.yaml +0 -0
  190. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/principals.yaml +0 -0
  191. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/roles.yaml +0 -0
  192. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/AGENTS.md +0 -0
  193. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
  194. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/files/tcx +0 -0
  195. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/codex-base/module.json +0 -0
  196. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/access-policies.yaml +0 -0
  197. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
  198. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
  199. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
  200. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
  201. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
  202. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
  203. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
  204. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
  205. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
  206. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
  207. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
  208. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
  209. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
  210. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
  211. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
  212. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
  213. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/execution-operator.toml +0 -0
  214. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
  215. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
  216. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/judgment-reviewer.toml +0 -0
  217. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
  218. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
  219. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
  220. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
  221. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
  222. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
  223. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
  224. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/fixed-subagents/module.json +0 -0
  225. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
  226. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
  227. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
  228. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/.tradingcodex/policies/information-barriers.yaml +0 -0
  229. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
  230. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/approvals/.gitkeep +0 -0
  231. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
  232. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
  233. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/orders/approved/.gitkeep +0 -0
  234. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/orders/draft/.gitkeep +0 -0
  235. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/orders/executed/.gitkeep +0 -0
  236. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/orders/rejected/.gitkeep +0 -0
  237. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
  238. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
  239. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
  240. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
  241. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
  242. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
  243. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
  244. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
  245. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
  246. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
  247. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
  248. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
  249. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/information-barriers/module.json +0 -0
  250. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/paper-trading/module.json +0 -0
  251. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/postmortem/files/.tradingcodex/workflows/postmortem.yaml +0 -0
  252. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/postmortem/module.json +0 -0
  253. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/automate-workflow/SKILL.md +0 -0
  254. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/automate-workflow/agents/openai.yaml +0 -0
  255. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/plan-workflow/SKILL.md +0 -0
  256. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/plan-workflow/agents/openai.yaml +0 -0
  257. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/SKILL.md +0 -0
  258. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/agents/openai.yaml +0 -0
  259. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/SKILL.md +0 -0
  260. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/agents/openai.yaml +0 -0
  261. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -0
  262. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
  263. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
  264. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
  265. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -0
  266. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/references/decision-quality-spine.md +0 -0
  267. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/SKILL.md +0 -0
  268. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/agents/openai.yaml +0 -0
  269. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/SKILL.md +0 -0
  270. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/agents/openai.yaml +0 -0
  271. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/SKILL.md +0 -0
  272. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/agents/openai.yaml +0 -0
  273. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/agent-judgment-review/SKILL.md +0 -0
  274. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/judgment-reviewer/agent-judgment-review/agents/openai.yaml +0 -0
  275. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/SKILL.md +0 -0
  276. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/agents/openai.yaml +0 -0
  277. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/SKILL.md +0 -0
  278. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/agents/openai.yaml +0 -0
  279. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/SKILL.md +0 -0
  280. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/agents/openai.yaml +0 -0
  281. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/SKILL.md +0 -0
  282. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/agents/openai.yaml +0 -0
  283. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/SKILL.md +0 -0
  284. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/agents/openai.yaml +0 -0
  285. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/SKILL.md +0 -0
  286. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/agents/openai.yaml +0 -0
  287. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/SKILL.md +0 -0
  288. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/agents/openai.yaml +0 -0
  289. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/anti-overfit-validation/SKILL.md +0 -0
  290. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/anti-overfit-validation/agents/openai.yaml +0 -0
  291. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/SKILL.md +0 -0
  292. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/agents/openai.yaml +0 -0
  293. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/SKILL.md +0 -0
  294. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/agents/openai.yaml +0 -0
  295. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/forecasting-discipline/SKILL.md +0 -0
  296. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/forecasting-discipline/agents/openai.yaml +0 -0
  297. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/numeric-data-qc/SKILL.md +0 -0
  298. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/numeric-data-qc/agents/openai.yaml +0 -0
  299. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/thesis-scenario-tree/SKILL.md +0 -0
  300. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/thesis-scenario-tree/agents/openai.yaml +0 -0
  301. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/SKILL.md +0 -0
  302. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/agents/openai.yaml +0 -0
  303. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/SKILL.md +0 -0
  304. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/agents/openai.yaml +0 -0
  305. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/repo-skills/module.json +0 -0
  306. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/stub-execution/module.json +0 -0
  307. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
  308. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
  309. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
  310. {tradingcodex-0.3.1 → tradingcodex-0.3.2}/workspace_templates/modules/tradingcodex-mcp/module.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tradingcodex
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Agentic investment workflow harness for Codex-native research and service-gated execution checks.
5
5
  Author: TradingCodex Authors
6
6
  License-Expression: Apache-2.0
@@ -229,7 +229,7 @@ provide investment recommendations or guarantee returns.
229
229
  | Status | Milestone |
230
230
  | --- | --- |
231
231
  | Shipped | Generated Codex workspace, fixed role roster, project MCP config, Django service plane, local web dashboard, Admin, Ninja API, file-native research memory, component registry, policy/audit primitives. |
232
- | Current `0.3.1` | Codex-native Decision Packages, independent judgment-review gate, staged workflow planning, artifact-supervisor loop closure state, Evidence Run/Validation Cards, provider capability profiles, and Python `>=3.11,<3.15` support. |
232
+ | Current `0.3.2` | Brief research chat replies with saved head-manager synthesis reports, Codex-native Decision Packages, independent judgment-review gate, staged workflow planning, artifact-supervisor loop closure state, Evidence Run/Validation Cards, provider capability profiles, and Python `>=3.11,<3.15` support. |
233
233
  | Next | Deeper validation scenarios, richer provider capability profiles, stronger generated-workspace smoke coverage, and improved artifact quality tooling. |
234
234
  | Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and broker-specific live providers only after explicit product, policy, adapter, and validation work. |
235
235
 
@@ -198,7 +198,7 @@ provide investment recommendations or guarantee returns.
198
198
  | Status | Milestone |
199
199
  | --- | --- |
200
200
  | Shipped | Generated Codex workspace, fixed role roster, project MCP config, Django service plane, local web dashboard, Admin, Ninja API, file-native research memory, component registry, policy/audit primitives. |
201
- | Current `0.3.1` | Codex-native Decision Packages, independent judgment-review gate, staged workflow planning, artifact-supervisor loop closure state, Evidence Run/Validation Cards, provider capability profiles, and Python `>=3.11,<3.15` support. |
201
+ | Current `0.3.2` | Brief research chat replies with saved head-manager synthesis reports, Codex-native Decision Packages, independent judgment-review gate, staged workflow planning, artifact-supervisor loop closure state, Evidence Run/Validation Cards, provider capability profiles, and Python `>=3.11,<3.15` support. |
202
202
  | Next | Deeper validation scenarios, richer provider capability profiles, stronger generated-workspace smoke coverage, and improved artifact quality tooling. |
203
203
  | Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and broker-specific live providers only after explicit product, policy, adapter, and validation work. |
204
204
 
@@ -96,6 +96,9 @@ subagents. Detailed responsibilities live in
96
96
  Handoff states are `accepted`, `revise`, `blocked`, or `waiting`. Only accepted
97
97
  artifacts move downstream. `head-manager` may synthesize accepted outputs and
98
98
  conflicts, but must not repair missing specialist work with direct analysis.
99
+ When synthesis is allowed, the full user-facing synthesis should be saved as a
100
+ workspace Markdown report; the chat reply should stay brief and point to that
101
+ report.
99
102
 
100
103
  ## Execution Lifecycle Snapshot
101
104
 
@@ -149,7 +149,7 @@ python3.11 -m venv /tmp/tcx-testpypi
149
149
  /tmp/tcx-testpypi/bin/pip install \
150
150
  --index-url https://test.pypi.org/simple/ \
151
151
  --extra-index-url https://pypi.org/simple/ \
152
- tradingcodex==0.3.1
152
+ tradingcodex==0.3.2
153
153
  rm -rf /tmp/tcx-testpypi-smoke
154
154
  mkdir -p /tmp/tcx-testpypi-smoke
155
155
  cd /tmp/tcx-testpypi-smoke
@@ -178,7 +178,7 @@ After the PyPI workflow completes:
178
178
 
179
179
  ```bash
180
180
  python3.11 -m venv /tmp/tcx-pypi
181
- /tmp/tcx-pypi/bin/pip install tradingcodex==0.3.1
181
+ /tmp/tcx-pypi/bin/pip install tradingcodex==0.3.2
182
182
  rm -rf /tmp/tcx-pypi-smoke
183
183
  mkdir -p /tmp/tcx-pypi-smoke
184
184
  cd /tmp/tcx-pypi-smoke
@@ -277,7 +277,9 @@ Use PEP 440 versions:
277
277
  updates after `0.2.10`
278
278
  - `0.3.1` for compatible evidence-card validation and persisted loop closure
279
279
  state fixes after `0.3.0`
280
- - later patch releases for compatible fixes after `0.3.1`
280
+ - `0.3.2` for brief research chat replies with saved head-manager synthesis
281
+ reports after `0.3.1`
282
+ - later patch releases for compatible fixes after `0.3.2`
281
283
  - pre-releases such as `0.4.0a1`, `0.4.0b1`, or `0.4.0rc1` when preparing
282
284
  the next minor contract
283
285
 
@@ -101,7 +101,7 @@ Generated workspaces contain:
101
101
  - an immutable workspace manifest at `.tradingcodex/workspace.json`
102
102
  - root `head-manager` identity loaded from `.codex/prompts/base_instructions/head-manager.md` through `.codex/config.toml` `model_instructions_file`
103
103
  - sectioned Markdown base-instruction format for `head-manager`, including `# How you work`, TradingCodex guardrails, and tool guidelines
104
- - Codex-style operating style in the root `head-manager` prompt: scoped `AGENTS.md` handling, concise preambles, selective planning, `rg`-first search, `apply_patch` edits, focused validation, dirty-worktree respect, and concise final handoffs
104
+ - Codex-style operating style in the root `head-manager` prompt: scoped `AGENTS.md` handling, concise preambles, selective planning, `rg`-first search, `apply_patch` edits, focused validation, dirty-worktree respect, concise maintenance handoffs, and brief chat replies that point to saved head-manager synthesis reports once accepted artifacts exist
105
105
  - instruction/skill separation: root `head-manager` instructions own identity, durable safety boundaries, fail-closed dispatch, role boundaries, skill routing, optional-skill management, and approved action boundaries; fixed subagent TOML files own standing role identity, MCP/tool config, artifact walls, and always-on prohibitions; repo skills are dependency-light capability procedures for workflow maps, compact assignment-envelope templates, optional skill file management, quality gates, synthesis, and postmortems, without declaring role ownership or direct inter-skill call chains
106
106
  - no-overlap handoff contract: each role owns its specialist question, downstream roles consume accepted artifacts, and missing/stale/weak upstream work returns `revise`, `blocked`, or `waiting` instead of being silently redone by another role
107
107
  - validated staged workflow plan: hook intake hints are not binding; `$tcx-workflow`
@@ -266,5 +266,7 @@ Research file writes should be deterministic enough for review:
266
266
  - include content hash
267
267
  - avoid raw secrets
268
268
  - use stable paths for role-owned reports
269
+ - save head-manager final synthesis reports as
270
+ `trading/reports/head-manager/synthesis-<workflow_run_id>.md`
269
271
  - make stale/missing source warnings visible
270
272
  - keep file content readable by Codex without a DB lookup
@@ -156,7 +156,11 @@ For repository, CLI, Django, MCP, template, docs, test, and harness maintenance
156
156
  work, `head-manager` follows the default Codex coding-agent style: concise
157
157
  preambles before grouped tool work, plans only for meaningful multi-step tasks,
158
158
  `rg`-first search, `apply_patch` for manual edits, focused validation before
159
- broader checks, respect for dirty worktrees, and concise final handoffs.
159
+ broader checks, respect for dirty worktrees, and concise maintenance handoffs.
160
+ Investment synthesis stores depth in a workspace Markdown report: after
161
+ accepted artifacts exist, `head-manager` should save the full synthesis under
162
+ `trading/reports/head-manager/` and keep the chat reply brief with the report
163
+ path, 1-3 key takeaways, and next allowed action.
160
164
 
161
165
  This operating style is a working discipline, not an investment permission.
162
166
  It does not weaken the dispatch gate, role-owned skill boundary, approved action
@@ -166,8 +170,8 @@ boundary, approval requirements, or information barriers.
166
170
 
167
171
  | Situation | Allowed response | Forbidden response |
168
172
  | --- | --- | --- |
169
- | Broad analysis such as "Analyze Apple stock" | auto-dispatch or reuse selected subagents, then wait for outputs before synthesis | Direct business/price/news/recommendation analysis |
170
- | Explicit workflow request such as "$tcx-workflow analyze Apple" | Spawn selected team or reuse active/completed roles, wait for outputs, then synthesize | Analyze without dispatch |
173
+ | Broad analysis such as "Analyze Apple stock" | auto-dispatch or reuse selected subagents, then wait for outputs before saving a head-manager synthesis report and returning a brief chat summary | Direct business/price/news/recommendation analysis |
174
+ | Explicit workflow request such as "$tcx-workflow analyze Apple" | Spawn selected team or reuse active/completed roles, wait for outputs, then save a synthesis report and return its path with a brief summary | Analyze without dispatch |
171
175
  | Broker/provider build request | Check full-access plus TCX build mode, connect/scaffold/register/validate provider metadata through `$tcx-build`, and keep live submission inside service gates | Dispatch investment subagents, ask for raw secrets, or expose raw broker SDK tools |
172
176
  | Decision support such as "Should I buy?" | Dispatch analyst/valuation/portfolio/risk team and explain required artifacts/gates | Offer buy/sell opinion without subagent output |
173
177
  | Dispatch unavailable, role routing unverified, or dispatch failed | Provide `waiting_for_subagent_dispatch` state and task briefs only | Switch to "I will analyze it myself" |
@@ -388,6 +392,10 @@ posture, or core skill behavior.
388
392
  - Downstream roles start from artifact path plus `context_summary`; they open
389
393
  full markdown only for disputed, stale, missing, or load-bearing evidence.
390
394
  - The head-manager should tell subagents to write reader-facing research artifacts in the user's language from the original request unless the user explicitly requests another artifact language. File paths, frontmatter keys, symbols, tickers, source names, and quoted source text stay in their natural/original form.
395
+ - Once accepted artifacts exist, head-manager final synthesis should be saved
396
+ as `trading/reports/head-manager/synthesis-<workflow_run_id>.md` through the
397
+ research artifact path. The chat reply should stay brief and point to that
398
+ report instead of pasting the full synthesis.
391
399
  - `plan-workflow` mandates and `automate-workflow` automation summaries follow the same user-language rule.
392
400
  - When selecting an exact fixed role with Codex `spawn_agent`, do not combine `agent_type` with full-history forking. Use a compact assignment envelope on the first attempt and no model/reasoning overrides.
393
401
  - Workflow consent stays separate from explicit user constraints. Consent to orchestrate or use subagents allows dispatch, but it is not itself an analytical constraint.
@@ -251,6 +251,9 @@ Scenarios should include:
251
251
  - starter prompts and generated guidance expose the no-overlap handoff contract
252
252
  - starter prompts and generated guidance tell subagents to write reader-facing
253
253
  research artifacts in the user's language unless explicitly overridden
254
+ - starter prompts and generated guidance tell `head-manager` to keep final chat
255
+ brief while saving full accepted-artifact synthesis as a Markdown report under
256
+ `trading/reports/head-manager/`
254
257
  - `tcx quality-check <artifact> --strict` fails research markdown that lacks
255
258
  source/as-of posture, `context_summary`, material claim tags, handoff state,
256
259
  confidence, missing-evidence fields, next-recipient routing, blocked actions,
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tradingcodex"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "Agentic investment workflow harness for Codex-native research and service-gated execution checks."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
@@ -1749,7 +1749,9 @@ def test_starter_prompt_keeps_negated_actions_out_of_execution() -> None:
1749
1749
  assert "Context budget:" in macro
1750
1750
  assert "context_summary" in macro
1751
1751
  assert "reader_summary, next_action" in macro
1752
- assert "Reader mode: open with a plain-English answer" in macro
1752
+ assert "Reader mode: keep final chat brief" in macro
1753
+ assert "create_research_artifact at `trading/reports/head-manager/synthesis-<workflow_run_id>.md`" in macro
1754
+ assert "final user-facing synthesis should be deep enough" not in macro
1753
1755
  assert "Artifact memory:" in macro
1754
1756
  assert "improvements for future judgment" in macro
1755
1757
  assert "Do not let downstream roles redo missing upstream work" in macro
@@ -2381,7 +2383,8 @@ def test_subagents_prompt_cli_and_api_expose_intake_summary(tmp_path: Path, monk
2381
2383
  for agent in cli_json["intake_summary"]["subagents"]
2382
2384
  if agent["role"] == "valuation-analyst"
2383
2385
  )
2384
- assert "Reader mode: open with a plain-English answer" in cli_json["starter_prompt"]
2386
+ assert "Reader mode: keep final chat brief" in cli_json["starter_prompt"]
2387
+ assert "synthesis-<workflow_run_id>" in cli_json["starter_prompt"]
2385
2388
  assert "Investor profile questions to ask if unanswered" in cli_json["starter_prompt"]
2386
2389
  assert "Method lenses for this lane" in cli_json["starter_prompt"]
2387
2390
 
@@ -4705,6 +4708,83 @@ def test_file_native_research_artifacts_via_mcp_api_and_cli(tmp_path: Path) -> N
4705
4708
  assert strict_quality["frontmatter"]["reader_summary"].startswith("Plain-English first read")
4706
4709
  assert strict_quality["frontmatter"]["next_action"] == "Wait for valuation before any portfolio fit discussion."
4707
4710
  assert not any("non-expert first-read UX" in warning for warning in strict_quality["warnings"])
4711
+ synthesis = call_mcp_tool(workspace, "create_research_artifact", {
4712
+ "principal_id": "head-manager",
4713
+ "artifact_id": "synthesis-workflow-unit",
4714
+ "artifact_type": "synthesis_report",
4715
+ "universe": "public_equity",
4716
+ "workflow_type": "thesis_review",
4717
+ "symbol": "NVDA",
4718
+ "role": "head-manager",
4719
+ "title": "NVDA Head-Manager Synthesis",
4720
+ "markdown": """---
4721
+ workflow_lane: thesis_review
4722
+ forecast_allowed: false
4723
+ scenario_cases:
4724
+ - base case remains unmodeled in this synthesis smoke
4725
+ contrary_evidence:
4726
+ - accepted artifacts still have one unresolved source freshness gap
4727
+ source_trust_notes:
4728
+ - source posture comes from accepted role artifacts
4729
+ update_triggers:
4730
+ - new accepted role artifact changes the thesis
4731
+ invalidation_conditions:
4732
+ - accepted role artifact contradicts the synthesis
4733
+ ---
4734
+
4735
+ # NVDA Head-Manager Synthesis
4736
+
4737
+ ## Direct Answer
4738
+
4739
+ [inference] Accepted artifacts are sufficient for a research synthesis smoke, not for an order.
4740
+
4741
+ ## Accepted Artifact Inputs
4742
+
4743
+ [factual] Input artifacts are referenced by path in frontmatter and body.
4744
+
4745
+ ## Synthesis
4746
+
4747
+ [inference] The combined read remains research-only.
4748
+
4749
+ ## Disagreements/Conflicts
4750
+
4751
+ [factual] One freshness gap remains visible.
4752
+
4753
+ ## Source/As-Of Posture
4754
+
4755
+ [factual] Source posture is inherited from accepted role artifacts.
4756
+
4757
+ ## Missing Evidence
4758
+
4759
+ [factual] Updated filing snapshot remains missing.
4760
+
4761
+ ## Caveats
4762
+
4763
+ [assumption] No valuation, order, approval, or execution is implied.
4764
+
4765
+ ## Next Allowed Action
4766
+
4767
+ [factual] User can inspect the saved synthesis report.
4768
+ """,
4769
+ "source_as_of": "2026-06-01",
4770
+ "readiness_label": "not-decision-ready",
4771
+ "context_summary": "Head-manager synthesis report saved for user inspection.",
4772
+ "reader_summary": "Brief chat should point to this saved synthesis report.",
4773
+ "handoff_state": "accepted",
4774
+ "confidence": "medium",
4775
+ "missing_evidence": ["updated filing snapshot"],
4776
+ "next_recipient": "user",
4777
+ "next_action": "Inspect the saved synthesis report.",
4778
+ "blocked_actions": ["order_drafting", "approval", "execution"],
4779
+ "source_snapshot_ids": ["unit-test-filing"],
4780
+ "created_by": "head-manager",
4781
+ "export_path": "trading/reports/head-manager/synthesis-workflow-unit.md",
4782
+ })
4783
+ assert synthesis["export_path"] == "trading/reports/head-manager/synthesis-workflow-unit.md"
4784
+ synthesis_quality = json.loads(run(["./tcx", "quality-check", synthesis["export_path"], "--strict"], workspace).stdout)
4785
+ assert synthesis_quality["status"] == "pass"
4786
+ assert synthesis_quality["frontmatter"]["artifact_type"] == "synthesis_report"
4787
+ assert synthesis_quality["frontmatter"]["role"] == "head-manager"
4708
4788
  run_card = create_evidence_run_card(workspace, {
4709
4789
  "related_artifact_path": stored["export_path"],
4710
4790
  "config_hash": "unit-config-hash",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tradingcodex
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Agentic investment workflow harness for Codex-native research and service-gated execution checks.
5
5
  Author: TradingCodex Authors
6
6
  License-Expression: Apache-2.0
@@ -229,7 +229,7 @@ provide investment recommendations or guarantee returns.
229
229
  | Status | Milestone |
230
230
  | --- | --- |
231
231
  | Shipped | Generated Codex workspace, fixed role roster, project MCP config, Django service plane, local web dashboard, Admin, Ninja API, file-native research memory, component registry, policy/audit primitives. |
232
- | Current `0.3.1` | Codex-native Decision Packages, independent judgment-review gate, staged workflow planning, artifact-supervisor loop closure state, Evidence Run/Validation Cards, provider capability profiles, and Python `>=3.11,<3.15` support. |
232
+ | Current `0.3.2` | Brief research chat replies with saved head-manager synthesis reports, Codex-native Decision Packages, independent judgment-review gate, staged workflow planning, artifact-supervisor loop closure state, Evidence Run/Validation Cards, provider capability profiles, and Python `>=3.11,<3.15` support. |
233
233
  | Next | Deeper validation scenarios, richer provider capability profiles, stronger generated-workspace smoke coverage, and improved artifact quality tooling. |
234
234
  | Future | Separately governed verified adapters, hosted/managed services, enterprise policy/compliance packs, and broker-specific live providers only after explicit product, policy, adapter, and validation work. |
235
235
 
@@ -790,14 +790,20 @@ def build_subagent_starter_prompt(request: str, workspace_root: Path | str | Non
790
790
  artifact_memory_instruction = "Artifact memory: write approved-action artifacts in the requested artifact language with context_summary, reader_summary, next_action, ticket, approval, policy, duplicate-request, connection, and audit references, plus blocked or rejected reasons."
791
791
  quality_instruction = "Approved Action Spine: preserve constraints and negations; require ticket_id, approval_receipt_id, policy_state, duplicate_request_status, connection_status, audit_reference, handoff_state, next_recipient, and blocked_actions in role artifacts."
792
792
  handoff_instruction = "Require each role handoff to include artifact path, reader summary, next action, handoff state, ticket/approval/policy/audit references, readiness or rejection reason, next eligible recipient, and blocked actions."
793
+ reader_mode_instruction = "Reader mode: keep final chat brief: approved-action status, artifact path when one exists, blockers or rejection reason, and next allowed action. Do not paste full status evidence into chat unless the user explicitly asks."
794
+ synthesis_instruction = "Wait for all recorded-plan stages, then return a brief approved-action status with artifact paths, handoff states, service-gate evidence summary, rejected or blocked reasons, and next allowed action."
793
795
  elif lane == "research_only" and not flags.get("decision_quality_required"):
794
796
  artifact_memory_instruction = "Artifact memory: write artifacts in the requested artifact language with context_summary, reader_summary, next_action, source snapshots, missing-evidence notes, and improvements for future judgment."
795
797
  quality_instruction = "Evidence Quality Floor: preserve constraints and negations; require source_as_of, confidence, missing_evidence, source_snapshot_ids, next_recipient, and blocked_actions in role artifacts."
796
798
  handoff_instruction = "Require each role handoff to include artifact path, reader summary, next action, handoff state, source/as-of posture, confidence, missing evidence, next eligible recipient, and blocked actions."
799
+ reader_mode_instruction = "Reader mode: keep final chat brief: synthesis status, saved report path, 1-3 key takeaways, and next allowed action. Do not paste the full synthesis into chat unless the user explicitly asks."
800
+ synthesis_instruction = "Wait for all recorded-plan stages, then create a Markdown synthesis report through create_research_artifact at `trading/reports/head-manager/synthesis-<workflow_run_id>.md` with artifact_id `synthesis-<workflow_run_id>`, artifact_type `synthesis_report`, role and created_by `head-manager`, required research frontmatter, and sections for direct answer, accepted artifact inputs, synthesis, disagreements/conflicts, source/as-of posture, missing evidence, caveats, and next allowed action. Reply briefly with the report path, 1-3 takeaways, and next allowed action."
797
801
  else:
798
802
  artifact_memory_instruction = "Artifact memory: write artifacts in the requested artifact language with context_summary, reader_summary, next_action, source snapshots, missing-evidence notes, and improvements for future judgment."
799
803
  quality_instruction = "Decision Quality Spine: preserve constraints and negations; require evidence_grade, source_freshness, source_quality, source_trust_notes, conflict_status, decision_readiness, confidence, missing_evidence, next_recipient, and blocked_actions in role artifacts."
800
804
  handoff_instruction = "Require each role handoff to include artifact path, reader summary, next action, handoff state, source/as-of posture, confidence, missing evidence, readiness/support gaps, next eligible recipient, and blocked actions."
805
+ reader_mode_instruction = "Reader mode: keep final chat brief: synthesis status, saved report path, 1-3 key takeaways, and next allowed action. Do not paste the full synthesis into chat unless the user explicitly asks."
806
+ synthesis_instruction = "Wait for all recorded-plan stages, then create a Markdown synthesis report through create_research_artifact at `trading/reports/head-manager/synthesis-<workflow_run_id>.md` with artifact_id `synthesis-<workflow_run_id>`, artifact_type `synthesis_report`, role and created_by `head-manager`, required research frontmatter, and sections for direct answer, accepted artifact inputs, synthesis, disagreements/conflicts, source/as-of posture, missing evidence, caveats, and next allowed action. Reply briefly with the report path, 1-3 takeaways, and next allowed action."
801
807
  if not plan["subagents"]:
802
808
  ops = no_subagent_lane_copy(plan)
803
809
  return "\n".join([
@@ -832,7 +838,7 @@ def build_subagent_starter_prompt(request: str, workspace_root: Path | str | Non
832
838
  "Use each role's exact `.codex/agents/*.toml` name as the runtime label.",
833
839
  "Preserve the original user request and explicit constraints in every subagent brief.",
834
840
  "Context budget: use artifact paths, context_summary, source/as-of metadata, and short deltas; do not paste full prior artifacts, source dumps, or unrelated chat history.",
835
- "Reader mode: open with a plain-English answer, then provide professional evidence, assumptions, and caveats.",
841
+ reader_mode_instruction,
836
842
  artifact_memory_instruction,
837
843
  quality_instruction,
838
844
  review_instruction,
@@ -850,7 +856,7 @@ def build_subagent_starter_prompt(request: str, workspace_root: Path | str | Non
850
856
  handoff_instruction,
851
857
  "Use handoff states: accepted, revise, blocked, waiting.",
852
858
  "Do not let downstream roles redo missing upstream work; request revision from the owning role or stop with waiting/blocked status.",
853
- "Wait for all recorded-plan stages, then synthesize accepted outputs with artifact paths, handoff states, disagreements, missing evidence, and next allowed action.",
859
+ synthesis_instruction,
854
860
  f"Blocked actions before artifacts: {', '.join(plan['blockedActions'])}",
855
861
  ]
856
862
  if flags.get("forecast_contract_required"):
@@ -1541,7 +1547,7 @@ def _synthesis_stage() -> dict[str, Any]:
1541
1547
  "key": "synthesis",
1542
1548
  "label": "Synthesis",
1543
1549
  "owner": "head-manager",
1544
- "summary": "Summarize accepted artifacts, disagreements, missing evidence, and the next allowed action.",
1550
+ "summary": "Save the accepted-artifact synthesis as a head-manager Markdown report, then return a brief chat summary with the report path and next allowed action.",
1545
1551
  "exit_criteria": ["accepted artifacts cited", "uncertainties preserved", "next allowed action stated"],
1546
1552
  "roles": ["head-manager"],
1547
1553
  }
@@ -0,0 +1 @@
1
+ TRADINGCODEX_VERSION = "0.3.2"
@@ -114,6 +114,16 @@ In investment workflows, you are coordinator and synthesizer, not the analyst.
114
114
  uncertainty, forecast permission or block reasons, investor-profile gaps,
115
115
  anti-overfit gaps, and blocked actions instead of smoothing them into false
116
116
  readiness.
117
+ - When synthesis is allowed, save the full synthesis as a Markdown research
118
+ artifact before replying. Use `create_research_artifact` with
119
+ `artifact_type=synthesis_report`, `artifact_id=synthesis-<workflow_run_id>`,
120
+ `role=head-manager`, `created_by=head-manager`, and
121
+ `export_path=trading/reports/head-manager/synthesis-<workflow_run_id>.md`.
122
+ The report body should include direct answer, accepted artifact inputs,
123
+ synthesis, disagreements/conflicts, source/as-of posture, missing evidence,
124
+ caveats, and next allowed action. The chat reply should stay brief: synthesis
125
+ status, report path, 1-3 key takeaways, and next allowed action. Do not paste
126
+ the full synthesis into chat unless the user explicitly asks.
117
127
 
118
128
  Fixed investment roles are:
119
129
 
@@ -18,7 +18,7 @@ Use this skill when a user asks for investment analysis, decision support, portf
18
18
  7. Use the Artifact Supervisor Loop after artifact intake: evaluate artifacts, then choose `revise_same_role`, `follow_up_existing_team`, `challenge_conflict`, `downstream_handoff`, `lane_escalation_proposal`, `blocked`, `waiting`, or `synthesize`.
19
19
  8. Use `./tcx subagents loop --artifact <path>` to preview closed planner actions from artifacts when helpful. Queue means a compact pending task and delta brief; hooks do not recursively spawn subagents.
20
20
  9. Require the Decision Quality Spine fields described in `references/decision-quality-spine.md` when they are in scope.
21
- 10. Synthesize only accepted artifacts; preserve disagreements and stop with `waiting`, `revise`, `blocked`, or `lane_escalation_proposal` when quality gates fail.
21
+ 10. Synthesize only accepted artifacts. When synthesis is allowed, save the full synthesis through `create_research_artifact` using the synthesis report path and `artifact_type=synthesis_report` supplied by the starter prompt, then keep the chat reply brief: report path, 1-3 key takeaways, and next allowed action; stop with `waiting`, `revise`, `blocked`, or `lane_escalation_proposal` when quality gates fail.
22
22
 
23
23
  ## Hard Stops
24
24
 
@@ -1 +0,0 @@
1
- TRADINGCODEX_VERSION = "0.3.1"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes