cataforge 0.1.0__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 (224) hide show
  1. cataforge-0.1.0/.gitignore +167 -0
  2. cataforge-0.1.0/LICENSE +21 -0
  3. cataforge-0.1.0/PKG-INFO +317 -0
  4. cataforge-0.1.0/README.md +264 -0
  5. cataforge-0.1.0/docs/README.md +14 -0
  6. cataforge-0.1.0/docs/agents-and-skills.md +271 -0
  7. cataforge-0.1.0/docs/manual-verification-guide.md +483 -0
  8. cataforge-0.1.0/docs/workflow.md +474 -0
  9. cataforge-0.1.0/pyproject.toml +121 -0
  10. cataforge-0.1.0/src/cataforge/__init__.py +3 -0
  11. cataforge-0.1.0/src/cataforge/__main__.py +6 -0
  12. cataforge-0.1.0/src/cataforge/_assets/__init__.py +11 -0
  13. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/PROJECT-STATE.md +80 -0
  14. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/architect/AGENT.md +51 -0
  15. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/debugger/AGENT.md +52 -0
  16. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/devops/AGENT.md +38 -0
  17. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/implementer/AGENT.md +64 -0
  18. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/orchestrator/AGENT.md +88 -0
  19. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/orchestrator/ORCHESTRATOR-PROTOCOLS.md +416 -0
  20. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/product-manager/AGENT.md +38 -0
  21. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/qa-engineer/AGENT.md +37 -0
  22. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/refactorer/AGENT.md +47 -0
  23. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/reflector/AGENT.md +101 -0
  24. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/reviewer/AGENT.md +56 -0
  25. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/tech-lead/AGENT.md +49 -0
  26. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/test-writer/AGENT.md +56 -0
  27. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/agents/ui-designer/AGENT.md +53 -0
  28. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/framework.json +208 -0
  29. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/hooks/hooks.yaml +86 -0
  30. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/platforms/_schema.yaml +87 -0
  31. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/platforms/claude-code/profile.yaml +111 -0
  32. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/platforms/codex/overrides/dispatch-prompt.md +29 -0
  33. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/platforms/codex/profile.yaml +103 -0
  34. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/platforms/cursor/overrides/dispatch-prompt.md +20 -0
  35. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/platforms/cursor/profile.yaml +110 -0
  36. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/platforms/opencode/profile.yaml +99 -0
  37. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/rules/COMMON-RULES.md +180 -0
  38. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/rules/SUB-AGENT-PROTOCOLS.md +49 -0
  39. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/schemas/agent-result.schema.json +61 -0
  40. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/schemas/event-log.schema.json +77 -0
  41. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/agent-dispatch/SKILL.md +92 -0
  42. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/agent-dispatch/templates/dispatch-prompt.md +83 -0
  43. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/arc-design/SKILL.md +93 -0
  44. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/change-guard/SKILL.md +97 -0
  45. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/code-review/SKILL.md +65 -0
  46. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/debug/SKILL.md +95 -0
  47. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/dep-analysis/SKILL.md +86 -0
  48. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/deploy-config/SKILL.md +152 -0
  49. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/SKILL.md +138 -0
  50. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/_registry.yaml +192 -0
  51. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/lite/arch-lite.md +60 -0
  52. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/lite/dev-plan-lite.md +53 -0
  53. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/lite/prd-lite.md +52 -0
  54. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/prototype/brief.md +100 -0
  55. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/standard/arch.md +120 -0
  56. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/standard/deploy-spec.md +44 -0
  57. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/standard/dev-plan.md +76 -0
  58. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/standard/prd.md +66 -0
  59. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/standard/test-report.md +66 -0
  60. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/standard/ui-spec.md +79 -0
  61. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/utility/changelog.md +17 -0
  62. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/utility/research-note.md +36 -0
  63. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/utility/sprint-review.md +60 -0
  64. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/volumes/arch-api.md +37 -0
  65. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/volumes/arch-data.md +33 -0
  66. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/volumes/arch-modules.md +30 -0
  67. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/volumes/dev-plan-sprint.md +39 -0
  68. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/volumes/prd-volume.md +31 -0
  69. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/volumes/ui-spec-components.md +30 -0
  70. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-gen/templates/volumes/ui-spec-pages.md +35 -0
  71. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-nav/SKILL.md +81 -0
  72. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/doc-review/SKILL.md +101 -0
  73. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/penpot-implement/SKILL.md +69 -0
  74. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/penpot-review/SKILL.md +79 -0
  75. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/penpot-sync/SKILL.md +75 -0
  76. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/platform-audit/SKILL.md +502 -0
  77. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/platform-audit/references/audit-checklist.md +301 -0
  78. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/platform-audit/references/capability-matrix.md +257 -0
  79. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/platform-audit/references/platform-sources.md +212 -0
  80. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/req-analysis/SKILL.md +67 -0
  81. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/research/SKILL.md +63 -0
  82. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/sprint-review/SKILL.md +73 -0
  83. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/start-orchestrator/SKILL.md +44 -0
  84. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/task-decomp/SKILL.md +42 -0
  85. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/tdd-engine/SKILL.md +216 -0
  86. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/tech-eval/SKILL.md +38 -0
  87. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/testing/SKILL.md +82 -0
  88. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/ui-design/SKILL.md +96 -0
  89. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/SKILL.md +417 -0
  90. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/examples/content-creation.yaml +176 -0
  91. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/examples/ecommerce-ops.yaml +148 -0
  92. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/examples/research-analysis.yaml +144 -0
  93. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/references/architecture-guidelines.md +231 -0
  94. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/references/domain-patterns.md +251 -0
  95. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/references/platform-capabilities.md +104 -0
  96. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/scripts/__init__.py +0 -0
  97. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/scripts/scaffold.py +202 -0
  98. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/scripts/validate_framework.py +450 -0
  99. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/agent.md.tmpl +49 -0
  100. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/common-rules.md.tmpl +58 -0
  101. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/framework.json.tmpl +24 -0
  102. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/hooks.yaml.tmpl +19 -0
  103. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/platform-profiles/claude-code.yaml.tmpl +44 -0
  104. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/platform-profiles/codex.yaml.tmpl +51 -0
  105. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/platform-profiles/cursor.yaml.tmpl +48 -0
  106. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/platform-profiles/opencode.yaml.tmpl +49 -0
  107. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/project-state.md.tmpl +34 -0
  108. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/skill.md.tmpl +38 -0
  109. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/sub-agent-protocols.md.tmpl +61 -0
  110. cataforge-0.1.0/src/cataforge/_assets/cataforge_scaffold/skills/workflow-framework-generator/templates/workflow.yaml.tmpl +46 -0
  111. cataforge-0.1.0/src/cataforge/agent/__init__.py +1 -0
  112. cataforge-0.1.0/src/cataforge/agent/manager.py +68 -0
  113. cataforge-0.1.0/src/cataforge/agent/result_parser.py +95 -0
  114. cataforge-0.1.0/src/cataforge/agent/translator.py +47 -0
  115. cataforge-0.1.0/src/cataforge/cli/__init__.py +1 -0
  116. cataforge-0.1.0/src/cataforge/cli/agent_cmd.py +42 -0
  117. cataforge-0.1.0/src/cataforge/cli/deploy_cmd.py +72 -0
  118. cataforge-0.1.0/src/cataforge/cli/docs_cmd.py +42 -0
  119. cataforge-0.1.0/src/cataforge/cli/doctor_cmd.py +80 -0
  120. cataforge-0.1.0/src/cataforge/cli/hook_cmd.py +48 -0
  121. cataforge-0.1.0/src/cataforge/cli/main.py +53 -0
  122. cataforge-0.1.0/src/cataforge/cli/mcp_cmd.py +71 -0
  123. cataforge-0.1.0/src/cataforge/cli/penpot_cmd.py +75 -0
  124. cataforge-0.1.0/src/cataforge/cli/plugin_cmd.py +56 -0
  125. cataforge-0.1.0/src/cataforge/cli/setup_cmd.py +112 -0
  126. cataforge-0.1.0/src/cataforge/cli/skill_cmd.py +48 -0
  127. cataforge-0.1.0/src/cataforge/cli/stubs.py +36 -0
  128. cataforge-0.1.0/src/cataforge/cli/upgrade_cmd.py +59 -0
  129. cataforge-0.1.0/src/cataforge/core/__init__.py +1 -0
  130. cataforge-0.1.0/src/cataforge/core/config.py +106 -0
  131. cataforge-0.1.0/src/cataforge/core/events.py +98 -0
  132. cataforge-0.1.0/src/cataforge/core/paths.py +112 -0
  133. cataforge-0.1.0/src/cataforge/core/scaffold.py +64 -0
  134. cataforge-0.1.0/src/cataforge/core/types.py +167 -0
  135. cataforge-0.1.0/src/cataforge/deploy/__init__.py +1 -0
  136. cataforge-0.1.0/src/cataforge/deploy/deployer.py +160 -0
  137. cataforge-0.1.0/src/cataforge/deploy/template.py +70 -0
  138. cataforge-0.1.0/src/cataforge/docs/__init__.py +1 -0
  139. cataforge-0.1.0/src/cataforge/docs/indexer.py +268 -0
  140. cataforge-0.1.0/src/cataforge/docs/loader.py +394 -0
  141. cataforge-0.1.0/src/cataforge/hook/__init__.py +1 -0
  142. cataforge-0.1.0/src/cataforge/hook/base.py +196 -0
  143. cataforge-0.1.0/src/cataforge/hook/bridge.py +170 -0
  144. cataforge-0.1.0/src/cataforge/hook/scripts/__init__.py +1 -0
  145. cataforge-0.1.0/src/cataforge/hook/scripts/detect_correction.py +130 -0
  146. cataforge-0.1.0/src/cataforge/hook/scripts/guard_dangerous.py +75 -0
  147. cataforge-0.1.0/src/cataforge/hook/scripts/lint_format.py +106 -0
  148. cataforge-0.1.0/src/cataforge/hook/scripts/log_agent_dispatch.py +46 -0
  149. cataforge-0.1.0/src/cataforge/hook/scripts/notify_done.py +27 -0
  150. cataforge-0.1.0/src/cataforge/hook/scripts/notify_permission.py +28 -0
  151. cataforge-0.1.0/src/cataforge/hook/scripts/notify_util.py +79 -0
  152. cataforge-0.1.0/src/cataforge/hook/scripts/session_context.py +34 -0
  153. cataforge-0.1.0/src/cataforge/hook/scripts/validate_agent_result.py +73 -0
  154. cataforge-0.1.0/src/cataforge/integrations/__init__.py +1 -0
  155. cataforge-0.1.0/src/cataforge/integrations/penpot.py +605 -0
  156. cataforge-0.1.0/src/cataforge/mcp/__init__.py +1 -0
  157. cataforge-0.1.0/src/cataforge/mcp/lifecycle.py +118 -0
  158. cataforge-0.1.0/src/cataforge/mcp/registry.py +114 -0
  159. cataforge-0.1.0/src/cataforge/platform/__init__.py +8 -0
  160. cataforge-0.1.0/src/cataforge/platform/base.py +330 -0
  161. cataforge-0.1.0/src/cataforge/platform/claude_code.py +42 -0
  162. cataforge-0.1.0/src/cataforge/platform/codex.py +119 -0
  163. cataforge-0.1.0/src/cataforge/platform/conformance.py +120 -0
  164. cataforge-0.1.0/src/cataforge/platform/cursor.py +106 -0
  165. cataforge-0.1.0/src/cataforge/platform/helpers.py +235 -0
  166. cataforge-0.1.0/src/cataforge/platform/opencode.py +100 -0
  167. cataforge-0.1.0/src/cataforge/platform/registry.py +122 -0
  168. cataforge-0.1.0/src/cataforge/plugin/__init__.py +1 -0
  169. cataforge-0.1.0/src/cataforge/plugin/loader.py +77 -0
  170. cataforge-0.1.0/src/cataforge/py.typed +0 -0
  171. cataforge-0.1.0/src/cataforge/schema/__init__.py +13 -0
  172. cataforge-0.1.0/src/cataforge/schema/framework.py +38 -0
  173. cataforge-0.1.0/src/cataforge/schema/mcp_spec.py +72 -0
  174. cataforge-0.1.0/src/cataforge/schema/plugin_manifest.py +59 -0
  175. cataforge-0.1.0/src/cataforge/skill/__init__.py +1 -0
  176. cataforge-0.1.0/src/cataforge/skill/builtins/__init__.py +1 -0
  177. cataforge-0.1.0/src/cataforge/skill/builtins/code_review/__init__.py +1 -0
  178. cataforge-0.1.0/src/cataforge/skill/builtins/code_review/code_lint.py +172 -0
  179. cataforge-0.1.0/src/cataforge/skill/builtins/dep_analysis/__init__.py +1 -0
  180. cataforge-0.1.0/src/cataforge/skill/builtins/dep_analysis/dep_analysis.py +223 -0
  181. cataforge-0.1.0/src/cataforge/skill/builtins/doc_review/__init__.py +1 -0
  182. cataforge-0.1.0/src/cataforge/skill/builtins/doc_review/checker.py +293 -0
  183. cataforge-0.1.0/src/cataforge/skill/builtins/doc_review/constants.py +27 -0
  184. cataforge-0.1.0/src/cataforge/skill/builtins/doc_review/doc_check.py +11 -0
  185. cataforge-0.1.0/src/cataforge/skill/builtins/doc_review/template_registry.py +134 -0
  186. cataforge-0.1.0/src/cataforge/skill/builtins/doc_review/typed_checks.py +309 -0
  187. cataforge-0.1.0/src/cataforge/skill/builtins/sprint_review/__init__.py +1 -0
  188. cataforge-0.1.0/src/cataforge/skill/builtins/sprint_review/sprint_check.py +316 -0
  189. cataforge-0.1.0/src/cataforge/skill/loader.py +172 -0
  190. cataforge-0.1.0/src/cataforge/skill/runner.py +86 -0
  191. cataforge-0.1.0/src/cataforge/utils/__init__.py +1 -0
  192. cataforge-0.1.0/src/cataforge/utils/common.py +182 -0
  193. cataforge-0.1.0/src/cataforge/utils/docker_util.py +259 -0
  194. cataforge-0.1.0/src/cataforge/utils/frontmatter.py +41 -0
  195. cataforge-0.1.0/src/cataforge/utils/md_parse.py +36 -0
  196. cataforge-0.1.0/src/cataforge/utils/patterns.py +28 -0
  197. cataforge-0.1.0/src/cataforge/utils/yaml_parser.py +31 -0
  198. cataforge-0.1.0/tests/__init__.py +0 -0
  199. cataforge-0.1.0/tests/agent/__init__.py +0 -0
  200. cataforge-0.1.0/tests/agent/conftest.py +12 -0
  201. cataforge-0.1.0/tests/agent/test_translator.py +84 -0
  202. cataforge-0.1.0/tests/cli/__init__.py +0 -0
  203. cataforge-0.1.0/tests/cli/test_cli_smoke.py +109 -0
  204. cataforge-0.1.0/tests/core/__init__.py +0 -0
  205. cataforge-0.1.0/tests/core/test_config.py +102 -0
  206. cataforge-0.1.0/tests/core/test_events.py +58 -0
  207. cataforge-0.1.0/tests/deploy/__init__.py +0 -0
  208. cataforge-0.1.0/tests/deploy/test_deployer.py +166 -0
  209. cataforge-0.1.0/tests/hook/__init__.py +0 -0
  210. cataforge-0.1.0/tests/hook/conftest.py +12 -0
  211. cataforge-0.1.0/tests/hook/test_bridge.py +139 -0
  212. cataforge-0.1.0/tests/hook/test_bridge_skips.py +128 -0
  213. cataforge-0.1.0/tests/mcp/__init__.py +0 -0
  214. cataforge-0.1.0/tests/mcp/test_registry.py +123 -0
  215. cataforge-0.1.0/tests/platform/__init__.py +0 -0
  216. cataforge-0.1.0/tests/platform/conftest.py +12 -0
  217. cataforge-0.1.0/tests/platform/test_adapter.py +385 -0
  218. cataforge-0.1.0/tests/platform/test_conformance.py +187 -0
  219. cataforge-0.1.0/tests/plugin/__init__.py +0 -0
  220. cataforge-0.1.0/tests/plugin/test_loader.py +87 -0
  221. cataforge-0.1.0/tests/schema/__init__.py +0 -0
  222. cataforge-0.1.0/tests/schema/test_frontmatter.py +38 -0
  223. cataforge-0.1.0/tests/skill/__init__.py +0 -0
  224. cataforge-0.1.0/tests/skill/test_runner.py +116 -0
