tradingcodex 0.2.9__tar.gz → 0.2.10__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 (311) hide show
  1. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/PKG-INFO +8 -4
  2. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/README.md +7 -3
  3. tradingcodex-0.2.10/docs/README.md +95 -0
  4. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/deployment.md +4 -3
  5. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/financial-workflow-references.md +3 -3
  6. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/generated-workspaces.md +14 -14
  7. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/harness.md +11 -9
  8. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/interfaces-and-surfaces.md +5 -3
  9. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/roles-skills-and-workflows.md +24 -18
  10. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/validation-and-test-plan.md +10 -11
  11. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/pyproject.toml +1 -1
  12. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tests/test_e2e_user_scenarios.py +14 -23
  13. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tests/test_python_migration.py +172 -73
  14. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex.egg-info/PKG-INFO +8 -4
  15. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex.egg-info/SOURCES.txt +5 -0
  16. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/__main__.py +1 -1
  17. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/doctor.py +4 -4
  18. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/subagents.py +1 -1
  19. tradingcodex-0.2.10/tradingcodex_cli/commands/workflow.py +71 -0
  20. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/api.py +29 -1
  21. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/agents.py +5 -1
  22. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/components.py +6 -6
  23. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/context_budget.py +34 -21
  24. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/decision_packages.py +4 -0
  25. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/harness.py +13 -11
  26. tradingcodex-0.2.10/tradingcodex_service/application/workflow_planner.py +384 -0
  27. tradingcodex-0.2.10/tradingcodex_service/version.py +1 -0
  28. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.codex/config.toml +8 -0
  29. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.codex/hooks/tradingcodex_hook.py +36 -99
  30. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.codex/prompts/base_instructions/head-manager.md +17 -10
  31. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/AGENTS.md +3 -3
  32. tradingcodex-0.2.10/workspace_templates/modules/repo-skills/files/.agents/skills/automate-workflow/SKILL.md +69 -0
  33. tradingcodex-0.2.10/workspace_templates/modules/repo-skills/files/.agents/skills/automate-workflow/agents/openai.yaml +6 -0
  34. tradingcodex-0.2.10/workspace_templates/modules/repo-skills/files/.agents/skills/plan-workflow/SKILL.md +65 -0
  35. tradingcodex-0.2.10/workspace_templates/modules/repo-skills/files/.agents/skills/plan-workflow/agents/openai.yaml +6 -0
  36. tradingcodex-0.2.10/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +31 -0
  37. tradingcodex-0.2.10/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +6 -0
  38. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/module.json +2 -0
  39. tradingcodex-0.2.9/docs/README.md +0 -66
  40. tradingcodex-0.2.9/tradingcodex_cli/commands/workflow.py +0 -23
  41. tradingcodex-0.2.9/tradingcodex_service/version.py +0 -1
  42. tradingcodex-0.2.9/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/SKILL.md +0 -28
  43. tradingcodex-0.2.9/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/agents/openai.yaml +0 -6
  44. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/CONTRIBUTING.md +0 -0
  45. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/LICENSE +0 -0
  46. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/MANIFEST.in +0 -0
  47. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/NOTICE +0 -0
  48. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/TRADEMARKS.md +0 -0
  49. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/__init__.py +0 -0
  50. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/audit/__init__.py +0 -0
  51. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/audit/admin.py +0 -0
  52. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/audit/apps.py +0 -0
  53. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/audit/migrations/0001_initial.py +0 -0
  54. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/audit/migrations/__init__.py +0 -0
  55. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/audit/models.py +0 -0
  56. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/harness/__init__.py +0 -0
  57. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/harness/admin.py +0 -0
  58. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/harness/apps.py +0 -0
  59. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/harness/migrations/0001_initial.py +0 -0
  60. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/harness/migrations/__init__.py +0 -0
  61. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/harness/models.py +0 -0
  62. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/harness/templatetags/__init__.py +0 -0
  63. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/integrations/__init__.py +0 -0
  64. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/integrations/admin.py +0 -0
  65. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/integrations/apps.py +0 -0
  66. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/integrations/migrations/0001_initial.py +0 -0
  67. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/integrations/migrations/0002_brokerconnection_brokeraccount_instrumentmap.py +0 -0
  68. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/integrations/migrations/__init__.py +0 -0
  69. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/integrations/models.py +0 -0
  70. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/mcp/__init__.py +0 -0
  71. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/mcp/admin.py +0 -0
  72. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/mcp/apps.py +0 -0
  73. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/mcp/migrations/0001_initial.py +0 -0
  74. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/mcp/migrations/__init__.py +0 -0
  75. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/mcp/models.py +0 -0
  76. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/mcp/services.py +0 -0
  77. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/__init__.py +0 -0
  78. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/admin.py +0 -0
  79. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/apps.py +0 -0
  80. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/migrations/0001_initial.py +0 -0
  81. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/migrations/0002_approvalreceipt_approved_order_type_and_more.py +0 -0
  82. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/migrations/0003_migrate_orderintent_to_orderticket.py +0 -0
  83. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/migrations/0004_remove_order_intent_compat_fields.py +0 -0
  84. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/migrations/__init__.py +0 -0
  85. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/models.py +0 -0
  86. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/orders/services.py +0 -0
  87. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/policy/__init__.py +0 -0
  88. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/policy/admin.py +0 -0
  89. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/policy/apps.py +0 -0
  90. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/policy/migrations/0001_initial.py +0 -0
  91. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/policy/migrations/__init__.py +0 -0
  92. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/policy/models.py +0 -0
  93. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/policy/services.py +0 -0
  94. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/portfolio/__init__.py +0 -0
  95. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/portfolio/admin.py +0 -0
  96. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/portfolio/apps.py +0 -0
  97. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/portfolio/migrations/0001_initial.py +0 -0
  98. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/portfolio/migrations/0002_brokersyncrun_portfolioledgerevent_reconciliationrun.py +0 -0
  99. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/portfolio/migrations/__init__.py +0 -0
  100. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/portfolio/models.py +0 -0
  101. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/workflows/__init__.py +0 -0
  102. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/workflows/admin.py +0 -0
  103. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/workflows/apps.py +0 -0
  104. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/workflows/migrations/0001_initial.py +0 -0
  105. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/workflows/migrations/__init__.py +0 -0
  106. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/apps/workflows/models.py +0 -0
  107. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/assets/tradingcodex-banner.svg +0 -0
  108. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/artifact-supervisor-loop-prd.md +0 -0
  109. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/components.md +0 -0
  110. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/core-concepts-and-rules.md +0 -0
  111. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/guardrails.md +0 -0
  112. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/improvement-loop.md +0 -0
  113. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/licensing-and-commercialization.md +0 -0
  114. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/product-direction.md +0 -0
  115. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/research-memory-and-artifacts.md +0 -0
  116. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/safety-policy-and-execution.md +0 -0
  117. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/docs/system-architecture.md +0 -0
  118. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/install.sh +0 -0
  119. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/installation.md +0 -0
  120. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/setup.cfg +0 -0
  121. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tests/test_broker_center_prd.py +0 -0
  122. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex.egg-info/dependency_links.txt +0 -0
  123. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex.egg-info/entry_points.txt +0 -0
  124. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex.egg-info/requires.txt +0 -0
  125. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex.egg-info/top_level.txt +0 -0
  126. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/__init__.py +0 -0
  127. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/__init__.py +0 -0
  128. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/bootstrap.py +0 -0
  129. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/connectors.py +0 -0
  130. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/db.py +0 -0
  131. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/decision.py +0 -0
  132. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/mcp.py +0 -0
  133. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/mode.py +0 -0
  134. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/orders.py +0 -0
  135. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/policy.py +0 -0
  136. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/profile.py +0 -0
  137. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/research.py +0 -0
  138. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/skills.py +0 -0
  139. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/strategies.py +0 -0
  140. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/utils.py +0 -0
  141. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/commands/workspaces.py +0 -0
  142. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/generator.py +0 -0
  143. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/mcp_stdio.py +0 -0
  144. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/service_autostart.py +0 -0
  145. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_cli/startup_status.py +0 -0
  146. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/__init__.py +0 -0
  147. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/admin.py +0 -0
  148. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/__init__.py +0 -0
  149. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/artifact_quality.py +0 -0
  150. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/audit.py +0 -0
  151. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/brokers.py +0 -0
  152. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/common.py +0 -0
  153. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/markdown_preview.py +0 -0
  154. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/orders.py +0 -0
  155. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/policy.py +0 -0
  156. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/portfolio.py +0 -0
  157. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/research.py +0 -0
  158. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/runtime.py +0 -0
  159. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/application/runtime_mode.py +0 -0
  160. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/asgi.py +0 -0
  161. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/mcp_runtime.py +0 -0
  162. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/settings.py +0 -0
  163. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/static/tradingcodex_admin/favicon.svg +0 -0
  164. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/static/tradingcodex_web/app.css +0 -0
  165. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/static/tradingcodex_web/app.js +0 -0
  166. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/static/vendor/htmx/htmx.min.js +0 -0
  167. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/activity.html +0 -0
  168. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/agent_skills.html +0 -0
  169. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/agents.html +0 -0
  170. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/base.html +0 -0
  171. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/brokers.html +0 -0
  172. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/dashboard.html +0 -0
  173. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/decisions.html +0 -0
  174. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/fragments/role_inspector.html +0 -0
  175. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/fragments/starter_prompt.html +0 -0
  176. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/fragments/topology_canvas.html +0 -0
  177. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/fragments/workspace_card.html +0 -0
  178. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/harness.html +0 -0
  179. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/mcp_router.html +0 -0
  180. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/orders.html +0 -0
  181. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/policy.html +0 -0
  182. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/portfolio.html +0 -0
  183. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/research.html +0 -0
  184. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/starter_prompt.html +0 -0
  185. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/templates/web/strategies.html +0 -0
  186. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/urls.py +0 -0
  187. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/web.py +0 -0
  188. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/tradingcodex_service/wsgi.py +0 -0
  189. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/__init__.py +0 -0
  190. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/audit/files/.tradingcodex/audit/README.md +0 -0
  191. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/audit/files/trading/audit/.gitkeep +0 -0
  192. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/audit/module.json +0 -0
  193. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.codex/hooks.json +0 -0
  194. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.codex/rules/tradingcodex.rules +0 -0
  195. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.tradingcodex/capabilities.yaml +0 -0
  196. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.tradingcodex/cli.py +0 -0
  197. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.tradingcodex/config.yaml +0 -0
  198. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/policy-bindings.yaml +0 -0
  199. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/principals.yaml +0 -0
  200. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/.tradingcodex/policies/roles.yaml +0 -0
  201. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/pyproject.toml +0 -0
  202. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/files/tcx +0 -0
  203. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/codex-base/module.json +0 -0
  204. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/access-policies.yaml +0 -0
  205. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/policies/restricted-list.yaml +0 -0
  206. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/approval_receipt.schema.json +0 -0
  207. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/audit_event.schema.json +0 -0
  208. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/evidence_pack.schema.json +0 -0
  209. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/execution_result.schema.json +0 -0
  210. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/fundamental_report.schema.json +0 -0
  211. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/news_report.schema.json +0 -0
  212. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/order_ticket.schema.json +0 -0
  213. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/portfolio_review.schema.json +0 -0
  214. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/postmortem_report.schema.json +0 -0
  215. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/research_artifact.schema.json +0 -0
  216. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/risk_report.schema.json +0 -0
  217. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/technical_report.schema.json +0 -0
  218. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/thesis.schema.json +0 -0
  219. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/files/.tradingcodex/schemas/valuation.schema.json +0 -0
  220. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/enforcement-guardrails/module.json +0 -0
  221. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/execution-operator.toml +0 -0
  222. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/fundamental-analyst.toml +0 -0
  223. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/instrument-analyst.toml +0 -0
  224. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/macro-analyst.toml +0 -0
  225. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/news-analyst.toml +0 -0
  226. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/portfolio-manager.toml +0 -0
  227. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/risk-manager.toml +0 -0
  228. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/technical-analyst.toml +0 -0
  229. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.codex/agents/valuation-analyst.toml +0 -0
  230. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/head-manager.yaml +0 -0
  231. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/skill-change-proposals/.gitkeep +0 -0
  232. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/files/.tradingcodex/mainagent/subagent-registry.yaml +0 -0
  233. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/fixed-subagents/module.json +0 -0
  234. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/guardrails.md +0 -0
  235. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/guidance-guardrails/files/.tradingcodex/guidance/task-quality-checklist.md +0 -0
  236. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/guidance-guardrails/module.json +0 -0
  237. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/.tradingcodex/policies/information-barriers.yaml +0 -0
  238. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/.tradingcodex/secrets.md +0 -0
  239. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/approvals/.gitkeep +0 -0
  240. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/forecasts/.gitkeep +0 -0
  241. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/market-data/.gitkeep +0 -0
  242. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/orders/approved/.gitkeep +0 -0
  243. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/orders/draft/.gitkeep +0 -0
  244. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/orders/executed/.gitkeep +0 -0
  245. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/orders/rejected/.gitkeep +0 -0
  246. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/portfolio/.gitkeep +0 -0
  247. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/fundamental/.gitkeep +0 -0
  248. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/instrument/.gitkeep +0 -0
  249. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/macro/.gitkeep +0 -0
  250. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/news/.gitkeep +0 -0
  251. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/policy/.gitkeep +0 -0
  252. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/portfolio/.gitkeep +0 -0
  253. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/postmortem/.gitkeep +0 -0
  254. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/risk/.gitkeep +0 -0
  255. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/technical/.gitkeep +0 -0
  256. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/reports/valuation/.gitkeep +0 -0
  257. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/files/trading/research/.gitkeep +0 -0
  258. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/information-barriers/module.json +0 -0
  259. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/paper-trading/module.json +0 -0
  260. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/postmortem/files/.tradingcodex/workflows/postmortem.yaml +0 -0
  261. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/postmortem/module.json +0 -0
  262. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/SKILL.md +0 -0
  263. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/postmortem/agents/openai.yaml +0 -0
  264. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/SKILL.md +0 -0
  265. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/strategy-creator/agents/openai.yaml +0 -0
  266. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/SKILL.md +0 -0
  267. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-build/agents/openai.yaml +0 -0
  268. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/SKILL.md +0 -0
  269. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-server/agents/openai.yaml +0 -0
  270. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.agents/skills/tcx-workflow/references/decision-quality-spine.md +0 -0
  271. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/SKILL.md +0 -0
  272. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/execution-operator/execute-paper-order/agents/openai.yaml +0 -0
  273. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/SKILL.md +0 -0
  274. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/fundamental-analyst/fundamental-analysis/agents/openai.yaml +0 -0
  275. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/SKILL.md +0 -0
  276. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/instrument-analyst/instrument-analysis/agents/openai.yaml +0 -0
  277. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/SKILL.md +0 -0
  278. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/macro-analyst/macro-analysis/agents/openai.yaml +0 -0
  279. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/SKILL.md +0 -0
  280. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/news-analyst/news-analysis/agents/openai.yaml +0 -0
  281. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/SKILL.md +0 -0
  282. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/create-order-ticket/agents/openai.yaml +0 -0
  283. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/SKILL.md +0 -0
  284. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/portfolio-manager/portfolio-review/agents/openai.yaml +0 -0
  285. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/SKILL.md +0 -0
  286. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/approve-order/agents/openai.yaml +0 -0
  287. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/SKILL.md +0 -0
  288. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/policy-review/agents/openai.yaml +0 -0
  289. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/SKILL.md +0 -0
  290. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/risk-manager/review-risk/agents/openai.yaml +0 -0
  291. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/anti-overfit-validation/SKILL.md +0 -0
  292. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/anti-overfit-validation/agents/openai.yaml +0 -0
  293. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/SKILL.md +0 -0
  294. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/collect-evidence/agents/openai.yaml +0 -0
  295. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/SKILL.md +0 -0
  296. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/external-data-source-gate/agents/openai.yaml +0 -0
  297. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/forecasting-discipline/SKILL.md +0 -0
  298. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/forecasting-discipline/agents/openai.yaml +0 -0
  299. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/numeric-data-qc/SKILL.md +0 -0
  300. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/numeric-data-qc/agents/openai.yaml +0 -0
  301. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/thesis-scenario-tree/SKILL.md +0 -0
  302. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/shared/thesis-scenario-tree/agents/openai.yaml +0 -0
  303. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/SKILL.md +0 -0
  304. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/technical-analyst/technical-analysis/agents/openai.yaml +0 -0
  305. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/SKILL.md +0 -0
  306. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/repo-skills/files/.tradingcodex/subagents/skills/valuation-analyst/valuation-review/agents/openai.yaml +0 -0
  307. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/stub-execution/module.json +0 -0
  308. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/enforcer/README.md +0 -0
  309. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/gateway/README.md +0 -0
  310. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/workspace_templates/modules/tradingcodex-mcp/files/.tradingcodex/mcp/server.py +0 -0
  311. {tradingcodex-0.2.9 → tradingcodex-0.2.10}/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.2.9
