oh-my-customcodex 0.1.0

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 (351) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +327 -0
  3. package/dist/cli/index.js +32054 -0
  4. package/dist/index.js +5469 -0
  5. package/package.json +89 -0
  6. package/templates/.claude/agents/arch-documenter.md +38 -0
  7. package/templates/.claude/agents/arch-speckit-agent.md +66 -0
  8. package/templates/.claude/agents/be-django-expert.md +47 -0
  9. package/templates/.claude/agents/be-express-expert.md +31 -0
  10. package/templates/.claude/agents/be-fastapi-expert.md +45 -0
  11. package/templates/.claude/agents/be-go-backend-expert.md +45 -0
  12. package/templates/.claude/agents/be-nestjs-expert.md +29 -0
  13. package/templates/.claude/agents/be-springboot-expert.md +42 -0
  14. package/templates/.claude/agents/db-alembic-expert.md +73 -0
  15. package/templates/.claude/agents/db-postgres-expert.md +38 -0
  16. package/templates/.claude/agents/db-redis-expert.md +38 -0
  17. package/templates/.claude/agents/db-supabase-expert.md +37 -0
  18. package/templates/.claude/agents/de-airflow-expert.md +48 -0
  19. package/templates/.claude/agents/de-dbt-expert.md +36 -0
  20. package/templates/.claude/agents/de-kafka-expert.md +83 -0
  21. package/templates/.claude/agents/de-pipeline-expert.md +34 -0
  22. package/templates/.claude/agents/de-snowflake-expert.md +38 -0
  23. package/templates/.claude/agents/de-spark-expert.md +38 -0
  24. package/templates/.claude/agents/fe-design-expert.md +120 -0
  25. package/templates/.claude/agents/fe-flutter-agent.md +48 -0
  26. package/templates/.claude/agents/fe-svelte-agent.md +33 -0
  27. package/templates/.claude/agents/fe-vercel-agent.md +40 -0
  28. package/templates/.claude/agents/fe-vuejs-agent.md +34 -0
  29. package/templates/.claude/agents/infra-aws-expert.md +49 -0
  30. package/templates/.claude/agents/infra-docker-expert.md +49 -0
  31. package/templates/.claude/agents/lang-golang-expert.md +46 -0
  32. package/templates/.claude/agents/lang-java21-expert.md +42 -0
  33. package/templates/.claude/agents/lang-kotlin-expert.md +45 -0
  34. package/templates/.claude/agents/lang-python-expert.md +45 -0
  35. package/templates/.claude/agents/lang-rust-expert.md +45 -0
  36. package/templates/.claude/agents/lang-typescript-expert.md +45 -0
  37. package/templates/.claude/agents/mgr-claude-code-bible.md +62 -0
  38. package/templates/.claude/agents/mgr-creator.md +57 -0
  39. package/templates/.claude/agents/mgr-gitnerd.md +50 -0
  40. package/templates/.claude/agents/mgr-sauron.md +163 -0
  41. package/templates/.claude/agents/mgr-supplier.md +39 -0
  42. package/templates/.claude/agents/mgr-updater.md +40 -0
  43. package/templates/.claude/agents/qa-engineer.md +36 -0
  44. package/templates/.claude/agents/qa-planner.md +78 -0
  45. package/templates/.claude/agents/qa-writer.md +32 -0
  46. package/templates/.claude/agents/sec-codeql-expert.md +56 -0
  47. package/templates/.claude/agents/slack-cli-expert.md +98 -0
  48. package/templates/.claude/agents/souls/lang-golang-expert.soul.md +21 -0
  49. package/templates/.claude/agents/sys-memory-keeper.md +123 -0
  50. package/templates/.claude/agents/sys-naggy.md +76 -0
  51. package/templates/.claude/agents/tool-bun-expert.md +26 -0
  52. package/templates/.claude/agents/tool-npm-expert.md +31 -0
  53. package/templates/.claude/agents/tool-optimizer.md +37 -0
  54. package/templates/.claude/agents/wiki-curator.md +72 -0
  55. package/templates/.claude/config/required-plugins.json +30 -0
  56. package/templates/.claude/contexts/dev.md +20 -0
  57. package/templates/.claude/contexts/ecomode.md +110 -0
  58. package/templates/.claude/contexts/index.yaml +41 -0
  59. package/templates/.claude/contexts/research.md +28 -0
  60. package/templates/.claude/contexts/review.md +23 -0
  61. package/templates/.claude/hooks/hooks.json +533 -0
  62. package/templates/.claude/hooks/scripts/adaptive-harness-scan.sh +45 -0
  63. package/templates/.claude/hooks/scripts/agent-start-recorder.sh +40 -0
  64. package/templates/.claude/hooks/scripts/agent-teams-advisor.sh +76 -0
  65. package/templates/.claude/hooks/scripts/audit-log.sh +64 -0
  66. package/templates/.claude/hooks/scripts/auto-continue-guard.sh +33 -0
  67. package/templates/.claude/hooks/scripts/content-hash-validator.sh +75 -0
  68. package/templates/.claude/hooks/scripts/context-budget-advisor.sh +107 -0
  69. package/templates/.claude/hooks/scripts/cost-cap-advisor.sh +71 -0
  70. package/templates/.claude/hooks/scripts/cwd-change-detector.sh +36 -0
  71. package/templates/.claude/hooks/scripts/eval-core-batch-save.sh +46 -0
  72. package/templates/.claude/hooks/scripts/feedback-collector.sh +92 -0
  73. package/templates/.claude/hooks/scripts/file-change-validator.sh +26 -0
  74. package/templates/.claude/hooks/scripts/git-delegation-guard.sh +57 -0
  75. package/templates/.claude/hooks/scripts/model-escalation-advisor.sh +106 -0
  76. package/templates/.claude/hooks/scripts/omcodex-auto-update.sh +4 -0
  77. package/templates/.claude/hooks/scripts/omcustom-auto-update.sh +177 -0
  78. package/templates/.claude/hooks/scripts/rtk-intercept.sh +77 -0
  79. package/templates/.claude/hooks/scripts/rule-deletion-guard.sh +60 -0
  80. package/templates/.claude/hooks/scripts/schema-validator.sh +106 -0
  81. package/templates/.claude/hooks/scripts/secret-filter.sh +100 -0
  82. package/templates/.claude/hooks/scripts/session-autofix-prompt.sh +34 -0
  83. package/templates/.claude/hooks/scripts/session-autofix.sh +146 -0
  84. package/templates/.claude/hooks/scripts/session-env-check.sh +254 -0
  85. package/templates/.claude/hooks/scripts/skill-extractor-analyzer.sh +49 -0
  86. package/templates/.claude/hooks/scripts/stage-blocker.sh +16 -0
  87. package/templates/.claude/hooks/scripts/stale-todo-scanner.sh +91 -0
  88. package/templates/.claude/hooks/scripts/stall-detection-advisor.sh +112 -0
  89. package/templates/.claude/hooks/scripts/stop-console-audit.sh +46 -0
  90. package/templates/.claude/hooks/scripts/stuck-detector.sh +199 -0
  91. package/templates/.claude/hooks/scripts/task-outcome-recorder.sh +119 -0
  92. package/templates/.claude/hooks/scripts/task-state-precompact.sh +58 -0
  93. package/templates/.claude/hooks/scripts/user-prompt-preprocessor.sh +32 -0
  94. package/templates/.claude/hooks/skill-count-reminder.sh +34 -0
  95. package/templates/.claude/install-hooks.sh +100 -0
  96. package/templates/.claude/ontology/agents.yaml +546 -0
  97. package/templates/.claude/ontology/graphs/agent-skill.json +102 -0
  98. package/templates/.claude/ontology/graphs/full-graph.json +629 -0
  99. package/templates/.claude/ontology/graphs/routing.json +112 -0
  100. package/templates/.claude/ontology/graphs/skill-rule.json +78 -0
  101. package/templates/.claude/ontology/rules.yaml +251 -0
  102. package/templates/.claude/ontology/schema.yaml +144 -0
  103. package/templates/.claude/ontology/skills.yaml +575 -0
  104. package/templates/.claude/rules/MAY-optimization.md +42 -0
  105. package/templates/.claude/rules/MUST-agent-design.md +340 -0
  106. package/templates/.claude/rules/MUST-agent-identification.md +77 -0
  107. package/templates/.claude/rules/MUST-agent-teams.md +293 -0
  108. package/templates/.claude/rules/MUST-completion-verification.md +112 -0
  109. package/templates/.claude/rules/MUST-continuous-improvement.md +69 -0
  110. package/templates/.claude/rules/MUST-enforcement-policy.md +50 -0
  111. package/templates/.claude/rules/MUST-intent-transparency.md +74 -0
  112. package/templates/.claude/rules/MUST-language-policy.md +28 -0
  113. package/templates/.claude/rules/MUST-orchestrator-coordination.md +399 -0
  114. package/templates/.claude/rules/MUST-parallel-execution.md +184 -0
  115. package/templates/.claude/rules/MUST-permissions.md +32 -0
  116. package/templates/.claude/rules/MUST-safety.md +23 -0
  117. package/templates/.claude/rules/MUST-sync-verification.md +145 -0
  118. package/templates/.claude/rules/MUST-tool-identification.md +97 -0
  119. package/templates/.claude/rules/SHOULD-ecomode.md +123 -0
  120. package/templates/.claude/rules/SHOULD-error-handling.md +33 -0
  121. package/templates/.claude/rules/SHOULD-hud-statusline.md +51 -0
  122. package/templates/.claude/rules/SHOULD-interaction.md +77 -0
  123. package/templates/.claude/rules/SHOULD-memory-integration.md +371 -0
  124. package/templates/.claude/rules/SHOULD-ontology-rag-routing.md +49 -0
  125. package/templates/.claude/rules/SHOULD-wiki-sync.md +73 -0
  126. package/templates/.claude/rules/index.yaml +141 -0
  127. package/templates/.claude/schemas/tool-inputs.json +62 -0
  128. package/templates/.claude/skills/action-validator/SKILL.md +89 -0
  129. package/templates/.claude/skills/adaptive-harness/SKILL.md +335 -0
  130. package/templates/.claude/skills/adversarial-review/SKILL.md +80 -0
  131. package/templates/.claude/skills/agora/SKILL.md +194 -0
  132. package/templates/.claude/skills/airflow-best-practices/SKILL.md +94 -0
  133. package/templates/.claude/skills/alembic-best-practices/SKILL.md +295 -0
  134. package/templates/.claude/skills/ambiguity-gate/SKILL.md +94 -0
  135. package/templates/.claude/skills/analysis/SKILL.md +223 -0
  136. package/templates/.claude/skills/audit-agents/SKILL.md +118 -0
  137. package/templates/.claude/skills/aws-best-practices/SKILL.md +281 -0
  138. package/templates/.claude/skills/claude-code-bible/SKILL.md +93 -0
  139. package/templates/.claude/skills/claude-code-bible/scripts/fetch-docs.js +244 -0
  140. package/templates/.claude/skills/claude-native/SKILL.md +215 -0
  141. package/templates/.claude/skills/codex-exec/SKILL.md +206 -0
  142. package/templates/.claude/skills/codex-exec/scripts/codex-wrapper.cjs +430 -0
  143. package/templates/.claude/skills/create-agent/SKILL.md +94 -0
  144. package/templates/.claude/skills/cve-triage/SKILL.md +91 -0
  145. package/templates/.claude/skills/dag-orchestration/SKILL.md +201 -0
  146. package/templates/.claude/skills/dbt-best-practices/SKILL.md +55 -0
  147. package/templates/.claude/skills/de-lead-routing/SKILL.md +230 -0
  148. package/templates/.claude/skills/deep-plan/SKILL.md +344 -0
  149. package/templates/.claude/skills/deep-verify/SKILL.md +111 -0
  150. package/templates/.claude/skills/dev-lead-routing/SKILL.md +161 -0
  151. package/templates/.claude/skills/dev-refactor/SKILL.md +234 -0
  152. package/templates/.claude/skills/dev-review/SKILL.md +172 -0
  153. package/templates/.claude/skills/django-best-practices/SKILL.md +334 -0
  154. package/templates/.claude/skills/docker-best-practices/SKILL.md +276 -0
  155. package/templates/.claude/skills/evaluator-optimizer/SKILL.md +421 -0
  156. package/templates/.claude/skills/fastapi-best-practices/SKILL.md +271 -0
  157. package/templates/.claude/skills/fix-refs/SKILL.md +109 -0
  158. package/templates/.claude/skills/flutter-best-practices/SKILL.md +325 -0
  159. package/templates/.claude/skills/gemini-exec/SKILL.md +215 -0
  160. package/templates/.claude/skills/gemini-exec/scripts/gemini-wrapper.cjs +485 -0
  161. package/templates/.claude/skills/go-backend-best-practices/SKILL.md +135 -0
  162. package/templates/.claude/skills/go-best-practices/SKILL.md +204 -0
  163. package/templates/.claude/skills/hada-scout/SKILL.md +92 -0
  164. package/templates/.claude/skills/harness-eval/SKILL.md +95 -0
  165. package/templates/.claude/skills/harness-synthesizer/SKILL.md +145 -0
  166. package/templates/.claude/skills/help/SKILL.md +127 -0
  167. package/templates/.claude/skills/idea/SKILL.md +88 -0
  168. package/templates/.claude/skills/impeccable-design/SKILL.md +173 -0
  169. package/templates/.claude/skills/intent-detection/SKILL.md +293 -0
  170. package/templates/.claude/skills/intent-detection/patterns/agent-triggers.yaml +438 -0
  171. package/templates/.claude/skills/java21-best-practices/SKILL.md +190 -0
  172. package/templates/.claude/skills/jinja2-prompts/SKILL.md +86 -0
  173. package/templates/.claude/skills/kafka-best-practices/SKILL.md +53 -0
  174. package/templates/.claude/skills/kotlin-best-practices/SKILL.md +257 -0
  175. package/templates/.claude/skills/lists/SKILL.md +80 -0
  176. package/templates/.claude/skills/memory-management/SKILL.md +196 -0
  177. package/templates/.claude/skills/memory-recall/SKILL.md +172 -0
  178. package/templates/.claude/skills/memory-save/SKILL.md +128 -0
  179. package/templates/.claude/skills/model-escalation/SKILL.md +62 -0
  180. package/templates/.claude/skills/monitoring-setup/SKILL.md +215 -0
  181. package/templates/.claude/skills/multi-model-verification/SKILL.md +130 -0
  182. package/templates/.claude/skills/npm-audit/SKILL.md +74 -0
  183. package/templates/.claude/skills/npm-publish/SKILL.md +65 -0
  184. package/templates/.claude/skills/npm-version/SKILL.md +104 -0
  185. package/templates/.claude/skills/omcodex-auto-improve/SKILL.md +136 -0
  186. package/templates/.claude/skills/omcodex-feedback/SKILL.md +205 -0
  187. package/templates/.claude/skills/omcodex-improve-report/SKILL.md +65 -0
  188. package/templates/.claude/skills/omcodex-loop/SKILL.md +45 -0
  189. package/templates/.claude/skills/omcodex-release-notes/SKILL.md +117 -0
  190. package/templates/.claude/skills/omcodex-takeover/SKILL.md +115 -0
  191. package/templates/.claude/skills/omcodex-web/SKILL.md +95 -0
  192. package/templates/.claude/skills/optimize-analyze/SKILL.md +57 -0
  193. package/templates/.claude/skills/optimize-bundle/SKILL.md +69 -0
  194. package/templates/.claude/skills/optimize-report/SKILL.md +76 -0
  195. package/templates/.claude/skills/peer-messaging/SKILL.md +59 -0
  196. package/templates/.claude/skills/pipeline/SKILL.md +103 -0
  197. package/templates/.claude/skills/pipeline-architecture-patterns/SKILL.md +84 -0
  198. package/templates/.claude/skills/pipeline-guards/SKILL.md +173 -0
  199. package/templates/.claude/skills/post-release-followup/SKILL.md +134 -0
  200. package/templates/.claude/skills/postgres-best-practices/SKILL.md +67 -0
  201. package/templates/.claude/skills/pr-auto-improve/SKILL.md +129 -0
  202. package/templates/.claude/skills/professor-triage/SKILL.md +321 -0
  203. package/templates/.claude/skills/python-best-practices/SKILL.md +223 -0
  204. package/templates/.claude/skills/qa-lead-routing/SKILL.md +104 -0
  205. package/templates/.claude/skills/react-best-practices/SKILL.md +102 -0
  206. package/templates/.claude/skills/reasoning-sandwich/SKILL.md +64 -0
  207. package/templates/.claude/skills/redis-best-practices/SKILL.md +84 -0
  208. package/templates/.claude/skills/release-plan/SKILL.md +207 -0
  209. package/templates/.claude/skills/research/SKILL.md +493 -0
  210. package/templates/.claude/skills/result-aggregation/SKILL.md +165 -0
  211. package/templates/.claude/skills/rtk-exec/SKILL.md +199 -0
  212. package/templates/.claude/skills/rtk-exec/scripts/rtk-wrapper.cjs +377 -0
  213. package/templates/.claude/skills/rust-best-practices/SKILL.md +268 -0
  214. package/templates/.claude/skills/sauron-watch/SKILL.md +239 -0
  215. package/templates/.claude/skills/scout/SKILL.md +250 -0
  216. package/templates/.claude/skills/sdd/SKILL.md +24 -0
  217. package/templates/.claude/skills/sdd-dev/SKILL.md +257 -0
  218. package/templates/.claude/skills/sdd-development/SKILL.md +24 -0
  219. package/templates/.claude/skills/secretary-routing/SKILL.md +132 -0
  220. package/templates/.claude/skills/skill-extractor/SKILL.md +155 -0
  221. package/templates/.claude/skills/skills-sh-search/SKILL.md +210 -0
  222. package/templates/.claude/skills/snowflake-best-practices/SKILL.md +66 -0
  223. package/templates/.claude/skills/spark-best-practices/SKILL.md +53 -0
  224. package/templates/.claude/skills/springboot-best-practices/SKILL.md +74 -0
  225. package/templates/.claude/skills/springboot-best-practices/examples/config-properties-example.java +22 -0
  226. package/templates/.claude/skills/springboot-best-practices/examples/controller-example.java +28 -0
  227. package/templates/.claude/skills/springboot-best-practices/examples/controller-test-example.java +33 -0
  228. package/templates/.claude/skills/springboot-best-practices/examples/entity-example.java +22 -0
  229. package/templates/.claude/skills/springboot-best-practices/examples/exception-handler-example.java +30 -0
  230. package/templates/.claude/skills/springboot-best-practices/examples/repository-example.java +17 -0
  231. package/templates/.claude/skills/springboot-best-practices/examples/repository-test-example.java +23 -0
  232. package/templates/.claude/skills/springboot-best-practices/examples/security-config-example.java +27 -0
  233. package/templates/.claude/skills/springboot-best-practices/examples/service-example.java +33 -0
  234. package/templates/.claude/skills/status/SKILL.md +155 -0
  235. package/templates/.claude/skills/structured-dev-cycle/SKILL.md +200 -0
  236. package/templates/.claude/skills/stuck-recovery/SKILL.md +80 -0
  237. package/templates/.claude/skills/supabase-postgres-best-practices/SKILL.md +100 -0
  238. package/templates/.claude/skills/systematic-debugging/SKILL.md +288 -0
  239. package/templates/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +278 -0
  240. package/templates/.claude/skills/systematic-debugging/condition-based-waiting.md +240 -0
  241. package/templates/.claude/skills/systematic-debugging/defense-in-depth.md +252 -0
  242. package/templates/.claude/skills/systematic-debugging/find-polluter.sh +147 -0
  243. package/templates/.claude/skills/systematic-debugging/root-cause-tracing.md +87 -0
  244. package/templates/.claude/skills/task-decomposition/SKILL.md +197 -0
  245. package/templates/.claude/skills/typescript-best-practices/SKILL.md +322 -0
  246. package/templates/.claude/skills/update-docs/SKILL.md +142 -0
  247. package/templates/.claude/skills/update-external/SKILL.md +169 -0
  248. package/templates/.claude/skills/vercel-deploy/SKILL.md +75 -0
  249. package/templates/.claude/skills/web-design-guidelines/SKILL.md +119 -0
  250. package/templates/.claude/skills/wiki/SKILL.md +426 -0
  251. package/templates/.claude/skills/wiki-rag/SKILL.md +154 -0
  252. package/templates/.claude/skills/worker-reviewer-pipeline/SKILL.md +165 -0
  253. package/templates/.claude/skills/writing-clearly-and-concisely/SKILL.md +66 -0
  254. package/templates/.claude/statusline.sh +380 -0
  255. package/templates/.claude/uninstall-hooks.sh +52 -0
  256. package/templates/.github/workflows/wiki-sync.yml +132 -0
  257. package/templates/AGENTS.md.en +255 -0
  258. package/templates/AGENTS.md.ko +255 -0
  259. package/templates/CLAUDE.md +263 -0
  260. package/templates/CLAUDE.md.en +256 -0
  261. package/templates/CLAUDE.md.ko +256 -0
  262. package/templates/deprecated-files.json +10 -0
  263. package/templates/guides/agents-md-quality/README.md +110 -0
  264. package/templates/guides/airflow/README.md +47 -0
  265. package/templates/guides/alembic/README.md +438 -0
  266. package/templates/guides/aws/common-patterns.md +169 -0
  267. package/templates/guides/aws/index.yaml +26 -0
  268. package/templates/guides/aws/well-architected.md +143 -0
  269. package/templates/guides/cc-token-saver/README.md +97 -0
  270. package/templates/guides/claude-code/01-overview.md +42 -0
  271. package/templates/guides/claude-code/03-tools.md +107 -0
  272. package/templates/guides/claude-code/04-agent-skills.md +90 -0
  273. package/templates/guides/claude-code/05-agent-sdk.md +129 -0
  274. package/templates/guides/claude-code/06-mcp.md +165 -0
  275. package/templates/guides/claude-code/07-prompt-engineering.md +100 -0
  276. package/templates/guides/claude-code/08-testing.md +56 -0
  277. package/templates/guides/claude-code/09-guardrails.md +78 -0
  278. package/templates/guides/claude-code/10-monitoring.md +87 -0
  279. package/templates/guides/claude-code/11-sub-agents.md +159 -0
  280. package/templates/guides/claude-code/12-workflow-patterns.md +182 -0
  281. package/templates/guides/claude-code/13-cli-flags.md +151 -0
  282. package/templates/guides/claude-code/index.yaml +61 -0
  283. package/templates/guides/dbt/README.md +32 -0
  284. package/templates/guides/django-best-practices/README.md +476 -0
  285. package/templates/guides/docker/compose-best-practices.md +284 -0
  286. package/templates/guides/docker/dockerfile-best-practices.md +262 -0
  287. package/templates/guides/docker/index.yaml +26 -0
  288. package/templates/guides/drizzle-orm/README.md +69 -0
  289. package/templates/guides/elements-of-style/elements-of-style.html +2609 -0
  290. package/templates/guides/fastapi/best-practices.md +232 -0
  291. package/templates/guides/fastapi/index.yaml +21 -0
  292. package/templates/guides/flutter/architecture.md +141 -0
  293. package/templates/guides/flutter/fundamentals.md +119 -0
  294. package/templates/guides/flutter/index.yaml +44 -0
  295. package/templates/guides/flutter/performance.md +119 -0
  296. package/templates/guides/flutter/security.md +120 -0
  297. package/templates/guides/flutter/state-management.md +144 -0
  298. package/templates/guides/flutter/testing.md +155 -0
  299. package/templates/guides/git-worktree-workflow/README.md +138 -0
  300. package/templates/guides/go-backend/index.yaml +26 -0
  301. package/templates/guides/go-backend/project-layout.md +243 -0
  302. package/templates/guides/go-backend/uber-style.md +212 -0
  303. package/templates/guides/golang/concurrency.md +282 -0
  304. package/templates/guides/golang/effective-go.md +309 -0
  305. package/templates/guides/golang/error-handling.md +250 -0
  306. package/templates/guides/golang/index.yaml +27 -0
  307. package/templates/guides/hook-data-flow/README.md +135 -0
  308. package/templates/guides/iceberg/README.md +49 -0
  309. package/templates/guides/impeccable-design/color-and-contrast.md +278 -0
  310. package/templates/guides/impeccable-design/index.yaml +12 -0
  311. package/templates/guides/impeccable-design/motion-design.md +390 -0
  312. package/templates/guides/impeccable-design/typography.md +386 -0
  313. package/templates/guides/impeccable-design/ux-writing.md +400 -0
  314. package/templates/guides/index.yaml +265 -0
  315. package/templates/guides/java21/index.yaml +29 -0
  316. package/templates/guides/java21/java-style-guide.md +248 -0
  317. package/templates/guides/java21/modern-java21.md +303 -0
  318. package/templates/guides/kafka/README.md +32 -0
  319. package/templates/guides/kotlin/coding-conventions.md +247 -0
  320. package/templates/guides/kotlin/idioms.md +234 -0
  321. package/templates/guides/kotlin/index.yaml +26 -0
  322. package/templates/guides/multi-model-routing/README.md +101 -0
  323. package/templates/guides/multi-provider-exec/README.md +83 -0
  324. package/templates/guides/postgres/README.md +58 -0
  325. package/templates/guides/python/index.yaml +26 -0
  326. package/templates/guides/python/pep8-style-guide.md +202 -0
  327. package/templates/guides/python/zen-of-python.md +79 -0
  328. package/templates/guides/redis/README.md +50 -0
  329. package/templates/guides/rust/error-handling.md +262 -0
  330. package/templates/guides/rust/index.yaml +26 -0
  331. package/templates/guides/rust/ownership.md +180 -0
  332. package/templates/guides/skill-bundle-design/README.md +106 -0
  333. package/templates/guides/slack-cli/README.md +145 -0
  334. package/templates/guides/snowflake/README.md +32 -0
  335. package/templates/guides/spark/README.md +32 -0
  336. package/templates/guides/springboot/best-practices.md +361 -0
  337. package/templates/guides/springboot/index.yaml +22 -0
  338. package/templates/guides/supabase-postgres/README.md +32 -0
  339. package/templates/guides/supabase-postgres/index.yaml +19 -0
  340. package/templates/guides/typescript/advanced-types.md +225 -0
  341. package/templates/guides/typescript/index.yaml +26 -0
  342. package/templates/guides/typescript/type-system.md +219 -0
  343. package/templates/guides/web-design/accessibility.md +66 -0
  344. package/templates/guides/web-design/index.yaml +20 -0
  345. package/templates/guides/web-design/performance.md +102 -0
  346. package/templates/guides/web-scraping/README.md +926 -0
  347. package/templates/guides/web-scraping/index.yaml +19 -0
  348. package/templates/guides/worktree-lifecycle/README.md +104 -0
  349. package/templates/index.yaml +18 -0
  350. package/templates/manifest.json +49 -0
  351. package/templates/workflows/auto-dev.yaml +46 -0