@@ -0,0 +1,167 @@
1
+ # ==============================================================================
2
+ # CataForge .gitignore
3
+ # ==============================================================================
4
+
5
+ # ==============================================================================
6
+ # Node.js / npm
7
+ # ==============================================================================
8
+ node_modules/
9
+ npm-debug.log*
10
+ yarn-debug.log*
11
+ yarn-error.log*
12
+ .npm
13
+ package-lock.json
14
+ yarn.lock
15
+ pnpm-lock.yaml
16
+
17
+ # ==============================================================================
18
+ # Python
19
+ # ==============================================================================
20
+ __pycache__/
21
+ *.py[cod]
22
+ *$py.class
23
+ *.so
24
+ .Python
25
+ build/
26
+ develop-eggs/
27
+ dist/
28
+ downloads/
29
+ eggs/
30
+ .eggs/
31
+ lib/
32
+ lib64/
33
+ parts/
34
+ sdist/
35
+ var/
36
+ wheels/
37
+ *.egg-info/
38
+ .installed.cfg
39
+ *.egg
40
+ MANIFEST
41
+ .pytest_cache/
42
+ .coverage
43
+ htmlcov/
44
+ .tox/
45
+ .venv/
46
+ venv/
47
+ ENV/
48
+ env/
49
+ .venv
50
+
51
+ # ==============================================================================
52
+ # IDE & Editor
53
+ # ==============================================================================
54
+ .vscode/
55
+ .idea/
56
+ *.swp
57
+ *.swo
58
+ *~
59
+ .DS_Store
60
+ Thumbs.db
61
+ .sublime-project
62
+ .sublime-workspace
63
+ *.code-workspace
64
+
65
+ # ==============================================================================
66
+ # Claude Code - Local & Temporary
67
+ # ==============================================================================
68
+ .claude/settings.local.json
69
+ .claude/worktrees/
70
+ .claude/.temp/
71
+ .claude/logs/
72
+ .claude/backup-*/
73
+
74
+ # ==============================================================================
75
+ # CataForge - Deploy generated & local state
76
+ # ==============================================================================
77
+ .claude/agents/
78
+ .claude/rules/
79
+ .cursor/agents/
80
+ .cursor/rules/
81
+ .cursor/hooks.json
82
+ .codex/config.toml
83
+ .opencode/agents/
84
+ .cataforge/.deploy-state
85
+ .cataforge/.mcp-state/
86
+ .cataforge/**/__pycache__/
87
+ .ruff_cache/
88
+ CLAUDE.md
89
+ AGENTS.md
90
+
91
+ # ==============================================================================
92
+ # Build & Output
93
+ # ==============================================================================
94
+ dist/
95
+ build/
96
+ out/
97
+ .next/
98
+ .nuxt/
99
+ .vuepress/dist/
100
+ .cache/
101
+ .parcel-cache
102
+ .eslintcache
103
+ .stylelintcache
104
+
105
+ # ==============================================================================
106
+ # Environment & Secrets
107
+ # ==============================================================================
108
+ .env
109
+ .env.local
110
+ .env.*.local
111
+ *.pem
112
+ *.key
113
+ .credentials/
114
+ secrets/
115
+
116
+ # ==============================================================================
117
+ # OS Files
118
+ # ==============================================================================
119
+ .DS_Store
120
+ .AppleDouble
121
+ .LSOverride
122
+ Thumbs.db
123
+ ehthumbs.db
124
+ Desktop.ini
125
+ $RECYCLE.BIN/
126
+
127
+ # ==============================================================================
128
+ # Runtime & Temporary
129
+ # ==============================================================================
130
+ *.log
131
+ logs/
132
+ tmp/
133
+ temp/
134
+ *.tmp
135
+ *.bak
136
+ *.swp
137
+ .cache/
138
+ *.pid
139
+ *.seed
140
+ *.pid.lock
141
+
142
+ # ==============================================================================
143
+ # Testing
144
+ # ==============================================================================
145
+ coverage/
146
+ .nyc_output/
147
+ junit.xml
148
+ test-results/
149
+
150
+ # ==============================================================================
151
+ # Docker
152
+ # ==============================================================================
153
+ docker-compose.override.yml
154
+
155
+ # ==============================================================================
156
+ # Generated Documentation (except NAV-INDEX)
157
+ # ==============================================================================
158
+ docs/**/*.html
159
+ docs/**/*.pdf
160
+ docs/**/node_modules/
161
+ docs/.doc-index.json
162
+
163
+ # ==============================================================================
164
+ # OS Specific
165
+ # ==============================================================================
166
+ .vscode-test/
167
+ *.code-workspace
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 huancheng.lin
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,317 @@
1
+ Metadata-Version: 2.4
2
+ Name: cataforge
3
+ Version: 0.1.0
4
+ Summary: AI Programming: Agent + Skill Workflow Framework — one .cataforge/ spec, many IDEs (Claude Code, Cursor, Codex, OpenCode).
5
+ Project-URL: Homepage, https://github.com/lync-cyber/CataForge
6
+ Project-URL: Repository, https://github.com/lync-cyber/CataForge
7
+ Project-URL: Issues, https://github.com/lync-cyber/CataForge/issues
8
+ Project-URL: Documentation, https://github.com/lync-cyber/CataForge/tree/main/docs
9
+ Project-URL: Changelog, https://github.com/lync-cyber/CataForge/releases
10
+ Author-email: "huancheng.lin" <huancheng.lin@foxmail.com>
11
+ Maintainer-email: "huancheng.lin" <huancheng.lin@foxmail.com>
12
+ License-Expression: MIT
13
+ License-File: LICENSE
14
+ Keywords: agent,ai,claude-code,codex,cursor,mcp,opencode,skill,tdd,workflow
15
+ Classifier: Development Status :: 3 - Alpha
16
+ Classifier: Environment :: Console
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Natural Language :: Chinese (Simplified)
19
+ Classifier: Natural Language :: English
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Programming Language :: Python
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3 :: Only
24
+ Classifier: Programming Language :: Python :: 3.10
25
+ Classifier: Programming Language :: Python :: 3.11
26
+ Classifier: Programming Language :: Python :: 3.12
27
+ Classifier: Programming Language :: Python :: 3.13
28
+ Classifier: Topic :: Software Development
29
+ Classifier: Topic :: Software Development :: Code Generators
30
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
31
+ Requires-Python: >=3.10
32
+ Requires-Dist: click>=8.0
33
+ Requires-Dist: markdown-it-py>=3.0
34
+ Requires-Dist: pydantic>=2.0
35
+ Requires-Dist: pyyaml>=6.0
36
+ Provides-Extra: all
37
+ Requires-Dist: docker>=7.0; extra == 'all'
38
+ Requires-Dist: mcp>=1.0; extra == 'all'
39
+ Provides-Extra: dev
40
+ Requires-Dist: build>=1.2; extra == 'dev'
41
+ Requires-Dist: mypy>=1.10; extra == 'dev'
42
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
43
+ Requires-Dist: pytest>=8.0; extra == 'dev'
44
+ Requires-Dist: ruff>=0.4; extra == 'dev'
45
+ Requires-Dist: twine>=5.0; extra == 'dev'
46
+ Provides-Extra: docker
47
+ Requires-Dist: docker>=7.0; extra == 'docker'
48
+ Provides-Extra: mcp
49
+ Requires-Dist: mcp>=1.0; extra == 'mcp'
50
+ Provides-Extra: penpot
51
+ Requires-Dist: docker>=7.0; extra == 'penpot'
52
+ Description-Content-Type: text/markdown
53
+
54
+ # CataForge
55
+
56
+ 一个面向 AI 编程工作流的统一框架:用一套 `.cataforge/` 规范,同时驱动 Agent、Skill、Hook、MCP 与多 IDE 适配。
57
+
58
+ > **当前版本:0.1.0(初始版本)**
59
+
60
+ ## 项目概述
61
+
62
+ `CataForge` 解决的是"同一套 AI 工程流程在不同 IDE/Agent 运行时重复建设、配置分裂、行为不一致"的问题。
63
+
64
+ 核心价值:
65
+ - 统一抽象:把平台差异封装到 `PlatformAdapter`,核心运行时不直接耦合某个 IDE。
66
+ - 统一配置:以 `.cataforge/framework.json` 作为单一配置源,避免多处配置漂移。
67
+ - 统一交付:通过 `deploy` 将 agents/rules/hooks/MCP 注入目标平台。
68
+ - 中文工程友好:内置规则与流程文档对中文团队和中文提示词场景友好。
69
+
70
+ 适用场景:
71
+ - 需要在 `Claude Code`、`Cursor`、`CodeX`、`OpenCode` 间迁移/共用工作流的团队。
72
+ - 有"子 agent 调度 + 可复用 skill + 安全钩子 + MCP 服务"落地需求的项目。
73
+ - 希望将 AI 协作流程产品化、可审计、可验证的开源项目。
74
+
75
+ ## 核心特性(Features)
76
+
77
+ - **多平台适配层**:统一能力 ID,按平台映射原生工具名与事件模型(Claude Code / Cursor / CodeX / OpenCode)。
78
+ - **模块化部署**:`deploy` 一次执行 agent/rule/hook/降级策略的完整投放。
79
+ - **13 个专业 Agent**:覆盖产品经理、架构师、UI 设计师、技术主管、TDD 三阶段执行者、评审员、QA、DevOps 等角色。
80
+ - **23 个可复用 Skill**:涵盖文档生成、代码审查、TDD 引擎、Sprint 回顾、变更守卫、设计工具集成等领域。
81
+ - **TDD 驱动开发**:内置 RED→GREEN→REFACTOR 三阶段开发引擎,支持 standard/light 两种模式。
82
+ - **多层质量门禁**:文档双层审计(脚本 + AI)、代码双层审查(lint + AI)、Sprint 完成度检查。
83
+ - **Skill 体系**:支持项目本地技能与内置技能共存,支持脚本型与说明型技能。
84
+ - **MCP 管理**:支持 YAML 声明式注册、生命周期控制、平台配置注入。
85
+ - **Hook 桥接**:平台支持原生 hook 时直接接入,不支持时自动降级为规则注入/提示检查。
86
+ - **三种执行模式**:standard(完整 7 阶段)、agile-lite(轻量敏捷)、agile-prototype(快速原型)。
87
+ - **学习系统**:On-Correction Learning 钩子 + 反思者 Agent 提取跨项目经验。
88
+ - **可测试**:核心模块含测试覆盖(当前仓库 `pytest` 通过 67 项用例)。
89
+
90
+ ## 架构设计(Architecture Overview)
91
+
92
+ 高层组件职责:
93
+ - `core`: 配置管理、项目路径、事件总线、核心类型定义。
94
+ - `platform`: 平台适配器(Claude Code / Cursor / CodeX / OpenCode)与一致性检查。
95
+ - `deploy`: 部署编排器,负责将规范化资产投放到目标平台。
96
+ - `agent`: agent 发现、校验、frontmatter 翻译、结果解析。
97
+ - `skill`: skill 发现、元数据加载与执行框架。
98
+ - `hook`: hooks.yaml 解析与平台 hook 配置桥接。
99
+ - `mcp`: MCP 服务注册与生命周期管理。
100
+ - `plugin`: 插件发现(entry points + 本地目录)、manifest 校验。
101
+ - `docs`: 文档索引与 doc-nav 段落加载。
102
+ - `integrations`: 外部工具集成(Penpot 设计工具)。
103
+ - `schema`: 数据模型校验(插件 manifest 等)。
104
+ - `utils`: 通用工具(frontmatter 解析、Markdown 处理、YAML、Docker 等)。
105
+ - `cli`: 统一命令入口。
106
+
107
+ 源码结构:
108
+
109
+ ```text
110
+ src/cataforge/
111
+ cli/ # setup/deploy/doctor/skill/mcp/hook/agent/... 命令
112
+ core/ # ConfigManager, ProjectPaths, EventBus, 核心类型
113
+ platform/ # PlatformAdapter + registry + conformance + 各平台实现
114
+ deploy/ # Deployer(统一发布编排)+ 模板渲染
115
+ agent/ # agent 发现/校验/格式翻译/结果解析
116
+ skill/ # skill 发现/加载/执行
117
+ hook/ # hooks.yaml 解析 -> 平台配置桥接 + 内置 hook 脚本
118
+ mcp/ # MCP 注册与生命周期管理
119
+ plugin/ # 插件发现(entry points + 本地目录)
120
+ docs/ # 文档索引与段落加载
121
+ integrations/ # Penpot 设计工具集成
122
+ schema/ # 数据模型校验
123
+ utils/ # frontmatter/markdown/yaml/docker 等通用工具
124
+ ```
125
+
126
+ 详细架构与工作流说明:[`docs/workflow.md`](./docs/workflow.md)
127
+
128
+ ## 快速开始(Quick Start)
129
+
130
+ ### 环境要求
131
+
132
+ - Python `>=3.10`
133
+ - 建议:`pip` / `uv`,以及 `venv`(或 `uv venv`)
134
+ - 可选外部工具:`ruff`, `npx`, `docker`, `git`
135
+
136
+ > CLI 入口已在启动时自动将 stdout/stderr 切换为 UTF-8,无需再手动设置 `PYTHONUTF8=1` 或 `chcp 65001`。
137
+
138
+ ### 安装步骤
139
+
140
+ 推荐使用 `uv`(更快、无需手动激活 venv):
141
+
142
+ ```bash
143
+ # 方式 A:uv tool(装成全局 CLI,推荐终端用户)
144
+ uv tool install .
145
+
146
+ # 方式 B:项目本地开发
147
+ uv venv && uv pip install -e ".[dev]"
148
+ ```
149
+
150
+ 或使用 `pip`:
151
+
152
+ ```bash
153
+ python -m venv .venv
154
+ source .venv/Scripts/activate # Windows (bash)
155
+ # source .venv/bin/activate # macOS/Linux
156
+ pip install -e ".[dev]"
157
+ ```
158
+
159
+ ### 最小可运行示例
160
+
161
+ 安装后直接使用 `cataforge` 命令:
162
+
163
+ ```bash
164
+ cataforge doctor
165
+ cataforge setup --platform cursor
166
+ cataforge deploy --check --platform cursor
167
+ ```
168
+
169
+ > 若未安装、仅想从源码直跑,可用 `python -m cataforge ...`(仍无需 `PYTHONUTF8=1`)。
170
+
171
+ 成功标志:
172
+ - `doctor` 输出 `Diagnostics complete.`
173
+ - `setup` 输出 `Setup complete.`
174
+ - `deploy --check` 输出 `Deploy complete.`
175
+
176
+ ## 文档(Documentation)
177
+
178
+ - 文档导航:[`docs/README.md`](./docs/README.md)
179
+ - Agent 与 Skill 清单:[`docs/agents-and-skills.md`](./docs/agents-and-skills.md)
180
+ - 架构与工作流说明:[`docs/workflow.md`](./docs/workflow.md)
181
+ - 手动验证指南:[`docs/manual-verification-guide.md`](./docs/manual-verification-guide.md)
182
+
183
+ ## 在不同 AI IDE 中使用
184
+
185
+ 以下为当前实现状态(来自平台 profile 与适配器逻辑):
186
+
187
+ ### Claude Code
188
+
189
+ - 原生支持:是(Agent、Hook、MCP 均可原生映射)
190
+ - 关键路径:`.claude/agents`、`CLAUDE.md`、`.mcp.json`
191
+ - 最小配置:
192
+
193
+ ```json
194
+ {
195
+ "runtime": {
196
+ "platform": "claude-code"
197
+ }
198
+ }
199
+ ```
200
+
201
+ ### Cursor
202
+
203
+ - 原生支持:大部分原生支持(`AskUserQuestion` 等能力会降级处理)
204
+ - 关键路径:`.cursor/agents`、`.cursor/hooks.json`、`.cursor/rules/*.mdc`、`.cursor/mcp.json`
205
+ - 适配点:规则会额外生成 Cursor MDC 格式文件
206
+ - 最小配置:
207
+
208
+ ```json
209
+ {
210
+ "runtime": {
211
+ "platform": "cursor"
212
+ }
213
+ }
214
+ ```
215
+
216
+ ### CodeX
217
+
218
+ - 原生支持:中等(以 `AGENTS.md` + `.codex/config.toml` 为主)
219
+ - 关键路径:`AGENTS.md`、`.codex/config.toml`
220
+ - 适配点:
221
+ - 指令文件按 Codex 原生体系输出为 `AGENTS.md`
222
+ - MCP 写入 `.codex/config.toml` 的 `mcp_servers`
223
+ - 最小配置:
224
+
225
+ ```json
226
+ {
227
+ "runtime": {
228
+ "platform": "codex"
229
+ }
230
+ }
231
+ ```
232
+
233
+ ### OpenCode
234
+
235
+ - 原生支持:中等(`.opencode` 目录 + `opencode.json`)
236
+ - 关键路径:`.opencode/agents/*.md`、`opencode.json`、`AGENTS.md`
237
+ - 适配点:hook 配置不可用时自动注入安全规则;`.claude` 路径仅作兼容后备
238
+ - 最小配置:
239
+
240
+ ```json
241
+ {
242
+ "runtime": {
243
+ "platform": "opencode"
244
+ }
245
+ }
246
+ ```
247
+
248
+ ## 使用示例(Usage)
249
+
250
+ ### 示例 1:列出并运行技能
251
+
252
+ 输入:
253
+
254
+ ```bash
255
+ PYTHONUTF8=1 PYTHONPATH=src python -m cataforge skill list
256
+ ```
257
+
258
+ 输出示例(节选):
259
+
260
+ ```text
261
+ agent-dispatch (instructional): agent-dispatch
262
+ code-review (instructional): code-review
263
+ sprint-review (instructional): sprint-review
264
+ ```
265
+
266
+ ### 示例 2:多平台干运行部署
267
+
268
+ 输入:
269
+
270
+ ```bash
271
+ PYTHONUTF8=1 PYTHONPATH=src python -m cataforge deploy --check --platform codex
272
+ ```
273
+
274
+ 输出示例(节选):
275
+
276
+ ```text
277
+ would write AGENTS.md ← PROJECT-STATE.md (platform=codex)
278
+ would merge mcp_servers.demo → ...\.codex\config.toml
279
+ Deploy complete.
280
+ ```
281
+
282
+ ## 目录结构(Project Structure)
283
+
284
+ ```text
285
+ CataForgeNext/
286
+ pyproject.toml # 包定义、依赖、脚本入口
287
+ src/cataforge/ # 框架源码(87 个 Python 模块,11 个子包)
288
+ tests/ # 自动化测试(67 项用例)
289
+ docs/ # 项目文档
290
+ .cataforge/
291
+ framework.json # 统一框架配置(单一来源)
292
+ PROJECT-STATE.md # 项目状态模板(编排器专属写入区)
293
+ agents/ # 13 个 Agent 定义(AGENT.md)
294
+ skills/ # 23 个 Skill 定义(SKILL.md)
295
+ hooks/hooks.yaml # 平台无关 hook 规范
296
+ rules/ # 通用规则与子代理协议
297
+ platforms/*/profile.yaml # 各平台能力映射与降级策略
298
+ ```
299
+
300
+ ## Roadmap / TODO
301
+
302
+ - 完善 `upgrade check/apply/verify` 的远程升级实现。
303
+ - 完成 `hook test`、`plugin install/remove` 的落地能力。
304
+ - 增强 MCP 持久化注册体验(CLI `register` 与声明式目录联动)。
305
+ - 提供更多官方平台 profile 与社区插件模板。
306
+
307
+ ## 开发与测试
308
+
309
+ ```bash
310
+ PYTHONUTF8=1 PYTHONPATH=src pytest -q
311
+ ```
312
+
313
+ 当前仓库基线:`67 passed`。
314
+
315
+ ## License
316
+
317
+ MIT