3
+ Version: 0.2.10
4
4
  Summary: Codex-native trading harness with a Django service plane and approved action boundary.
5
5
  Author: TradingCodex Authors
6
6
  License-Expression: Apache-2.0
@@ -265,12 +265,16 @@ provide investment recommendations or guarantee returns.
265
265
 
266
266
  ## Documentation
267
267
 
268
- | Document | Start here for |
268
+ `README.md` is the product overview. The `docs/` directory is the human-readable
269
+ source of truth for detailed product behavior, safety, architecture, workflow,
270
+ validation, and release policy.
271
+
272
+ | Start here | Use for |
269
273
  | --- | --- |
270
274
  | [Installation](installation.md) | Setup, update, GitHub-main install, MCP/service startup, and smoke checks. |
271
- | [Docs index](docs/README.md) | Source-of-truth reading order and document ownership. |
272
- | [Product direction](docs/product-direction.md) | Product thesis, target user posture, goals, non-goals, runtime defaults, and scope. |
275
+ | [Docs index](docs/README.md) | Human-readable reading paths, document ownership, and change-to-doc routing. |
273
276
  | [Core concepts and rules](docs/core-concepts-and-rules.md) | Fast operating reference for planes, guardrails, roles, execution lifecycle, and research memory. |
277
+ | [Product direction](docs/product-direction.md) | Product thesis, target user posture, goals, non-goals, runtime defaults, and scope. |
274
278
  | [Workspace orchestration model](docs/harness.md) | Top-level workflow model, components, guardrails, improvement, and naming rules. |