@@ -0,0 +1,321 @@
1
+ ---
2
+ name: professor-triage
3
+ description: Analyze GitHub issues against current codebase and perform automated triage with priority assessment
4
+ scope: harness
5
+ version: 2.1.0
6
+ user-invocable: true
7
+ effort: high
8
+ context: fork
9
+ argument-hint: "[issue-numbers...] [--label <label>] [--state <state>] [--since <date>]"
10
+ ---
11
+
12
+ # /professor-triage — Codebase-Driven Issue Triage
13
+
14
+ ## Purpose
15
+
16
+ Analyzes GitHub issues directly against the current codebase. For each issue, searches relevant code, assesses impact and blast radius, determines whether the issue has already been resolved, and performs automated triage with priority and size estimation. Produces a cross-analysis report and executes low-risk triage actions automatically.
17
+
18
+ ## Usage
19
+
20
+ ```
21
+ /professor-triage # Default: --state open (excludes verify-done)
22
+ /professor-triage 587 589 590 591 592 # Direct issue numbers
23
+ /professor-triage --label codex-release # Custom label filter
24
+ /professor-triage --since 2026-03-20 # Date filter
25
+ ```
26
+
27
+ ## Workflow
28
+
29
+ ### Phase 1: Gather
30
+
31
+ 1. Parse arguments to determine target issues:
32
+ - If issue numbers provided: use those directly
33
+ - If `--label` provided: `gh issue list --label <label> --state <state> --json number`
34
+ - Default: `gh issue list --state open --json number` + exclude issues with `verify-done` label
35
+ - If `--since` provided: add `--search "created:>YYYY-MM-DD"` filter
36
+
37
+ 2. For each issue, fetch full details:
38
+ ```bash
39
+ gh issue view NNN --json number,title,body,comments,labels,createdAt
40
+ ```
41
+
42
+ 3. For batches >20 issues, prefer `gh api graphql` for batch fetching to respect GitHub API rate limits (5000/hour authenticated).
43
+
44
+ 4. If filter returns 0 results: if `--label` was used, check label existence via `gh label list`. Report if label missing. If default filter, report "No open issues without verify-done label found."
45
+
46
+ ### Phase 2: Codebase Analysis
47
+
48
+ For each issue, perform direct codebase analysis:
49
+
50
+ **2A: Context Extraction** — From issue title and body, extract:
51
+ - File paths mentioned (regex: backtick-wrapped paths, `:\d+` line refs, `(L\d+)`, `(lines \d+-\d+)`)
52
+ - Error messages or stack traces
53
+ - Keywords (function names, class names, config keys, module names)
54
+ - Component areas mentioned (e.g., "auth", "CI", "hooks")
55
+
56
+ **2B: Codebase Search** — Delegate to Explore agent(s):
57
+ - Search for extracted keywords using Grep across the codebase
58
+ - Find related files using Glob patterns derived from keywords
59
+ - For explicitly mentioned files, verify existence and read relevant sections
60
+ - For error messages, trace to source location
61
+ - Map import/dependency relationships for affected files
62
+
63
+ **2C: Impact Assessment** — For each relevant file found:
64
+ - Read current state of the code
65
+ - Check recent changes: `git log --since=<issue_created_date> --oneline -- <file>`
66
+ - Determine if the issue has already been addressed by recent commits
67
+ - Assess blast radius (what depends on this code, what does this code depend on)
68
+
69
+ **2D: Structured Finding** — Produce per-issue analysis:
70
+
71
+ | Field | Content |
72
+ |-------|---------|
73
+ | Affected files | List with status: `exists` ✅ / `missing` ❌ / `changed-since-issue` ⚠️ |
74
+ | Architecture impact | Breaking changes, dependency effects, scope of change |
75
+ | Implementation path | Concrete steps with file:line references from current codebase |
76
+ | Risk level | P1 (critical/security/breaking) / P2 (moderate/compat) / P3 (nice-to-have) |
77
+ | Size estimate | XS (<1h) / S (1-3h) / M (3-8h) / L (1-3d) / XL (>3d) |
78
+ | Already resolved? | Yes / No / Partial — with git evidence (commit hash, PR number) |
79
+
80
+ **Parallelization (R009/R018):**
81
+ - 1-3 issues → single Explore agent per issue (parallel per R009)
82
+ - 4-10 issues → parallel Explore agents, max 4 concurrent (R009)
83
+ - 10+ issues or 3+ Explore agents needed → Agent Teams per R018
84
+
85
+ **Delegation**: All codebase search delegated to Explore agent(s) with `model: haiku`. Orchestrator collects and synthesizes results.
86
+
87
+ ### Phase 3: Cross-Analyze
88
+
89
+ **R010 note**: This is a read-only analytical step — no file writes. Per R010 exception, the orchestrator may perform this directly. For batches >15 issues, delegate to a dedicated cross-analysis agent with model: opus.
90
+
91
+ Perform deep cross-analysis with full context from all issues:
92
+
93
+ 1. **Common patterns** — Identify findings that appear across multiple issues (e.g., same file referenced, same recommendation theme)
94
+ 2. **Duplicate/merge candidates** — Detect issues tracking the same underlying change:
95
+ - Same release series (e.g., alpha.3/5/6)
96
+ - Same upstream dependency
97
+ - Same affected component
98
+ 3. **Conflicting findings** — Where findings disagree across issues, resolve based on:
99
+ - Codebase evidence (Phase 2 results)
100
+ - Specificity (concrete code-level finding > abstract observation)
101
+ - Recency (newer findings > older ones)
102
+ 4. **Priority matrix** — Unified priority ranking:
103
+ - P1: Breaking changes, security issues, blocking bugs
104
+ - P2: Documentation gaps, compatibility updates, medium-risk items
105
+ - P3: Nice-to-have improvements, future considerations
106
+ 5. **Action determination** — Per-issue decision:
107
+ - `Close (Already Resolved)`: Phase 2 found issue already fixed by recent commits
108
+ - `Close (Not Applicable)`: Issue is irrelevant (internal dependency tag, no impact)
109
+ - `Close (Duplicate of #NNN)`: Superseded by another issue in the batch
110
+ - `Open — action required`: Real work needed
111
+ - `Open — monitoring`: Waiting for external trigger (e.g., stable release)
112
+ - `New issue needed`: Cross-analysis discovered issue not yet tracked
113
+
114
+ ### Phase 4: Multi-Perspective Analysis & Output
115
+
116
+ For each analyzed issue, generate multi-perspective analysis comments and artifacts.
117
+
118
+ **Parallelization (R009):**
119
+ - Phase 4A + 4B: parallel (independent perspectives)
120
+ - Phase 4C: after 4A + 4B complete (synthesis requires both inputs)
121
+ - Phase 4D + 4E: parallel (independent outputs, both depend on 4C)
122
+ - Phase 4F: after all above (verification gate)
123
+
124
+ **4A: 🏛️ Senior Architect Analysis** — Delegate to arch-documenter (model: sonnet) to post GitHub comment:
125
+
126
+ ```
127
+ ## 🏛️ Senior Architect Analysis
128
+
129
+ ### Architecture Impact
130
+ | Component | Impact | Risk |
131
+ |-----------|--------|------|
132
+ | {component} | {description} | {High/Medium/Low} |
133
+
134
+ ### Code-Level Analysis
135
+ {Specific file:line references from Phase 2 codebase analysis}
136
+
137
+ ### Strategic Assessment
138
+ - **Feasibility**: {assessment with evidence}
139
+ - **Priority recommendation**: {P1/P2/P3 with rationale}
140
+
141
+ ### Risk & Considerations
142
+ | Risk | Likelihood | Mitigation |
143
+ |------|-----------|------------|
144
+ | {risk} | {High/Medium/Low} | {mitigation} |
145
+
146
+ **Estimated effort**: {XS/S/M/L/XL}
147
+
148
+ ---
149
+ _🏛️ Senior Architect perspective — `/professor-triage` v2.1.0_
150
+ ```
151
+
152
+ **4B: 🤝 Project Colleague Review** — Delegate to arch-documenter (model: sonnet) to post GitHub comment:
153
+
154
+ ```
155
+ ## 🤝 Project Colleague Review
156
+
157
+ ### Implementation Ideas
158
+ {Concrete code locations and change suggestions with file:line references}
159
+
160
+ ### Easy-to-Miss Details
161
+ - {Name collisions, validation bypasses, race conditions, edge cases}
162
+
163
+ ### Suggested Next Steps
164
+ 1. {Actionable step with specific file/function reference}
165
+ 2. {Actionable step}
166
+ 3. {Actionable step}
167
+
168
+ ---
169
+ _🤝 Project Colleague perspective — `/professor-triage` v2.1.0_
170
+ ```
171
+
172
+ Note: Do NOT include a "First Impressions" (첫인상) section in the Colleague Review — this was explicitly excluded per user feedback.
173
+
174
+ **4C: 🎓 Professor Synthesis** — Delegate to arch-documenter (model: opus) to post GitHub comment. This phase requires 4A and 4B results as input:
175
+
176
+ ```
177
+ ## 🎓 Professor Synthesis
178
+
179
+ ### Codebase Verification
180
+ | Claim (from Architect/Colleague) | Verified | Evidence |
181
+ |----------------------------------|----------|----------|
182
+ | {claim} | ✅/⚠️/❌ | {file:line or git evidence} |
183
+
184
+ ### Consensus & Divergence
185
+ | Topic | Architect | Colleague | Verdict |
186
+ |-------|-----------|-----------|---------|
187
+ | {topic} | {position} | {position} | {synthesized judgment} |
188
+
189
+ ### Priority Matrix
190
+ | Dimension | Assessment |
191
+ |-----------|-----------|
192
+ | Urgency | {High/Medium/Low} |
193
+ | Importance | {High/Medium/Low} |
194
+ | Size | {XS/S/M/L/XL} |
195
+ | Recommended order | {N of M in batch} |
196
+
197
+ ### Missed Perspectives
198
+ {Considerations neither Architect nor Colleague raised}
199
+
200
+ ### Execution Roadmap
201
+ | Phase | Task | Files | Depends on |
202
+ |-------|------|-------|-----------|
203
+ | 1 | {task} | {files} | — |
204
+ | 2 | {task} | {files} | Phase 1 |
205
+
206
+ ### Final Conclusion
207
+ {2-3 sentence synthesis with definitive recommendation}
208
+
209
+ ---
210
+ _🎓 Professor Synthesis — `/professor-triage` v2.1.0_
211
+ ```
212
+
213
+ **4D: Issue Triage Comment (MANDATORY)** — Every analyzed issue MUST receive a triage comment. This is not optional — even for issues created in the same session or with existing analysis. Skipping comments breaks the triage audit trail. Delegate to mgr-gitnerd to post on each analyzed issue:
214
+
215
+ ```
216
+ ## 🔬 Professor Triage — Codebase Analysis Result
217
+
218
+ **Decision**: {Close (Already Resolved) | Close (Not Applicable) | Close (Duplicate of #NNN) | Open — action required | Open — monitoring}
219
+ **Rationale**: {1-2 line summary based on codebase findings}
220
+ **Affected files**: {N} analyzed — {N}✅ {N}⚠️ {N}❌
221
+ **Risk**: {P1/P2/P3} | **Size**: {XS/S/M/L/XL}
222
+ **Full report**: {artifact path}
223
+
224
+ ---
225
+ _Analyzed by `/professor-triage` v2.1.0 against current codebase with {N} related issues_
226
+ ```
227
+
228
+ **4E: Artifact Report** — Delegate to arch-documenter to write:
229
+
230
+ Path: `.codex/outputs/sessions/YYYY-MM-DD/professor-triage-HHmmss.md`
231
+
232
+ Timestamps use local machine time (consistent with other artifact skills).
233
+
234
+ Template:
235
+ ```
236
+ # Professor Triage Report — YYYY-MM-DD
237
+
238
+ ## Analysis Target
239
+ | # | Title | Labels | Created |
240
+ |---|-------|--------|---------|
241
+
242
+ ## Per-Issue Analysis
243
+ ### #NNN — title
244
+ - **Affected files**: N analyzed — N✅ N⚠️ N❌
245
+ - **Architecture impact**: ...
246
+ - **Implementation path**: ...
247
+ - **Risk/Priority**: P1/P2/P3
248
+ - **Size**: XS/S/M/L/XL
249
+ - **Already resolved?**: Yes/No/Partial — evidence
250
+ - **Recommended action**: ...
251
+
252
+ ## Cross-Analysis
253
+ ### Common Patterns
254
+ ### Duplicate/Merge Candidates
255
+ ### Conflicting Findings Resolution
256
+ ### Priority Matrix
257
+
258
+ ## Multi-Perspective Summary
259
+ ### Architect Highlights
260
+ ### Colleague Highlights
261
+ ### Professor Synthesis Key Points
262
+
263
+ ## Executed Actions
264
+ | Issue | Action | Status |
265
+
266
+ ## Pending Actions (Confirmation Required)
267
+ ```
268
+
269
+ ### Phase 4F: Comment Verification Gate
270
+
271
+ Before proceeding to Phase 5, verify ALL analyzed issues received the full set of comments (Architect + Colleague + Professor Synthesis + Triage):
272
+ ```bash
273
+ # For each issue NNN in the batch:
274
+ gh issue view NNN --json comments --jq '.comments | map(select(.body | contains("Professor Triage"))) | length'
275
+ # Must be >= 1 for every issue. If any is 0, go back and post.
276
+
277
+ # Also verify multi-perspective comments:
278
+ gh issue view NNN --json comments --jq '.comments | map(select(.body | contains("Senior Architect"))) | length'
279
+ gh issue view NNN --json comments --jq '.comments | map(select(.body | contains("Project Colleague"))) | length'
280
+ gh issue view NNN --json comments --jq '.comments | map(select(.body | contains("Professor Synthesis"))) | length'
281
+ # All must be >= 1. If any is 0, the corresponding Phase 4A/4B/4C was skipped — go back and post.
282
+ ```
283
+
284
+ ### Phase 5: Act
285
+
286
+ Delegate ALL GitHub operations to mgr-gitnerd.
287
+
288
+ **Automatic (low-risk, reversible):**
289
+
290
+ | Condition | Action |
291
+ |-----------|--------|
292
+ | Phase 2 found issue already resolved (with commit evidence) | `gh issue close --reason "completed"` + comment with resolving commit |
293
+ | Cross-analysis concludes "Not Applicable" / "no action needed" | `gh issue close --reason "not planned"` |
294
+ | Cross-analysis detects same-series duplicates | Keep latest, close others + `duplicate` label |
295
+ | All analysis complete | Add `verify-done` label |
296
+ | Priority assigned | Add `P1`/`P2`/`P3` label |
297
+
298
+ **Confirmation required (high-risk):**
299
+
300
+ Present to user and wait for approval before executing:
301
+
302
+ | Condition | Action | Reason |
303
+ |-----------|--------|--------|
304
+ | Reopen a closed issue | Propose reopen | Unintended notifications |
305
+ | New issue creation needed | Present draft title/body | Noise prevention |
306
+ | Epic/milestone linking | Propose link | Project structure change |
307
+ | Issue body modification | Present edit draft | Respect original author intent |
308
+
309
+ **Ensure `verify-done` label exists**: If not, create with `gh label create "verify-done" --color "0E8A16"`.
310
+
311
+ ## Notes
312
+
313
+ - Phase 1: Orchestrator fetches issues directly (no agent needed)
314
+ - Phase 2: Explore agents with `model: haiku` for codebase search; orchestrator synthesizes findings
315
+ - Phase 3: Orchestrator directly (read-only, R010 exception); opus agent for >15 issues
316
+ - Phase 4A/4B: `arch-documenter` (sonnet) for Architect/Colleague analysis comments (parallel)
317
+ - Phase 4C: `arch-documenter` (opus) for Professor Synthesis comment (requires 4A+4B)
318
+ - Phase 4D: `mgr-gitnerd` for triage comment; Phase 4E: `arch-documenter` for artifact report (parallel)
319
+ - Phase 4F: Verification gate for all 4 comment types
320
+ - Phase 5: `mgr-gitnerd` for all GitHub operations
321
+ - No external dependencies (omc_issue_analyzer removed in v2.0.0, multi-perspective analysis restored in v2.1.0)
@@ -0,0 +1,223 @@
1
+ ---
2
+ name: python-best-practices
3
+ description: Pythonic patterns from PEP 8 and PEP 20
4
+ scope: core
5
+ user-invocable: false
6
+ ---
7
+
8
+ ## Purpose
9
+
10
+ Apply idiomatic Python patterns and best practices from official Python documentation.
11
+
12
+ ## The Zen of Python (PEP 20)
13
+
14
+ ```
15
+ Beautiful is better than ugly.
16
+ Explicit is better than implicit.
17
+ Simple is better than complex.
18
+ Complex is better than complicated.
19
+ Flat is better than nested.
20
+ Sparse is better than dense.
21
+ Readability counts.
22
+ Special cases aren't special enough to break the rules.
23
+ Although practicality beats purity.
24
+ Errors should never pass silently.
25
+ Unless explicitly silenced.
26
+ In the face of ambiguity, refuse the temptation to guess.
27
+ There should be one-- and preferably only one --obvious way to do it.
28
+ Although that way may not be obvious at first unless you're Dutch.
29
+ Now is better than never.
30
+ Although never is often better than *right* now.
31
+ If the implementation is hard to explain, it's a bad idea.
32
+ If the implementation is easy to explain, it may be a good idea.
33
+ Namespaces are one honking great idea -- let's do more of those!
34
+ ```
35
+
36
+ ## Rules
37
+
38
+ ### 1. Code Layout
39
+
40
+ ```yaml
41
+ indentation:
42
+ - Use 4 spaces per indentation level
43
+ - Never mix tabs and spaces
44
+ - Continuation lines align vertically or use hanging indent
45
+
46
+ line_length:
47
+ - Maximum 79 characters for code
48
+ - Maximum 72 characters for docstrings/comments
49
+ - Teams may agree on 99 characters for code
50
+
51
+ blank_lines:
52
+ - Two blank lines around top-level definitions
53
+ - One blank line between method definitions
54
+ - Use sparingly inside functions
55
+ ```
56
+
57
+ ### 2. Imports
58
+
59
+ ```yaml
60
+ rules:
61
+ - One import per line
62
+ - Position at file top, after docstrings
63
+ - Group order: standard library → third-party → local
64
+ - Separate groups with blank lines
65
+ - Prefer absolute imports
66
+ - Avoid wildcard imports (from X import *)
67
+
68
+ example: |
69
+ import os
70
+ import sys
71
+
72
+ from third_party import lib
73
+
74
+ from myproject import module
75
+ ```
76
+
77
+ ### 3. Whitespace
78
+
79
+ ```yaml
80
+ avoid:
81
+ - Extra spaces inside parentheses/brackets
82
+ - Spaces before commas or colons
83
+ - Spaces between function name and parenthesis
84
+ - Multiple spaces for alignment
85
+
86
+ required:
87
+ - Single space around binary operators
88
+ - Spaces around -> in annotations
89
+ - No spaces around = for default parameters
90
+ ```
91
+
92
+ ### 4. Naming Conventions
93
+
94
+ ```yaml
95
+ modules_packages:
96
+ style: lowercase_with_underscores
97
+ example: my_module
98
+
99
+ classes:
100
+ style: CapWords
101
+ example: MyClass
102
+
103
+ functions_variables:
104
+ style: lowercase_with_underscores
105
+ example: my_function, my_variable
106
+
107
+ constants:
108
+ style: ALL_CAPS_WITH_UNDERSCORES
109
+ example: MAX_SIZE, DEFAULT_VALUE
110
+
111
+ exceptions:
112
+ style: CapWords + Error suffix
113
+ example: ValueError, CustomError
114
+
115
+ private:
116
+ single_underscore: _internal (weak internal)
117
+ double_underscore: __private (name mangling)
118
+ trailing_underscore: class_ (avoid keyword conflict)
119
+
120
+ avoid:
121
+ - Single characters l, O, I (ambiguous)
122
+ ```
123
+
124
+ ### 5. Comments and Docstrings
125
+
126
+ ```yaml
127
+ principles:
128
+ - Comments contradicting code are worse than none
129
+ - Use complete sentences
130
+ - Keep comments up to date
131
+
132
+ block_comments:
133
+ - Indent at same level as code
134
+ - Start each line with # and space
135
+
136
+ inline_comments:
137
+ - Minimum two spaces from code
138
+ - Avoid obvious statements
139
+
140
+ docstrings:
141
+ - Write for all public modules, functions, classes, methods
142
+ - Use triple quotes
143
+ - First line: concise summary
144
+ - Blank line before detailed description
145
+ ```
146
+
147
+ ### 6. Programming Recommendations
148
+
149
+ ```yaml
150
+ comparisons:
151
+ - Use 'is' and 'is not' for None, True, False
152
+ - Prefer isinstance() over type()
153
+ - Use 'is not' rather than 'not ... is'
154
+
155
+ sequences:
156
+ - Test empty: if not seq: (not if len(seq) == 0)
157
+ - Use .startswith() and .endswith()
158
+
159
+ exceptions:
160
+ - Derive from Exception, not BaseException
161
+ - Catch specific exceptions
162
+ - Avoid bare except clauses
163
+ - Use 'raise X from Y' for chaining
164
+
165
+ functions:
166
+ - Use def, not lambda assignment
167
+ - Consistent return statements
168
+ - Use with for resource management
169
+
170
+ type_hints:
171
+ - Follow PEP 484 syntax
172
+ - Space after colon in annotations
173
+ - No space before colon
174
+ ```
175
+
176
+ ### 7. Pythonic Idioms
177
+
178
+ ```yaml
179
+ list_comprehension:
180
+ prefer: "[x*2 for x in items if x > 0]"
181
+ over: |
182
+ result = []
183
+ for x in items:
184
+ if x > 0:
185
+ result.append(x*2)
186
+
187
+ context_managers:
188
+ prefer: "with open('file') as f:"
189
+ over: |
190
+ f = open('file')
191
+ try:
192
+ ...
193
+ finally:
194
+ f.close()
195
+
196
+ unpacking:
197
+ prefer: "a, b = b, a"
198
+ over: |
199
+ temp = a
200
+ a = b
201
+ b = temp
202
+
203
+ enumerate:
204
+ prefer: "for i, item in enumerate(items):"
205
+ over: "for i in range(len(items)):"
206
+
207
+ dictionary:
208
+ prefer: "d.get(key, default)"
209
+ over: "d[key] if key in d else default"
210
+ ```
211
+
212
+ ## Application
213
+
214
+ When writing or reviewing Python code:
215
+
216
+ 1. **Always** follow PEP 8 formatting
217
+ 2. **Always** write docstrings for public APIs
218
+ 3. **Prefer** explicit over implicit
219
+ 4. **Prefer** simple over complex
220
+ 5. **Prefer** flat over nested
221
+ 6. **Avoid** premature optimization
222
+ 7. **Use** list comprehensions when readable
223
+ 8. **Use** context managers for resources
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: qa-lead-routing
3
+ description: Coordinates QA workflow across planning, writing, and execution agents. Use when user requests testing, quality assurance, or test documentation.
4
+ scope: core
5
+ user-invocable: false
6
+ context: fork
7
+ ---
8
+
9
+ # QA Lead Routing Skill
10
+
11
+ ## Purpose
12
+
13
+ Coordinates QA team activities by routing tasks to qa-planner, qa-writer, and qa-engineer agents. This skill contains the coordination logic for orchestrating the complete quality assurance workflow.
14
+
15
+ ## QA Team Agents
16
+
17
+ | Agent | Role | Output |
18
+ |-------|------|--------|
19
+ | qa-planner | Test planning | QA plans, test scenarios, acceptance criteria |
20
+ | qa-writer | Documentation | Test cases, test reports, templates |
21
+ | qa-engineer | Execution | Test results, defect reports, coverage reports |
22
+
23
+ ## Routing Decision (Priority Order)
24
+
25
+ Before routing via Agent tool, evaluate Agent Teams eligibility first:
26
+
27
+ **Self-check:** Does this task need 3+ agents, shared state, or inter-agent communication? If yes, prefer Agent Teams over Agent tool. See R018 for the full decision matrix.
28
+
29
+ | Scenario | Preferred |
30
+ |----------|-----------|
31
+ | Single QA phase (plan/write/execute) | Agent Tool |
32
+ | Full QA cycle (plan + write + execute + report) | Agent Teams |
33
+ | Quality analysis (parallel strategy + results) | Agent Teams |
34
+ | Quick test validation | Agent Tool |
35
+
36
+ ## Command Routing
37
+
38
+ ```
39
+ QA Request → Routing → QA Agent(s)
40
+
41
+ test_planning → qa-planner
42
+ test_documentation → qa-writer
43
+ test_execution → qa-engineer
44
+ quality_analysis → qa-planner + qa-engineer (parallel)
45
+ full_qa_cycle → all agents (sequential)
46
+ ```
47
+
48
+ > **Permission Mode**: When spawning agents, pass `mode: "bypassPermissions"` in the Agent tool call if the session uses bypassPermissions. Without explicit mode, CC defaults to `acceptEdits`.
49
+
50
+ ### Ontology-RAG Enrichment (R019)
51
+
52
+ If `get_agent_for_task` MCP tool is available, call it with the original query and inject `suggested_skills` into the agent prompt. Skip silently on failure.
53
+
54
+ ### Step 5: Soul Injection (R006)
55
+
56
+ If the selected agent has `soul: true` in frontmatter, read and prepend `.codex/agents/souls/{agent-name}.soul.md` content to the prompt. Skip silently if file doesn't exist.
57
+
58
+ ## Sequential Workflow Ordering
59
+
60
+ Full QA cycle follows sequential phases (each depends on the previous):
61
+
62
+ ```
63
+ qa-planner → qa-writer → qa-engineer → qa-writer
64
+ (plan) (document) (execute) (report)
65
+ ```
66
+
67
+ Parallel execution only for independent analyses (e.g., multi-module testing). See R009.
68
+
69
+ ## Sub-agent Model Selection
70
+
71
+ All QA agents use `sonnet` by default for balanced quality output.
72
+
73
+ ## No Match Fallback
74
+
75
+ When a QA task involves unfamiliar testing patterns or tools:
76
+
77
+ ```
78
+ User Input → QA task with unrecognized tool/pattern
79
+
80
+ Detect: Testing framework or QA methodology keyword
81
+
82
+ Delegate to mgr-creator with context:
83
+ domain: detected QA tool/methodology
84
+ type: qa-engineer
85
+ keywords: extracted testing terms
86
+ skills: auto-discover from .codex/skills/
87
+ guides: auto-discover from templates/guides/
88
+ ```
89
+
90
+ **Examples of dynamic creation triggers:**
91
+ - New testing frameworks (e.g., "Cypress E2E 테스트 작성해줘", "k6 부하 테스트 설계해줘")
92
+ - Specialized QA methodologies (e.g., "뮤테이션 테스트 전략 만들어줘")
93
+ - Performance/security testing tools not covered by existing agents
94
+
95
+ ## Usage
96
+
97
+ This skill is NOT user-invocable. It should be automatically triggered when the main conversation detects QA intent.
98
+
99
+ Detection criteria:
100
+ - User requests testing
101
+ - User mentions quality assurance
102
+ - User asks for test plan/cases/execution
103
+ - User requests QA metrics/reports
104
+ - System detects need for quality verification