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.
- package/LICENSE +21 -0
- package/README.md +327 -0
- package/dist/cli/index.js +32054 -0
- package/dist/index.js +5469 -0
- package/package.json +89 -0
- package/templates/.claude/agents/arch-documenter.md +38 -0
- package/templates/.claude/agents/arch-speckit-agent.md +66 -0
- package/templates/.claude/agents/be-django-expert.md +47 -0
- package/templates/.claude/agents/be-express-expert.md +31 -0
- package/templates/.claude/agents/be-fastapi-expert.md +45 -0
- package/templates/.claude/agents/be-go-backend-expert.md +45 -0
- package/templates/.claude/agents/be-nestjs-expert.md +29 -0
- package/templates/.claude/agents/be-springboot-expert.md +42 -0
- package/templates/.claude/agents/db-alembic-expert.md +73 -0
- package/templates/.claude/agents/db-postgres-expert.md +38 -0
- package/templates/.claude/agents/db-redis-expert.md +38 -0
- package/templates/.claude/agents/db-supabase-expert.md +37 -0
- package/templates/.claude/agents/de-airflow-expert.md +48 -0
- package/templates/.claude/agents/de-dbt-expert.md +36 -0
- package/templates/.claude/agents/de-kafka-expert.md +83 -0
- package/templates/.claude/agents/de-pipeline-expert.md +34 -0
- package/templates/.claude/agents/de-snowflake-expert.md +38 -0
- package/templates/.claude/agents/de-spark-expert.md +38 -0
- package/templates/.claude/agents/fe-design-expert.md +120 -0
- package/templates/.claude/agents/fe-flutter-agent.md +48 -0
- package/templates/.claude/agents/fe-svelte-agent.md +33 -0
- package/templates/.claude/agents/fe-vercel-agent.md +40 -0
- package/templates/.claude/agents/fe-vuejs-agent.md +34 -0
- package/templates/.claude/agents/infra-aws-expert.md +49 -0
- package/templates/.claude/agents/infra-docker-expert.md +49 -0
- package/templates/.claude/agents/lang-golang-expert.md +46 -0
- package/templates/.claude/agents/lang-java21-expert.md +42 -0
- package/templates/.claude/agents/lang-kotlin-expert.md +45 -0
- package/templates/.claude/agents/lang-python-expert.md +45 -0
- package/templates/.claude/agents/lang-rust-expert.md +45 -0
- package/templates/.claude/agents/lang-typescript-expert.md +45 -0
- package/templates/.claude/agents/mgr-claude-code-bible.md +62 -0
- package/templates/.claude/agents/mgr-creator.md +57 -0
- package/templates/.claude/agents/mgr-gitnerd.md +50 -0
- package/templates/.claude/agents/mgr-sauron.md +163 -0
- package/templates/.claude/agents/mgr-supplier.md +39 -0
- package/templates/.claude/agents/mgr-updater.md +40 -0
- package/templates/.claude/agents/qa-engineer.md +36 -0
- package/templates/.claude/agents/qa-planner.md +78 -0
- package/templates/.claude/agents/qa-writer.md +32 -0
- package/templates/.claude/agents/sec-codeql-expert.md +56 -0
- package/templates/.claude/agents/slack-cli-expert.md +98 -0
- package/templates/.claude/agents/souls/lang-golang-expert.soul.md +21 -0
- package/templates/.claude/agents/sys-memory-keeper.md +123 -0
- package/templates/.claude/agents/sys-naggy.md +76 -0
- package/templates/.claude/agents/tool-bun-expert.md +26 -0
- package/templates/.claude/agents/tool-npm-expert.md +31 -0
- package/templates/.claude/agents/tool-optimizer.md +37 -0
- package/templates/.claude/agents/wiki-curator.md +72 -0
- package/templates/.claude/config/required-plugins.json +30 -0
- package/templates/.claude/contexts/dev.md +20 -0
- package/templates/.claude/contexts/ecomode.md +110 -0
- package/templates/.claude/contexts/index.yaml +41 -0
- package/templates/.claude/contexts/research.md +28 -0
- package/templates/.claude/contexts/review.md +23 -0
- package/templates/.claude/hooks/hooks.json +533 -0
- package/templates/.claude/hooks/scripts/adaptive-harness-scan.sh +45 -0
- package/templates/.claude/hooks/scripts/agent-start-recorder.sh +40 -0
- package/templates/.claude/hooks/scripts/agent-teams-advisor.sh +76 -0
- package/templates/.claude/hooks/scripts/audit-log.sh +64 -0
- package/templates/.claude/hooks/scripts/auto-continue-guard.sh +33 -0
- package/templates/.claude/hooks/scripts/content-hash-validator.sh +75 -0
- package/templates/.claude/hooks/scripts/context-budget-advisor.sh +107 -0
- package/templates/.claude/hooks/scripts/cost-cap-advisor.sh +71 -0
- package/templates/.claude/hooks/scripts/cwd-change-detector.sh +36 -0
- package/templates/.claude/hooks/scripts/eval-core-batch-save.sh +46 -0
- package/templates/.claude/hooks/scripts/feedback-collector.sh +92 -0
- package/templates/.claude/hooks/scripts/file-change-validator.sh +26 -0
- package/templates/.claude/hooks/scripts/git-delegation-guard.sh +57 -0
- package/templates/.claude/hooks/scripts/model-escalation-advisor.sh +106 -0
- package/templates/.claude/hooks/scripts/omcodex-auto-update.sh +4 -0
- package/templates/.claude/hooks/scripts/omcustom-auto-update.sh +177 -0
- package/templates/.claude/hooks/scripts/rtk-intercept.sh +77 -0
- package/templates/.claude/hooks/scripts/rule-deletion-guard.sh +60 -0
- package/templates/.claude/hooks/scripts/schema-validator.sh +106 -0
- package/templates/.claude/hooks/scripts/secret-filter.sh +100 -0
- package/templates/.claude/hooks/scripts/session-autofix-prompt.sh +34 -0
- package/templates/.claude/hooks/scripts/session-autofix.sh +146 -0
- package/templates/.claude/hooks/scripts/session-env-check.sh +254 -0
- package/templates/.claude/hooks/scripts/skill-extractor-analyzer.sh +49 -0
- package/templates/.claude/hooks/scripts/stage-blocker.sh +16 -0
- package/templates/.claude/hooks/scripts/stale-todo-scanner.sh +91 -0
- package/templates/.claude/hooks/scripts/stall-detection-advisor.sh +112 -0
- package/templates/.claude/hooks/scripts/stop-console-audit.sh +46 -0
- package/templates/.claude/hooks/scripts/stuck-detector.sh +199 -0
- package/templates/.claude/hooks/scripts/task-outcome-recorder.sh +119 -0
- package/templates/.claude/hooks/scripts/task-state-precompact.sh +58 -0
- package/templates/.claude/hooks/scripts/user-prompt-preprocessor.sh +32 -0
- package/templates/.claude/hooks/skill-count-reminder.sh +34 -0
- package/templates/.claude/install-hooks.sh +100 -0
- package/templates/.claude/ontology/agents.yaml +546 -0
- package/templates/.claude/ontology/graphs/agent-skill.json +102 -0
- package/templates/.claude/ontology/graphs/full-graph.json +629 -0
- package/templates/.claude/ontology/graphs/routing.json +112 -0
- package/templates/.claude/ontology/graphs/skill-rule.json +78 -0
- package/templates/.claude/ontology/rules.yaml +251 -0
- package/templates/.claude/ontology/schema.yaml +144 -0
- package/templates/.claude/ontology/skills.yaml +575 -0
- package/templates/.claude/rules/MAY-optimization.md +42 -0
- package/templates/.claude/rules/MUST-agent-design.md +340 -0
- package/templates/.claude/rules/MUST-agent-identification.md +77 -0
- package/templates/.claude/rules/MUST-agent-teams.md +293 -0
- package/templates/.claude/rules/MUST-completion-verification.md +112 -0
- package/templates/.claude/rules/MUST-continuous-improvement.md +69 -0
- package/templates/.claude/rules/MUST-enforcement-policy.md +50 -0
- package/templates/.claude/rules/MUST-intent-transparency.md +74 -0
- package/templates/.claude/rules/MUST-language-policy.md +28 -0
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +399 -0
- package/templates/.claude/rules/MUST-parallel-execution.md +184 -0
- package/templates/.claude/rules/MUST-permissions.md +32 -0
- package/templates/.claude/rules/MUST-safety.md +23 -0
- package/templates/.claude/rules/MUST-sync-verification.md +145 -0
- package/templates/.claude/rules/MUST-tool-identification.md +97 -0
- package/templates/.claude/rules/SHOULD-ecomode.md +123 -0
- package/templates/.claude/rules/SHOULD-error-handling.md +33 -0
- package/templates/.claude/rules/SHOULD-hud-statusline.md +51 -0
- package/templates/.claude/rules/SHOULD-interaction.md +77 -0
- package/templates/.claude/rules/SHOULD-memory-integration.md +371 -0
- package/templates/.claude/rules/SHOULD-ontology-rag-routing.md +49 -0
- package/templates/.claude/rules/SHOULD-wiki-sync.md +73 -0
- package/templates/.claude/rules/index.yaml +141 -0
- package/templates/.claude/schemas/tool-inputs.json +62 -0
- package/templates/.claude/skills/action-validator/SKILL.md +89 -0
- package/templates/.claude/skills/adaptive-harness/SKILL.md +335 -0
- package/templates/.claude/skills/adversarial-review/SKILL.md +80 -0
- package/templates/.claude/skills/agora/SKILL.md +194 -0
- package/templates/.claude/skills/airflow-best-practices/SKILL.md +94 -0
- package/templates/.claude/skills/alembic-best-practices/SKILL.md +295 -0
- package/templates/.claude/skills/ambiguity-gate/SKILL.md +94 -0
- package/templates/.claude/skills/analysis/SKILL.md +223 -0
- package/templates/.claude/skills/audit-agents/SKILL.md +118 -0
- package/templates/.claude/skills/aws-best-practices/SKILL.md +281 -0
- package/templates/.claude/skills/claude-code-bible/SKILL.md +93 -0
- package/templates/.claude/skills/claude-code-bible/scripts/fetch-docs.js +244 -0
- package/templates/.claude/skills/claude-native/SKILL.md +215 -0
- package/templates/.claude/skills/codex-exec/SKILL.md +206 -0
- package/templates/.claude/skills/codex-exec/scripts/codex-wrapper.cjs +430 -0
- package/templates/.claude/skills/create-agent/SKILL.md +94 -0
- package/templates/.claude/skills/cve-triage/SKILL.md +91 -0
- package/templates/.claude/skills/dag-orchestration/SKILL.md +201 -0
- package/templates/.claude/skills/dbt-best-practices/SKILL.md +55 -0
- package/templates/.claude/skills/de-lead-routing/SKILL.md +230 -0
- package/templates/.claude/skills/deep-plan/SKILL.md +344 -0
- package/templates/.claude/skills/deep-verify/SKILL.md +111 -0
- package/templates/.claude/skills/dev-lead-routing/SKILL.md +161 -0
- package/templates/.claude/skills/dev-refactor/SKILL.md +234 -0
- package/templates/.claude/skills/dev-review/SKILL.md +172 -0
- package/templates/.claude/skills/django-best-practices/SKILL.md +334 -0
- package/templates/.claude/skills/docker-best-practices/SKILL.md +276 -0
- package/templates/.claude/skills/evaluator-optimizer/SKILL.md +421 -0
- package/templates/.claude/skills/fastapi-best-practices/SKILL.md +271 -0
- package/templates/.claude/skills/fix-refs/SKILL.md +109 -0
- package/templates/.claude/skills/flutter-best-practices/SKILL.md +325 -0
- package/templates/.claude/skills/gemini-exec/SKILL.md +215 -0
- package/templates/.claude/skills/gemini-exec/scripts/gemini-wrapper.cjs +485 -0
- package/templates/.claude/skills/go-backend-best-practices/SKILL.md +135 -0
- package/templates/.claude/skills/go-best-practices/SKILL.md +204 -0
- package/templates/.claude/skills/hada-scout/SKILL.md +92 -0
- package/templates/.claude/skills/harness-eval/SKILL.md +95 -0
- package/templates/.claude/skills/harness-synthesizer/SKILL.md +145 -0
- package/templates/.claude/skills/help/SKILL.md +127 -0
- package/templates/.claude/skills/idea/SKILL.md +88 -0
- package/templates/.claude/skills/impeccable-design/SKILL.md +173 -0
- package/templates/.claude/skills/intent-detection/SKILL.md +293 -0
- package/templates/.claude/skills/intent-detection/patterns/agent-triggers.yaml +438 -0
- package/templates/.claude/skills/java21-best-practices/SKILL.md +190 -0
- package/templates/.claude/skills/jinja2-prompts/SKILL.md +86 -0
- package/templates/.claude/skills/kafka-best-practices/SKILL.md +53 -0
- package/templates/.claude/skills/kotlin-best-practices/SKILL.md +257 -0
- package/templates/.claude/skills/lists/SKILL.md +80 -0
- package/templates/.claude/skills/memory-management/SKILL.md +196 -0
- package/templates/.claude/skills/memory-recall/SKILL.md +172 -0
- package/templates/.claude/skills/memory-save/SKILL.md +128 -0
- package/templates/.claude/skills/model-escalation/SKILL.md +62 -0
- package/templates/.claude/skills/monitoring-setup/SKILL.md +215 -0
- package/templates/.claude/skills/multi-model-verification/SKILL.md +130 -0
- package/templates/.claude/skills/npm-audit/SKILL.md +74 -0
- package/templates/.claude/skills/npm-publish/SKILL.md +65 -0
- package/templates/.claude/skills/npm-version/SKILL.md +104 -0
- package/templates/.claude/skills/omcodex-auto-improve/SKILL.md +136 -0
- package/templates/.claude/skills/omcodex-feedback/SKILL.md +205 -0
- package/templates/.claude/skills/omcodex-improve-report/SKILL.md +65 -0
- package/templates/.claude/skills/omcodex-loop/SKILL.md +45 -0
- package/templates/.claude/skills/omcodex-release-notes/SKILL.md +117 -0
- package/templates/.claude/skills/omcodex-takeover/SKILL.md +115 -0
- package/templates/.claude/skills/omcodex-web/SKILL.md +95 -0
- package/templates/.claude/skills/optimize-analyze/SKILL.md +57 -0
- package/templates/.claude/skills/optimize-bundle/SKILL.md +69 -0
- package/templates/.claude/skills/optimize-report/SKILL.md +76 -0
- package/templates/.claude/skills/peer-messaging/SKILL.md +59 -0
- package/templates/.claude/skills/pipeline/SKILL.md +103 -0
- package/templates/.claude/skills/pipeline-architecture-patterns/SKILL.md +84 -0
- package/templates/.claude/skills/pipeline-guards/SKILL.md +173 -0
- package/templates/.claude/skills/post-release-followup/SKILL.md +134 -0
- package/templates/.claude/skills/postgres-best-practices/SKILL.md +67 -0
- package/templates/.claude/skills/pr-auto-improve/SKILL.md +129 -0
- package/templates/.claude/skills/professor-triage/SKILL.md +321 -0
- package/templates/.claude/skills/python-best-practices/SKILL.md +223 -0
- package/templates/.claude/skills/qa-lead-routing/SKILL.md +104 -0
- package/templates/.claude/skills/react-best-practices/SKILL.md +102 -0
- package/templates/.claude/skills/reasoning-sandwich/SKILL.md +64 -0
- package/templates/.claude/skills/redis-best-practices/SKILL.md +84 -0
- package/templates/.claude/skills/release-plan/SKILL.md +207 -0
- package/templates/.claude/skills/research/SKILL.md +493 -0
- package/templates/.claude/skills/result-aggregation/SKILL.md +165 -0
- package/templates/.claude/skills/rtk-exec/SKILL.md +199 -0
- package/templates/.claude/skills/rtk-exec/scripts/rtk-wrapper.cjs +377 -0
- package/templates/.claude/skills/rust-best-practices/SKILL.md +268 -0
- package/templates/.claude/skills/sauron-watch/SKILL.md +239 -0
- package/templates/.claude/skills/scout/SKILL.md +250 -0
- package/templates/.claude/skills/sdd/SKILL.md +24 -0
- package/templates/.claude/skills/sdd-dev/SKILL.md +257 -0
- package/templates/.claude/skills/sdd-development/SKILL.md +24 -0
- package/templates/.claude/skills/secretary-routing/SKILL.md +132 -0
- package/templates/.claude/skills/skill-extractor/SKILL.md +155 -0
- package/templates/.claude/skills/skills-sh-search/SKILL.md +210 -0
- package/templates/.claude/skills/snowflake-best-practices/SKILL.md +66 -0
- package/templates/.claude/skills/spark-best-practices/SKILL.md +53 -0
- package/templates/.claude/skills/springboot-best-practices/SKILL.md +74 -0
- package/templates/.claude/skills/springboot-best-practices/examples/config-properties-example.java +22 -0
- package/templates/.claude/skills/springboot-best-practices/examples/controller-example.java +28 -0
- package/templates/.claude/skills/springboot-best-practices/examples/controller-test-example.java +33 -0
- package/templates/.claude/skills/springboot-best-practices/examples/entity-example.java +22 -0
- package/templates/.claude/skills/springboot-best-practices/examples/exception-handler-example.java +30 -0
- package/templates/.claude/skills/springboot-best-practices/examples/repository-example.java +17 -0
- package/templates/.claude/skills/springboot-best-practices/examples/repository-test-example.java +23 -0
- package/templates/.claude/skills/springboot-best-practices/examples/security-config-example.java +27 -0
- package/templates/.claude/skills/springboot-best-practices/examples/service-example.java +33 -0
- package/templates/.claude/skills/status/SKILL.md +155 -0
- package/templates/.claude/skills/structured-dev-cycle/SKILL.md +200 -0
- package/templates/.claude/skills/stuck-recovery/SKILL.md +80 -0
- package/templates/.claude/skills/supabase-postgres-best-practices/SKILL.md +100 -0
- package/templates/.claude/skills/systematic-debugging/SKILL.md +288 -0
- package/templates/.claude/skills/systematic-debugging/condition-based-waiting-example.ts +278 -0
- package/templates/.claude/skills/systematic-debugging/condition-based-waiting.md +240 -0
- package/templates/.claude/skills/systematic-debugging/defense-in-depth.md +252 -0
- package/templates/.claude/skills/systematic-debugging/find-polluter.sh +147 -0
- package/templates/.claude/skills/systematic-debugging/root-cause-tracing.md +87 -0
- package/templates/.claude/skills/task-decomposition/SKILL.md +197 -0
- package/templates/.claude/skills/typescript-best-practices/SKILL.md +322 -0
- package/templates/.claude/skills/update-docs/SKILL.md +142 -0
- package/templates/.claude/skills/update-external/SKILL.md +169 -0
- package/templates/.claude/skills/vercel-deploy/SKILL.md +75 -0
- package/templates/.claude/skills/web-design-guidelines/SKILL.md +119 -0
- package/templates/.claude/skills/wiki/SKILL.md +426 -0
- package/templates/.claude/skills/wiki-rag/SKILL.md +154 -0
- package/templates/.claude/skills/worker-reviewer-pipeline/SKILL.md +165 -0
- package/templates/.claude/skills/writing-clearly-and-concisely/SKILL.md +66 -0
- package/templates/.claude/statusline.sh +380 -0
- package/templates/.claude/uninstall-hooks.sh +52 -0
- package/templates/.github/workflows/wiki-sync.yml +132 -0
- package/templates/AGENTS.md.en +255 -0
- package/templates/AGENTS.md.ko +255 -0
- package/templates/CLAUDE.md +263 -0
- package/templates/CLAUDE.md.en +256 -0
- package/templates/CLAUDE.md.ko +256 -0
- package/templates/deprecated-files.json +10 -0
- package/templates/guides/agents-md-quality/README.md +110 -0
- package/templates/guides/airflow/README.md +47 -0
- package/templates/guides/alembic/README.md +438 -0
- package/templates/guides/aws/common-patterns.md +169 -0
- package/templates/guides/aws/index.yaml +26 -0
- package/templates/guides/aws/well-architected.md +143 -0
- package/templates/guides/cc-token-saver/README.md +97 -0
- package/templates/guides/claude-code/01-overview.md +42 -0
- package/templates/guides/claude-code/03-tools.md +107 -0
- package/templates/guides/claude-code/04-agent-skills.md +90 -0
- package/templates/guides/claude-code/05-agent-sdk.md +129 -0
- package/templates/guides/claude-code/06-mcp.md +165 -0
- package/templates/guides/claude-code/07-prompt-engineering.md +100 -0
- package/templates/guides/claude-code/08-testing.md +56 -0
- package/templates/guides/claude-code/09-guardrails.md +78 -0
- package/templates/guides/claude-code/10-monitoring.md +87 -0
- package/templates/guides/claude-code/11-sub-agents.md +159 -0
- package/templates/guides/claude-code/12-workflow-patterns.md +182 -0
- package/templates/guides/claude-code/13-cli-flags.md +151 -0
- package/templates/guides/claude-code/index.yaml +61 -0
- package/templates/guides/dbt/README.md +32 -0
- package/templates/guides/django-best-practices/README.md +476 -0
- package/templates/guides/docker/compose-best-practices.md +284 -0
- package/templates/guides/docker/dockerfile-best-practices.md +262 -0
- package/templates/guides/docker/index.yaml +26 -0
- package/templates/guides/drizzle-orm/README.md +69 -0
- package/templates/guides/elements-of-style/elements-of-style.html +2609 -0
- package/templates/guides/fastapi/best-practices.md +232 -0
- package/templates/guides/fastapi/index.yaml +21 -0
- package/templates/guides/flutter/architecture.md +141 -0
- package/templates/guides/flutter/fundamentals.md +119 -0
- package/templates/guides/flutter/index.yaml +44 -0
- package/templates/guides/flutter/performance.md +119 -0
- package/templates/guides/flutter/security.md +120 -0
- package/templates/guides/flutter/state-management.md +144 -0
- package/templates/guides/flutter/testing.md +155 -0
- package/templates/guides/git-worktree-workflow/README.md +138 -0
- package/templates/guides/go-backend/index.yaml +26 -0
- package/templates/guides/go-backend/project-layout.md +243 -0
- package/templates/guides/go-backend/uber-style.md +212 -0
- package/templates/guides/golang/concurrency.md +282 -0
- package/templates/guides/golang/effective-go.md +309 -0
- package/templates/guides/golang/error-handling.md +250 -0
- package/templates/guides/golang/index.yaml +27 -0
- package/templates/guides/hook-data-flow/README.md +135 -0
- package/templates/guides/iceberg/README.md +49 -0
- package/templates/guides/impeccable-design/color-and-contrast.md +278 -0
- package/templates/guides/impeccable-design/index.yaml +12 -0
- package/templates/guides/impeccable-design/motion-design.md +390 -0
- package/templates/guides/impeccable-design/typography.md +386 -0
- package/templates/guides/impeccable-design/ux-writing.md +400 -0
- package/templates/guides/index.yaml +265 -0
- package/templates/guides/java21/index.yaml +29 -0
- package/templates/guides/java21/java-style-guide.md +248 -0
- package/templates/guides/java21/modern-java21.md +303 -0
- package/templates/guides/kafka/README.md +32 -0
- package/templates/guides/kotlin/coding-conventions.md +247 -0
- package/templates/guides/kotlin/idioms.md +234 -0
- package/templates/guides/kotlin/index.yaml +26 -0
- package/templates/guides/multi-model-routing/README.md +101 -0
- package/templates/guides/multi-provider-exec/README.md +83 -0
- package/templates/guides/postgres/README.md +58 -0
- package/templates/guides/python/index.yaml +26 -0
- package/templates/guides/python/pep8-style-guide.md +202 -0
- package/templates/guides/python/zen-of-python.md +79 -0
- package/templates/guides/redis/README.md +50 -0
- package/templates/guides/rust/error-handling.md +262 -0
- package/templates/guides/rust/index.yaml +26 -0
- package/templates/guides/rust/ownership.md +180 -0
- package/templates/guides/skill-bundle-design/README.md +106 -0
- package/templates/guides/slack-cli/README.md +145 -0
- package/templates/guides/snowflake/README.md +32 -0
- package/templates/guides/spark/README.md +32 -0
- package/templates/guides/springboot/best-practices.md +361 -0
- package/templates/guides/springboot/index.yaml +22 -0
- package/templates/guides/supabase-postgres/README.md +32 -0
- package/templates/guides/supabase-postgres/index.yaml +19 -0
- package/templates/guides/typescript/advanced-types.md +225 -0
- package/templates/guides/typescript/index.yaml +26 -0
- package/templates/guides/typescript/type-system.md +219 -0
- package/templates/guides/web-design/accessibility.md +66 -0
- package/templates/guides/web-design/index.yaml +20 -0
- package/templates/guides/web-design/performance.md +102 -0
- package/templates/guides/web-scraping/README.md +926 -0
- package/templates/guides/web-scraping/index.yaml +19 -0
- package/templates/guides/worktree-lifecycle/README.md +104 -0
- package/templates/index.yaml +18 -0
- package/templates/manifest.json +49 -0
- 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
|