275
279
  | [Roles, skills, and workflows](docs/roles-skills-and-workflows.md) | Fixed role roster, no-overlap handoffs, dispatch gates, skills, and strategy behavior. |
276
280
  | [Safety policy and execution](docs/safety-policy-and-execution.md) | Permissions, approvals, idempotency, broker safety, secret wall, and required blocks. |
@@ -234,12 +234,16 @@ provide investment recommendations or guarantee returns.
234
234
 
235
235
  ## Documentation
236
236
 
237
- | Document | Start here for |
237
+ `README.md` is the product overview. The `docs/` directory is the human-readable
238
+ source of truth for detailed product behavior, safety, architecture, workflow,
239
+ validation, and release policy.
240
+
241
+ | Start here | Use for |
238
242
  | --- | --- |
239
243
  | [Installation](installation.md) | Setup, update, GitHub-main install, MCP/service startup, and smoke checks. |
240
- | [Docs index](docs/README.md) | Source-of-truth reading order and document ownership. |
241
- | [Product direction](docs/product-direction.md) | Product thesis, target user posture, goals, non-goals, runtime defaults, and scope. |
244
+ | [Docs index](docs/README.md) | Human-readable reading paths, document ownership, and change-to-doc routing. |
242
245
  | [Core concepts and rules](docs/core-concepts-and-rules.md) | Fast operating reference for planes, guardrails, roles, execution lifecycle, and research memory. |
246
+ | [Product direction](docs/product-direction.md) | Product thesis, target user posture, goals, non-goals, runtime defaults, and scope. |
243
247
  | [Workspace orchestration model](docs/harness.md) | Top-level workflow model, components, guardrails, improvement, and naming rules. |
244
248
  | [Roles, skills, and workflows](docs/roles-skills-and-workflows.md) | Fixed role roster, no-overlap handoffs, dispatch gates, skills, and strategy behavior. |
245
249
  | [Safety policy and execution](docs/safety-policy-and-execution.md) | Permissions, approvals, idempotency, broker safety, secret wall, and required blocks. |
@@ -0,0 +1,95 @@
1
+ # TradingCodex Documentation
2
+
3
+ This directory is the human-readable source of truth linked from the public `README.md`. It explains the product model, operating rules, safety boundaries, generated workspace behavior, implementation architecture, validation expectations, release policy, and licensing posture.
4
+
5
+ Use these docs when you want the deeper "why" behind TradingCodex behavior. Coding agents should use `openwiki/` for fast source navigation, then return here before changing durable product behavior.
6
+
7
+ ## How To Read These Docs
8
+
9
+ | Reader goal | Start with | Then read |
10
+ | --- | --- | --- |
11
+ | Understand TradingCodex quickly | [core-concepts-and-rules.md](./core-concepts-and-rules.md) | [product-direction.md](./product-direction.md), [harness.md](./harness.md) |
12
+ | Install or update a workspace | [../installation.md](../installation.md) | [generated-workspaces.md](./generated-workspaces.md), [deployment.md](./deployment.md) |
13
+ | Understand the investment workflow | [harness.md](./harness.md) | [roles-skills-and-workflows.md](./roles-skills-and-workflows.md), [research-memory-and-artifacts.md](./research-memory-and-artifacts.md) |
14
+ | Understand safety and execution boundaries | [safety-policy-and-execution.md](./safety-policy-and-execution.md) | [guardrails.md](./guardrails.md), [interfaces-and-surfaces.md](./interfaces-and-surfaces.md) |
15
+ | Understand implementation architecture | [system-architecture.md](./system-architecture.md) | [interfaces-and-surfaces.md](./interfaces-and-surfaces.md), [components.md](./components.md) |
16
+ | Change prompts, skills, hooks, routing, or generated workspaces | [roles-skills-and-workflows.md](./roles-skills-and-workflows.md) | [generated-workspaces.md](./generated-workspaces.md), [validation-and-test-plan.md](./validation-and-test-plan.md) |
17
+ | Validate a change before release or handoff | [validation-and-test-plan.md](./validation-and-test-plan.md) | The topic document for the changed area |
18
+
19
+ ## Documentation Layers
20
+
21
+ | Layer | Audience | Role |
22
+ | --- | --- | --- |
23
+ | `README.md` | New users and evaluators | Product summary, installation path, feature overview, and links into these docs. |
24
+ | `installation.md` | Operators | Setup, update, installer, MCP/service startup, and smoke checks. |
25
+ | `docs/` | Humans and maintainers | Durable product source of truth and deeper design rationale. |
26
+ | `openwiki/` | Coding agents | Fast repository map and edit/validation routing. |
27
+ | `AGENTS.md` | Coding agents | Hard rules, setup guard, coding rules, and validation requirements. |
28
+
29
+ If these layers disagree, treat `docs/` as the durable product intent and fix the mismatch deliberately. Do not let hidden behavior drift live only in code, tests, prompts, skills, hooks, or generated templates.
30
+
31
+ ## Core Documents
32
+
33
+ | Document | Owns |
34
+ | --- | --- |
35
+ | [core-concepts-and-rules.md](./core-concepts-and-rules.md) | Fast operating reference for planes, guardrails, role boundaries, execution lifecycle, research memory, and documentation rules. |
36
+ | [product-direction.md](./product-direction.md) | Product thesis, target user posture, goals, non-goals, product language, default runtime, universe scope, and open-core posture. |
37
+ | [harness.md](./harness.md) | Top-level harness model: roles, skills, service-layer state, policy, MCP, research memory, approvals, execution adapters, audit, and improvement loops. |
38
+ | [components.md](./components.md) | Component-first maintenance registry, taxonomy tags, owned surfaces, dependencies, capabilities, and validation. |
39
+
40
+ ## Workflow And Agent Documents
41
+
42
+ | Document | Owns |
43
+ | --- | --- |
44
+ | [roles-skills-and-workflows.md](./roles-skills-and-workflows.md) | Fixed role roster, no-overlap role contract, head-manager dispatch gate, skills, strategy skills, subagent isolation, workflow routing, and module graph. |
45
+ | [research-memory-and-artifacts.md](./research-memory-and-artifacts.md) | File-native research memory, source snapshots, artifact paths, readiness labels, report quality floor, forecast ledger posture, and handoff metadata. |
46
+ | [financial-workflow-references.md](./financial-workflow-references.md) | Research-backed finance workflow principles and non-expert UX requirements for workflow intake and handoffs. |
47
+ | [artifact-supervisor-loop-prd.md](./artifact-supervisor-loop-prd.md) | Artifact Supervisor Loop PRD, bounded follow-up routing, lane escalation, loop state, and Decision Quality Spine preservation. |
48
+
49
+ ## Safety And Improvement Documents
50
+
51
+ | Document | Owns |
52
+ | --- | --- |
53
+ | [guardrails.md](./guardrails.md) | Guardrail taxonomy: guidance, enforcement, and information barriers. |
54
+ | [safety-policy-and-execution.md](./safety-policy-and-execution.md) | Permission checks, approval rules, execution lifecycle, adapter boundary, external MCP gate, blocked actions, and secret handling. |
55
+ | [improvement-loop.md](./improvement-loop.md) | Workflow quality, research memory, skill evolution, postmortems, validation feedback, and quality-learning loops. |
56
+
57
+ ## Implementation And Operations Documents
58
+
59
+ | Document | Owns |
60
+ | --- | --- |
61
+ | [system-architecture.md](./system-architecture.md) | Django modular monolith, central DB ownership, app boundaries, runtime planes, service-layer use cases, and core models. |
62
+ | [interfaces-and-surfaces.md](./interfaces-and-surfaces.md) | Product web, Django Admin, Django Ninja API, MCP boundary, CLI, generated wrapper behavior, and external MCP surface. |
63
+ | [generated-workspaces.md](./generated-workspaces.md) | `tcx attach`, `tcx init`, `tcx update`, generated files, project-scoped MCP config, hooks, workspace provenance, profile scope, and template rules. |
64
+ | [validation-and-test-plan.md](./validation-and-test-plan.md) | Required validation commands, unit/API/generator/smoke coverage, MCP smokes, broker provider smokes, routing scenarios, and release-sensitive checks. |
65
+ | [deployment.md](./deployment.md) | PyPI/TestPyPI release process, CI/CD, Trusted Publishing, installer/update policy, versioning, and what is not deployed. |
66
+ | [licensing-and-commercialization.md](./licensing-and-commercialization.md) | Apache-2.0 open-core boundary, generated workspace ownership, contributions, trademark posture, and legal review needs. |
67
+
68
+ ## Change-To-Docs Map
69
+
70
+ | Change type | Update these docs |
71
+ | --- | --- |
72
+ | Product scope, non-goals, default runtime, product language, or release posture | `product-direction.md`, `core-concepts-and-rules.md` |
73
+ | Top-level harness model, component registry, guardrail/improvement taxonomy, or cross-cutting concept language | `harness.md`, `components.md`, `guardrails.md`, `improvement-loop.md`, `core-concepts-and-rules.md` |
74
+ | User-facing workflow intake, suitability/profile context, plain-English output, or professional finance framing | `financial-workflow-references.md`, `interfaces-and-surfaces.md`, `roles-skills-and-workflows.md` |
75
+ | Role roster, head-manager dispatch, skills, strategy behavior, routing, information barriers, or handoff quality | `roles-skills-and-workflows.md`, `artifact-supervisor-loop-prd.md`, `core-concepts-and-rules.md` |
76
+ | Research memory, source snapshots, forecast ledgers, readiness labels, artifact paths, report quality, or markdown preview | `research-memory-and-artifacts.md`, `improvement-loop.md`, `artifact-supervisor-loop-prd.md` |
77
+ | Policy, permissions, approvals, idempotency, execution, adapters, broker safety, external MCP gate, or secret handling | `safety-policy-and-execution.md`, `guardrails.md`, `core-concepts-and-rules.md` |
78
+ | Django apps, models, service-layer contracts, central DB ownership, or runtime topology | `system-architecture.md` |
79
+ | Product web, Admin, REST, MCP, CLI, or generated wrapper behavior | `interfaces-and-surfaces.md` |
80
+ | Workspace templates, bootstrap, hooks, project MCP config, generated files, or update behavior | `generated-workspaces.md` |
81
+ | Test expectations, smoke flows, validation commands, or regression scenarios | `validation-and-test-plan.md` |
82
+ | Packaging, installer, release automation, versioning, or distribution boundary | `deployment.md`, `installation.md` |
83
+ | License, contribution, trademark, generated workspace ownership, or commercialization boundary | `licensing-and-commercialization.md` |
84
+
85
+ ## Source-Of-Truth Principles
86
+
87
+ | Principle | Meaning |
88
+ | --- | --- |
89
+ | Docs first for product behavior | Durable rules for safety, roles, workflows, execution, generated workspaces, and release posture belong in these docs. |
90
+ | Update docs with behavior | Code, templates, prompts, hooks, tests, and generated artifacts that change durable behavior should update the owning doc in the same change. |
91
+ | Keep `README.md` concise | The public README should explain the product and route readers here instead of duplicating every rule. |
92
+ | Keep OpenWiki agent-focused | `openwiki/` should help agents work efficiently and link back to these docs for durable explanations. |
93
+ | Keep product language English | TradingCodex product copy, generated workspace guidance, Admin UI, CLI help, role prompts, durable docs, and examples are written in English unless a reviewed localization layer is being built. |
94
+ | Product web is review-first | The `/` web app opens on workflow planning and can preview handoffs; it does not spawn agents, approve orders, or execute orders. |
95
+ | Open-core boundary is explicit | Apache-2.0 covers the repository open core; trademarks and official commercial offerings remain separately governed. |
@@ -141,7 +141,7 @@ python3.11 -m venv /tmp/tcx-testpypi
141
141
  /tmp/tcx-testpypi/bin/pip install \
142
142
  --index-url https://test.pypi.org/simple/ \
143
143
  --extra-index-url https://pypi.org/simple/ \
144
- tradingcodex==0.2.9
144
+ tradingcodex==0.2.10
145
145
  rm -rf /tmp/tcx-testpypi-smoke
146
146
  mkdir -p /tmp/tcx-testpypi-smoke
147
147
  cd /tmp/tcx-testpypi-smoke
@@ -170,7 +170,7 @@ After the PyPI workflow completes:
170
170
 
171
171
  ```bash
172
172
  python3.11 -m venv /tmp/tcx-pypi
173
- /tmp/tcx-pypi/bin/pip install tradingcodex==0.2.9
173
+ /tmp/tcx-pypi/bin/pip install tradingcodex==0.2.10
174
174
  rm -rf /tmp/tcx-pypi-smoke
175
175
  mkdir -p /tmp/tcx-pypi-smoke
176
176
  cd /tmp/tcx-pypi-smoke
@@ -263,7 +263,8 @@ Use PEP 440 versions:
263
263
  loop state after `0.2.7`
264
264
  - `0.2.9` for stale service replacement and web scroll-state fixes after
265
265
  `0.2.8`
266
- - later patch releases for compatible fixes after `0.2.9`
266
+ - `0.2.10` for workflow planning and automation skill updates after `0.2.9`
267
+ - later patch releases for compatible fixes after `0.2.10`
267
268
  - pre-releases such as `0.3.0a1`, `0.3.0b1`, or `0.3.0rc1` when preparing
268
269
  the next minor contract
269
270
 
@@ -42,12 +42,12 @@ drafting, approval, or execution.
42
42
  | [Markowitz, "Portfolio Selection" (1952)](https://ideas.repec.org/a/bla/jfinan/v7y1952i1p77-91.html) | Portfolio roles should treat expected return, variance, covariance, and diversification as analytical lenses, not as automatic trade instructions. |
43
43
  | [Fama and French, "Common risk factors in the returns on stocks and bonds" (1993)](https://ideas.repec.org/a/eee/jfinec/v33y1993i1p3-56.html) | Research and portfolio outputs should separate issuer-specific thesis claims from factor, market, maturity, and default-risk exposure. |
44
44
  | [NIST AI Risk Management Framework](https://www.nist.gov/itl/ai-risk-management-framework) | Agentic finance workflows need visible governance, context mapping, measurement, and risk-management checkpoints. |
45
- | [NIST AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/) | Prompt gates, handoff states, quality checks, and audit outputs should map to govern, map, measure, and manage functions. |
45
+ | [NIST AI RMF Core](https://airc.nist.gov/airmf-resources/airmf/5-sec-core/) | Workflow intake, handoff states, quality checks, and audit outputs should map to govern, map, measure, and manage functions. |
46
46
  | [IOSCO AI/ML report for market intermediaries and asset managers](https://www.iosco.org/library/pubdocs/pdf/IOSCOPD684.pdf) | AI-assisted capital-markets features need governance, testing, monitoring, data-quality controls, explainability, and outsourcing/third-party oversight posture. |
47
47
  | [SEC Plain English Handbook](https://www.sec.gov/pdf/handbook.pdf) | User-facing screens should start with plain-English workflow meaning before professional evidence, assumptions, caveats, and artifacts. |
48
48
  | [Every, "Compound Engineering"](https://every.to/guides/compound-engineering) | Engineering work should teach the system reusable capabilities; TradingCodex applies this by making role outputs preserve compact context, reader summaries, source posture, and missing-evidence notes for future workflows. |
49
49
  | [Will Larson, "Learning from Every's Compound Engineering"](https://lethain.com/everyinc-compound-engineering/) | The useful pattern is separating research/planning, work, review, and compounding lessons; TradingCodex mirrors that with starter intake, role artifacts, quality checks, and improvement proposals. |
50
- | [Addy Osmani, "Loop Engineering"](https://addyosmani.com/blog/loop-engineering/) | A useful agentic loop combines automations, isolated workspaces, skills, connectors, subagents, and durable external memory; TradingCodex maps these to prompt gates, fixed subagents, MCP/service boundaries, artifacts, and generated workspace state. |
50
+ | [Addy Osmani, "Loop Engineering"](https://addyosmani.com/blog/loop-engineering/) | A useful agentic loop combines automations, isolated workspaces, skills, connectors, subagents, and durable external memory; TradingCodex maps these to workflow intake, fixed subagents, MCP/service boundaries, artifacts, and generated workspace state. |
51
51
  | [Business Insider, "Forget prompt engineering: Loop engineering is all the rage now"](https://www.businessinsider.com/what-are-loops-ai-engineering-tips-2026-6) | Current loop-engineering discourse emphasizes designing recurring systems that prompt agents, with cost and oversight tradeoffs; TradingCodex exposes loop controls and token/context budgets rather than unlimited autonomy. |
52
52
  | [Anthropic Claude Code skills docs](https://docs.anthropic.com/en/docs/claude-code/skills) | Recent agent tooling exposes loops through reusable skills, bundled `/loop`, subagent execution, and dynamic context; TradingCodex mirrors the reusable-skill and fixed-subagent pattern without depending on Claude Code. |
53
53
  | [Anthropic Claude Code hooks docs](https://docs.anthropic.com/en/docs/claude-code/hooks-guide) | Agent hooks can verify conditions before allowing a workflow to continue; TradingCodex maps this to hook gates, context-audit, quality-check, and handoff states. |
@@ -140,7 +140,7 @@ strategy authoring path, not as a side effect of analysis.
140
140
  - Recent loop-engineering frameworks converge on recurring agent triggers,
141
141
  reusable procedures, subagent decomposition, verification hooks, connectors,
142
142
  and durable memory. TradingCodex should stay framework-agnostic: use these
143
- ideas through its own Codex-native prompt gates, skills, MCP/service boundary,
143
+ ideas through its own Codex-native workflow intake, skills, MCP/service boundary,
144
144
  context-audit, role artifacts, and explicit human approval gates.
145
145
  - The verifier is the bottleneck in a useful loop. TradingCodex therefore keeps
146
146
  loop controls tied to source freshness, artifact quality, profile gaps, and
@@ -99,7 +99,9 @@ Generated workspaces contain:
99
99
  - 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
100
100
  - 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
101
101
  - 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
102
- - closed selected team: hook/starter-prompt selected roles are binding for the current lane; research-only prompts do not add portfolio, risk, approval, or execution roles for precautionary coverage
102
+ - validated staged workflow plan: hook intake hints are not binding; `$tcx-workflow`
103
+ drafts, validates, records, and dispatches from a staged plan before
104
+ substantive investment analysis
103
105
  - negated scope routing: phrases such as "no valuation", "no order", and "no trading" remove those actions or roles from dispatch selection
104
106
  - broad public-equity prompts such as "Analyze NVDA" default to deep thesis
105
107
  review with fundamental, technical, news, and valuation roles unless explicit
@@ -114,7 +116,7 @@ Generated workspaces contain:
114
116
  before opening full markdown; `reader_summary` and `next_action` keep the
115
117
  first-read experience clear for non-expert users
116
118
  - context-budget audit: `./tcx subagents context-audit --strict` inspects the
117
- latest prompt gate, prompt-gate history, compact hook context, subagent
119
+ latest workflow intake, intake history, compact hook context, subagent
118
120
  session state, workflow loop state, and research artifacts after long multi-subagent runs; it
119
121
  fails strict mode when handoff artifacts lack `context_summary`, compact gate
120
122
  history grows beyond budget, or gate/state/history payloads look like pasted
@@ -126,9 +128,9 @@ Generated workspaces contain:
126
128
  - compact workflow loop state: `.tradingcodex/mainagent/workflow-loop-state.json`
127
129
  is the latest summary and pointer; the canonical state for each routed prompt
128
130
  lives under `.tradingcodex/mainagent/workflows/<workflow_run_id>/loop-state.json`
129
- with the matching prompt gate beside it. The state records selected team,
130
- allowed follow-up team, escalation-only roles, loop policy, pending tasks,
131
- planner decisions, escalation proposals, blocked actions, and stop reason
131
+ with `intake.json` and `workflow-plan.json` beside it. The state records
132
+ validated stages, selected team, allowed follow-up team, loop policy, pending
133
+ tasks, planner decisions, escalation proposals, blocked actions, and stop reason
132
134
  without spawning subagents recursively
133
135
  - Codex session/thread routing map:
134
136
  `.tradingcodex/mainagent/session-workflow-runs.json` maps a Codex app session
@@ -138,7 +140,7 @@ Generated workspaces contain:
138
140
  - fixed subagent `nickname_candidates` set to a single item matching the exact role `name`
139
141
  - fixed subagent identities kept in `.codex/agents/*.toml` `developer_instructions`, as required by Codex custom agent files
140
142
  - project-local additional agent instructions under `.tradingcodex/agent-instructions/<role>.md`; projection appends them after generated default instructions for `head-manager` and fixed subagents
141
- - twenty-three core repo skills across project-scope mainagent skills and subagent skill directories, each with `SKILL.md` frontmatter for document metadata and `agents/openai.yaml` UI metadata
143
+ - twenty-five core repo skills across project-scope mainagent skills and subagent skill directories, each with `SKILL.md` frontmatter for document metadata and `agents/openai.yaml` UI metadata
142
144
  - shared decision-quality skill bundles for forecasting discipline, thesis
143
145
  scenario trees, numeric data QC, and anti-overfit validation
144
146
  - standalone `strategy-*` skills under `.agents/skills/strategy-*` for user-approved agent-readable investment strategies, created through `strategy-creator`, CLI, API, or service-layer flows and exposed to the root `head-manager` through the strategy marker block in `.codex/config.toml`; Django web lists and previews them read-only
@@ -387,17 +389,15 @@ enforcement.
387
389
 
388
390
  - prompt classification
389
391
  - secret warnings
390
- - natural-language investment workflow auto-routing context
392
+ - natural-language investment workflow intake context and deterministic hints
391
393
  - direct-answer prevention context
392
394
  - duplicate marker management
393
- - prompt-gate audit metadata with prompt hash and workflow lane, without raw
395
+ - workflow-intake audit metadata with prompt hash and heuristic lane, without raw
394
396
  prompt text in the audit ledger
395
- - compact hook `additionalContext`; the full generated starter prompt remains
396
- in `.tradingcodex/mainagent/latest-user-prompt-gate.json` and is loaded only
397
- when the compact gate is insufficient
398
- - compact Artifact Supervisor Loop metadata in hook context for
399
- `allowed_followup_team`, `escalation_team`, `loop_policy`, the latest loop
400
- summary, and the canonical run-specific loop-state path
397
+ - compact hook `additionalContext`; full staged workflow contracts are recorded
398
+ by `$tcx-workflow` under `.tradingcodex/mainagent/workflows/<workflow_run_id>/`
399
+ - compact Artifact Supervisor Loop metadata in recorded `workflow-plan.json`
400
+ and `loop-state.json`, not as final hook-selected teams
401
401
  - assisted loop planner previews through `./tcx subagents loop --artifact
402
402
  <path>`, with optional `--record` limited to file-native pending tasks,
403
403
  planner decisions, escalation proposals, blocked actions, and stop reason
@@ -54,7 +54,7 @@ TradingCodex Harness
54
54
  | Provenance | Record which workspace and role produced or requested work without making workspaces separate ledgers. |
55
55
  | Profiles | Separate paper portfolio/account/strategy state from workspace identity. |
56
56
  | Components | Provide the developer-facing maintenance map for implementation surfaces, dependencies, capabilities, tags, and validation. |
57
- | Context efficiency | Keep subagent briefs compact, pass artifact paths and context summaries before full artifacts, audit long runs with `subagents context-audit` over prompt-gate history, and avoid repeated role manuals or source dumps. |
57
+ | Context efficiency | Keep subagent briefs compact, pass artifact paths and context summaries before full artifacts, audit long runs with `subagents context-audit` over workflow intake history, and avoid repeated role manuals or source dumps. |
58
58
  | Responsibility boundaries | Keep role identity, MCP allowlists, permission profiles, hooks, policies, skills, schemas, and service behavior in their own authoritative surfaces. |
59
59
 
60
60
  ## Components As Maintenance Units
@@ -106,8 +106,8 @@ It is a tag and review lens applied to components.
106
106
  - Context efficiency keeps those quality gates usable by passing summaries and
107
107
  artifact references first, then opening full evidence only when needed.
108
108
  - Context-budget audits make long multi-subagent runs inspectable by checking
109
- compact hook context, prompt-gate history, starter prompt size, bounded
110
- subagent session state, and `context_summary` coverage across research
109
+ compact hook intake, intake history, bounded subagent session state,
110
+ workflow loop state, and `context_summary` coverage across research
111
111
  artifacts. Full subagent event history stays in append-only audit JSONL.
112
112
 
113
113
  Improvement does not authorize execution. A high-quality report still needs the
@@ -120,12 +120,14 @@ Quality Spine remains the cross-lane quality contract inside that loop. Neither
120
120
  the loop nor the spine widens role authority, MCP access, approval, execution,
121
121
  broker, or secret boundaries.
122
122
 
123
- Runtime loop inspection is file-native and read-first. Hooks write canonical
124
- per-run state under
125
- `.tradingcodex/mainagent/workflows/<workflow_run_id>/loop-state.json` and a
126
- compact latest summary at `.tradingcodex/mainagent/workflow-loop-state.json`;
127
- `tcx subagents plan` shows the current selected team, allowed follow-up team,
128
- escalation-only roles, pending tasks, stop reason, and canonical state path.
123
+ Runtime loop inspection is file-native and read-first. `$plan-workflow`
124
+ clarifies ambiguous requests into a compact mandate; `UserPromptSubmit`
125
+ writes compact intake; `$tcx-workflow` records the validated staged plan and
126
+ canonical per-run state under
127
+ `.tradingcodex/mainagent/workflows/<workflow_run_id>/`. A compact latest
128
+ summary stays at `.tradingcodex/mainagent/workflow-loop-state.json`;
129
+ `tcx subagents plan` shows the current staged plan, selected team, pending
130
+ tasks, stop reason, and canonical state path.
129
131
  Codex session/thread ids are mapped through
130
132
  `.tradingcodex/mainagent/session-workflow-runs.json`, so multiple Codex app
131
133
  threads in the same workspace can continue different loops without overwriting
@@ -203,7 +203,9 @@ Django Ninja provides local/staff typed control APIs:
203
203
  - `GET|PATCH|DELETE /api/subagents/{role}/optional-skills/{name}`
204
204
  - `POST /api/subagents/{role}/optional-skills/{name}/activate|archive`
205
205
  - `GET /api/workflows/{id}`
206
- - `POST /api/workflows/{id}/validate`
206
+ - `POST /api/workflows/intake` records compact workflow intake hints without raw prompt storage
207
+ - `POST /api/workflows/{id}/validate` validates an agent-authored staged workflow plan, or returns a deterministic preview for compatibility
208
+ - `POST /api/workflows/record` records a validated staged workflow plan and initializes loop state
207
209
  - `POST /api/policy/simulate`
208
210
  - `GET|POST /api/orders/tickets`; list responses are scoped to the active
209
211
  profile (`portfolio_id`, `account_id`, `strategy_id`)
@@ -395,8 +397,8 @@ provider, then registration stores only provider metadata and `credential_ref`.
395
397
  - `./tcx research create|append|get|list|search|export`
396
398
 
397
399
  Default main-agent skill listing is user-facing, not exhaustive. It shows only
398
- direct user entrypoints: `tcx-workflow`, `tcx-server`, `tcx-build`,
399
- `strategy-creator`, `postmortem`, and active `strategy-*` skills. Full
400
+ direct user entrypoints: `plan-workflow`, `tcx-workflow`, `automate-workflow`,
401
+ `tcx-server`, `tcx-build`, `strategy-creator`, `postmortem`, and active `strategy-*` skills. Full
400
402
  inspection is available through
401
403
  `./tcx skills list --all` and role-specific `./tcx subagents skills <role>`.
402
404
 
@@ -98,23 +98,26 @@ they are not required before `head-manager` routes the work.
98
98
 
99
99
  | Trigger | Handling |
100
100
  | --- | --- |
101
- | General investment request, such as "Analyze Apple stock" | `UserPromptSubmit` injects compact auto-dispatch context with lane, selected team, blocked actions, and the persisted prompt-gate path; `head-manager` dispatches or reuses selected subagents before analysis. |
102
- | Explicit `$tcx-workflow` request | The workflow skill becomes the primary manual-control orchestrator and dispatches selected subagents. |
101
+ | Ambiguous planning request, such as "help me design a workflow for daily market prep" | Route through `$plan-workflow`; ask focused questions, preserve negated scope, and produce a compact workflow mandate before execution or automation. |
102
+ | General investment request, such as "Analyze Apple stock" | `UserPromptSubmit` records compact workflow intake hints; `head-manager` uses `$tcx-workflow` to draft, validate, record, and then dispatch from a staged workflow plan before analysis. |
103
+ | Explicit `$tcx-workflow` request | The workflow skill becomes the primary orchestrator, records a validated staged plan, and dispatches selected stages. |
104
+ | Recurring automation request, such as "run this before market open every day" | Route through `$automate-workflow`; use `$plan-workflow` first when the recurring mandate is ambiguous or execution-sensitive, then register an active Codex automation only after the mandate is armed. |
103
105
  | Broker/provider build request, such as "connect this broker" | Route to the `connector_build` lane and `$tcx-build`; connect/scaffold/register/validate provider metadata without investment dispatch or live submission. |
104
106
  | Runtime/server request, such as "open dashboard" or "check TradingCodex status" | Route to `$tcx-server`; report service/MCP/update posture and use CLI recovery commands without changing execution authority. |
105
- | Explicit subagent/parallel/delegated request | `UserPromptSubmit` records the explicit activation source; the skill checks existing subagent state before creating/reusing sessions. |
107
+ | Explicit subagent/parallel/delegated request | `UserPromptSubmit` records intake hints; the skill checks existing subagent state and validates the staged plan before creating/reusing sessions. |
106
108
  | Strategy authoring request, such as "Create a quality income strategy" | Do not auto-dispatch investment subagents. Route through `strategy-creator`, CLI, API, or service-layer flows so the strategy skill is created and projected as a root/head-manager strategy entry. Django web previews strategies read-only. |
107
109
  | Non-investment repository, docs, or harness administration request | No investment dispatch is required; `head-manager` follows normal Codex coding-agent behavior while preserving execution and secret guardrails. |
108
110
  | Same run/role subagent is active | Wait or follow up instead of creating duplicates. |
109
111
  | Same role artifact has passed quality gates | Reuse the artifact instead of duplicating work. |
110
112
  | Codex `spawn_agent` schema cannot select exact fixed role | Treat role routing as `routing-unverified`; provide `waiting_for_subagent_dispatch` and task briefs only. |
111
113
 
112
- The selected role team from compact hook context or the persisted starter
113
- prompt is binding for the current lane. `head-manager` must not add roles
114
- outside that team merely because they might be useful. For `research_only`, do
115
- not add valuation, portfolio, risk, approval, or execution roles unless the
116
- user later asks for valuation, decision support, portfolio fit, sizing, order
117
- drafting, approval, or execution.
114
+ Hook-selected roles are deterministic hints, not the final contract. The
115
+ recorded validated staged workflow plan is binding for the current run.
116
+ `head-manager` must not add roles outside that plan merely because they might
117
+ be useful. For `research_only`, do not add valuation, portfolio, risk,
118
+ approval, or execution roles unless the user later asks for valuation,
119
+ decision support, portfolio fit, sizing, order drafting, approval, or
120
+ execution and a new validated plan permits it.
118
121
 
119
122
  Negated scope terms are binding. Phrases such as "no valuation", "no order", or
120
123
  "no trading" remove those actions or roles from routing instead of triggering
@@ -175,7 +178,7 @@ Instruction/skill separation:
175
178
  | Surface | Owns | Must not own |
176
179
  | --- | --- | --- |
177
180
  | `head-manager` base instructions | durable identity, safety invariants, dispatch fail-closed rule, role boundaries, approved action boundary, skill routing | workflow templates, scenario tables, long checklists, subagent message bodies |
178
- | Head-manager skills | compact repeatable procedures for workflow routing, server/runtime recovery, build-mode work, strategy creation, and postmortems | role identity, durable routing authority, MCP allowlists, weakening base guardrails, bypassing role-owned skills, approving or executing directly |
181
+ | Head-manager skills | compact repeatable procedures for workflow planning, workflow routing, automation arming, server/runtime recovery, build-mode work, strategy creation, and postmortems | role identity, durable routing authority, MCP allowlists, weakening base guardrails, bypassing role-owned skills, approving or executing directly |
179
182
  | Fixed subagent TOML | standing role identity, role purpose, artifact wall, model/tool config, MCP allowlist, single-item display nickname candidates, and always-on prohibitions | per-request user intent, workflow lane decisions, source selection, or temporary task-specific context |
180
183
  | Role-owned skills | capability procedure, artifact expectations, quality checks, and local output rules | role eligibility, work for other roles, self-approval, execution outside MCP |
181
184
  | Main-to-subagent briefs | request-specific assignment envelope: verbatim user request, explicit constraints, workflow consent posture, research artifact language, lane, artifact path, `context_summary`, data-cutoff needs, request-specific out-of-scope items, and return contract | standing role manuals, model/tool config, MCP allowlists, long method checklists, long source-class lists, full artifacts, or repeated guardrail prose |
@@ -206,7 +209,9 @@ role work directly.
206
209
  User-visible skill lists are not the same as enabled or installed skills. The
207
210
  main-agent user surface should show only direct user entrypoints by default:
208
211
 
212
+ - `plan-workflow`
209
213
  - `tcx-workflow`
214
+ - `automate-workflow`
210
215
  - `tcx-server`
211
216
  - `tcx-build`
212
217
  - `strategy-creator`
@@ -238,7 +243,9 @@ Head-manager skill responsibilities:
238
243
 
239
244
  | Skill | Responsibility |
240
245
  | --- | --- |
246
+ | `plan-workflow` | focused user Q&A, ambiguity detection, negated-scope preservation, and user-language compact workflow mandate creation before immediate or recurring workflows |
241
247
  | `tcx-workflow` | compact workflow routing, selected-team dispatch/reuse, Artifact Supervisor Loop planning, handoff quality states, bounded follow-up/escalation proposals, and synthesis after accepted artifacts |
248
+ | `automate-workflow` | mandate reuse from `$plan-workflow`, preflight checks, arming status, user-language automation summaries, and Codex automation registration for recurring TradingCodex workflows without granting execution authority |
242
249
  | `tcx-server` | startup health, local dashboard URL guidance, explicit user-requested dashboard opening, Codex restart guidance, TradingCodex MCP setup, update-status explanation, read-only broker/status inspection, and service troubleshooting without granting execution authority |
243
250
  | `tcx-build` | full-access plus TCX-build-mode gated self-update, template/harness edits, broker/API provider connect/scaffold/register/validate flows, credential-ref handling, and live-submit blocking outside service gates |
244
251
  | `external-data-source-gate` | read-only external evidence-source constraints and External MCP Gate honesty |
@@ -353,13 +360,11 @@ posture, or core skill behavior.
353
360
  summary with total counters and a recent-event window. Full subagent event
354
361
  history belongs in `trading/audit/subagent-session-events.jsonl`.
355
362
  - `.tradingcodex/mainagent/workflow-loop-state.json` is the compact latest
356
- assisted-loop summary and pointer. The canonical loop state for a routed
357
- prompt lives under
358
- `.tradingcodex/mainagent/workflows/<workflow_run_id>/loop-state.json`, with
359
- the matching prompt gate beside it. It contains selected team, allowed
360
- follow-up team, escalation-only roles, pending tasks, planner decisions,
361
- blocked actions, and stop reason. It is inspectable state, not an automatic
362
- recursive dispatch mechanism.
363
+ assisted-loop summary and pointer. The canonical run folder contains
364
+ `intake.json`, `workflow-plan.json`, and `loop-state.json`. It contains
365
+ validated stages, selected team, allowed follow-up team, pending tasks,
366
+ planner decisions, blocked actions, and stop reason. It is inspectable
367
+ state, not an automatic recursive dispatch mechanism.
363
368
  - `.tradingcodex/mainagent/session-workflow-runs.json` maps Codex session or
364
369
  thread keys to workflow run ids. Subagent start/stop records use run id,
365
370
  role, and subagent session id so a reused role session can continue the right
@@ -371,6 +376,7 @@ posture, or core skill behavior.
371
376
  - Downstream roles start from artifact path plus `context_summary`; they open
372
377
  full markdown only for disputed, stale, missing, or load-bearing evidence.
373
378
  - 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.
379
+ - `plan-workflow` mandates and `automate-workflow` automation summaries follow the same user-language rule.
374
380
  - 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.
375
381
  - Workflow consent stays separate from explicit user constraints. Consent to orchestrate or use subagents allows dispatch, but it is not itself an analytical constraint.
376
382
  - Execution roles may additionally receive the approved action boundary because they need it to submit approved actions.
@@ -398,7 +404,7 @@ TradingCodex MCP allowlists, and service-layer policy.
398
404
 
399
405
  ## Hooks Are Guidance
400
406
 
401
- - `UserPromptSubmit` handles prompt classification, secret warnings, direct-answer prevention context, and duplicate marker management.
407
+ - `UserPromptSubmit` handles prompt classification, secret warnings, compact workflow intake hints, direct-answer prevention context, and duplicate marker management. It does not choose the final staged workflow plan.
402
408
  - `SessionStart` writes compact TradingCodex mode, permission, update, server/MCP, and routing diagnostics for `head-manager`; incompatible service details such as version mismatch, DB mismatch, and occupied ports must survive into compact context so `head-manager` can mention the startup notice before claiming dashboard readiness. Startup recovery and dashboard URL guidance stay in `$tcx-server`, while self-update and connector implementation stay in `$tcx-build`.
403
409
  - Official `UserPromptSubmit` matchers are ignored, so classification happens inside the hook script.
404
410
  - Hooks use command type only and do not rely on ordering or concurrency between hooks.
@@ -85,7 +85,7 @@ Smoke coverage should verify:
85
85
  - generated workspace contains `.tradingcodex/workspace.json`
86
86
  - generated workspace contains `.tradingcodex/generated/component-index.json`
87
87
  - generated workspace contains no `package.json` or Node MCP/runtime files
88
- - generated workspace contains nine fixed subagents and twenty-three core repo skills
88
+ - generated workspace contains nine fixed subagents and twenty-five core repo skills
89
89
  - two generated workspaces have different workspace ids
90
90
  - two generated workspaces keep separate research markdown/source-snapshot files while sharing non-research MCP ledger rows through the central DB
91
91
  - profile selection controls paper portfolio separation
@@ -233,14 +233,14 @@ Scenarios should include:
233
233
  answered, and complete active-profile investor context
234
234
  - starter-prompt web profile-answer forms persist answers to the active profile
235
235
  and the refreshed preview removes those questions
236
- - Codex `UserPromptSubmit` generated hooks reuse answered active-profile
237
- investor context in the persisted starter prompt while keeping compact
238
- `additionalContext` under budget
236
+ - Codex `UserPromptSubmit` generated hooks keep compact intake hints under
237
+ budget; `$tcx-workflow` reuses answered active-profile investor context when
238
+ drafting the validated staged plan
239
239
  - unavailable or unverified subagent routing fails closed
240
240
  - completed role artifacts are reused when quality gates pass
241
241
  - downstream roles return `revise`, `blocked`, or `waiting` instead of filling missing upstream role work
242
- - hook `additionalContext` stays compact and points to the persisted prompt gate
243
- instead of injecting the full starter prompt into every routed turn
242
+ - hook `additionalContext` stays compact and points to persisted workflow
243
+ intake instead of injecting a full starter prompt into every routed turn
244
244
  - starter prompts and generated guidance expose the no-overlap handoff contract
245
245
  - starter prompts and generated guidance tell subagents to write reader-facing
246
246
  research artifacts in the user's language unless explicitly overridden
@@ -255,13 +255,12 @@ Scenarios should include:
255
255
  budget so agents pass artifact paths, context summaries, source snapshot IDs,
256
256
  and short deltas instead of full artifacts or repeated role manuals
257
257
  - multi-round subagent smokes run `tcx subagents context-audit --strict` after
258
- several prompt gates, subagent start/stop events, and large research
258
+ several workflow intakes, subagent start/stop events, and large research
259
259
  artifacts across research-only, thesis, portfolio/risk, order-draft,
260
260
  approval/execution, crypto, ETF/index, and options/instrument lanes; the
261
- audit must show compact hook context, bounded starter prompts, compact prompt
262
- gate history, compact session state with total counters plus retained recent
263
- events, no pasted markdown artifacts in
264
- gate/history/state, no research artifacts missing `context_summary`, and
261
+ audit must show compact hook intake, compact intake history, compact session
262
+ state with total counters plus retained recent events, no pasted markdown artifacts in
263
+ intake/history/state, no research artifacts missing `context_summary`, and
265
264
  warnings for artifacts missing reader-first `reader_summary` or `next_action`
266
265
  - repo skill boundary tests fail when role identifiers leak into generic skills
267
266
  outside necessary command principal examples or policy/artifact contracts
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tradingcodex"
7
- version = "0.2.9"
7
+ version = "0.2.10"
8
8
  description = "Codex-native trading harness with a Django service plane and approved action boundary."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11,<3.15"
@@ -78,7 +78,7 @@ def test_generated_workspace_connects_mock_broker(tmp_path: Path) -> None:
78
78
  tcx(workspace, env_extra, "mode", "set", "build", "--reason", "mock broker connector smoke")
79
79
  gate = hook_context(workspace, "Connect mock-json broker. No order, no trading, do not read secrets.", env_extra)
80
80
  assert gate is not None
81
- assert gate["workflow_lane"] == "connector_build"
81
+ assert gate["heuristic_lane"] == "connector_build"
82
82
 
83
83
  write_mock_provider(
84
84
  workspace,
@@ -218,24 +218,16 @@ def test_generated_workspace_codex_cli_user_scenario_matrix(tmp_path: Path) -> N
218
218
  for index, (prompt, lane, roles, secret_warning) in enumerate(prompt_cases):
219
219
  gate = hook_context(workspace, prompt, env_extra, via_hooks_json=index == 0)
220
220
  assert gate is not None, prompt
221
- assert gate["workflow_lane"] == lane
222
- assert gate["required_subagents"] == roles
221
+ assert gate["heuristic_lane"] == lane
222
+ assert gate["heuristic_roles"] == roles
223
223
  assert gate["secret_warning"] is secret_warning
224
- assert gate["confirmation_required"] is False
225
- assert gate["context_mode"] == "compact_workflow_gate"
226
- assert gate["starter_prompt_path"] == ".tradingcodex/mainagent/latest-user-prompt-gate.json"
224
+ assert gate["intake_path"].endswith("/intake.json")
227
225
  assert "starter_prompt" not in gate
228
226
  assert len(json.dumps(gate, ensure_ascii=False)) < 1800
229
- if roles:
230
- persisted_gate = json.loads((workspace / ".tradingcodex" / "mainagent" / "latest-user-prompt-gate.json").read_text(encoding="utf-8"))
231
- starter = persisted_gate["starter_prompt"]
232
- assert "This selected team is binding for the current lane" in starter
233
- assert "Research artifact language:" in starter
234
- assert "Use handoff states: accepted, revise, blocked, waiting." in starter
235
- assert "source/as-of posture" in starter
236
- assert "Context budget:" in starter
237
- assert "context_summary" in starter
238
- assert "Blocked actions before artifacts:" in starter
227
+ persisted_intake = json.loads((workspace / ".tradingcodex" / "mainagent" / "latest-workflow-intake.json").read_text(encoding="utf-8"))
228
+ assert persisted_intake["heuristic_lane"] == lane
229
+ assert "prompt_sha256" in persisted_intake
230
+ assert prompt not in json.dumps(persisted_intake, ensure_ascii=False)
239
231
 
240
232
  hook_audit_path = workspace / "trading" / "audit" / "codex-hooks.jsonl"
241
233
  assert hook_audit_path.exists()
@@ -251,7 +243,7 @@ def test_generated_workspace_codex_cli_user_scenario_matrix(tmp_path: Path) -> N
251
243
  status = json.loads(tcx(workspace, env_extra, "subagents", "status").stdout)
252
244
  assert status["installed_count"] == 9
253
245
  assert status["fixed_roster_ok"] is True
254
- assert status["skills_installed"] == 23
246
+ assert status["skills_installed"] == 25
255
247
  plan = json.loads(tcx(workspace, env_extra, "subagents", "plan", "--all").stdout)
256
248
  assert plan["requested_count"] == 9
257
249
  assert plan["parallel_spawn_ok"] is True
@@ -476,16 +468,15 @@ def test_long_multi_subagent_context_budget_audit(tmp_path: Path) -> None:
476
468
  for round_index, (prompt, expected_lane) in enumerate(scenarios, start=1):
477
469
  context = hook_context(workspace, prompt, env_extra)
478
470
  assert context is not None
479
- assert context["workflow_lane"] == expected_lane
471
+ assert context["heuristic_lane"] == expected_lane
480
472
  assert "starter_prompt" not in context
481
473
  assert len(json.dumps(context, ensure_ascii=False)) < 1600
482
474
 
483
- persisted_gate = (workspace / ".tradingcodex" / "mainagent" / "latest-user-prompt-gate.json").read_text(encoding="utf-8")
484
- assert sentinel not in persisted_gate
485
- assert "Context budget:" in persisted_gate
486
- assert "context_summary" in persisted_gate
475
+ persisted_intake = (workspace / ".tradingcodex" / "mainagent" / "latest-workflow-intake.json").read_text(encoding="utf-8")
476
+ assert sentinel not in persisted_intake
477
+ assert "prompt_sha256" in persisted_intake
487
478
 
488
- for role in context["required_subagents"]:
479
+ for role in context["heuristic_roles"]:
489
480
  artifact_id = f"long-{round_index}-{role}"
490
481
  hook_event(workspace, "subagent-start", {"agent_type": role, "task_name": f"{role} round {round_index}"}, env_extra)
491
482
  markdown = (