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,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omcodex:fix-refs
|
|
3
|
+
description: Fix broken agent references and symlinks
|
|
4
|
+
scope: harness
|
|
5
|
+
argument-hint: "[agent-name] [--all] [--dry-run]"
|
|
6
|
+
disable-model-invocation: true
|
|
7
|
+
user-invocable: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Fix References Skill
|
|
11
|
+
|
|
12
|
+
Fix broken references, missing symlinks, and other agent dependency issues.
|
|
13
|
+
|
|
14
|
+
## Options
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
--all, -a Fix all agents
|
|
18
|
+
--dry-run Show what would be fixed
|
|
19
|
+
--verbose, -v Show detailed actions
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Workflow
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
1. Run mgr-supplier:audit to identify issues
|
|
26
|
+
|
|
27
|
+
2. Fix issues:
|
|
28
|
+
├── Missing skill references → Add
|
|
29
|
+
├── Missing guide references → Add
|
|
30
|
+
├── Broken paths → Update
|
|
31
|
+
└── Invalid references → Remove
|
|
32
|
+
|
|
33
|
+
3. Validate fixes
|
|
34
|
+
└── Re-run mgr-supplier:audit
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Fixable Issues
|
|
38
|
+
|
|
39
|
+
| Issue | Action |
|
|
40
|
+
|-------|--------|
|
|
41
|
+
| Missing skill ref | Add to agent .md file |
|
|
42
|
+
| Missing guide ref | Add to agent .md file |
|
|
43
|
+
| Broken path | Update path in agent .md file |
|
|
44
|
+
| Invalid reference | Remove from agent .md file |
|
|
45
|
+
|
|
46
|
+
## Output Format
|
|
47
|
+
|
|
48
|
+
### Dry Run
|
|
49
|
+
```
|
|
50
|
+
[mgr-supplier:fix lang-kotlin-expert --dry-run]
|
|
51
|
+
|
|
52
|
+
Analyzing: lang-kotlin-expert
|
|
53
|
+
|
|
54
|
+
Issues found:
|
|
55
|
+
1. Missing guide reference: kotlin
|
|
56
|
+
|
|
57
|
+
Proposed fixes:
|
|
58
|
+
1. Add guide reference to .codex/agents/lang-kotlin-expert.md
|
|
59
|
+
|
|
60
|
+
No changes made (dry-run mode).
|
|
61
|
+
Run without --dry-run to apply fixes.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Fix Mode
|
|
65
|
+
```
|
|
66
|
+
[mgr-supplier:fix lang-kotlin-expert]
|
|
67
|
+
|
|
68
|
+
Fixing: lang-kotlin-expert
|
|
69
|
+
|
|
70
|
+
[1/2] Adding missing reference...
|
|
71
|
+
Updating: .codex/agents/lang-kotlin-expert.md
|
|
72
|
+
✓ Guide reference added
|
|
73
|
+
|
|
74
|
+
[2/2] Validating...
|
|
75
|
+
Running mgr-supplier:audit...
|
|
76
|
+
✓ All dependencies valid
|
|
77
|
+
|
|
78
|
+
Summary:
|
|
79
|
+
Fixed: 1 issue
|
|
80
|
+
Status: HEALTHY
|
|
81
|
+
|
|
82
|
+
Agent lang-kotlin-expert is now healthy.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Fix All
|
|
86
|
+
```
|
|
87
|
+
[mgr-supplier:fix --all]
|
|
88
|
+
|
|
89
|
+
Scanning all agents for issues...
|
|
90
|
+
|
|
91
|
+
Found issues in 2 agents:
|
|
92
|
+
- lang-kotlin-expert: 1 issue
|
|
93
|
+
- new-agent: 2 issues
|
|
94
|
+
|
|
95
|
+
Fixing lang-kotlin-expert...
|
|
96
|
+
✓ Added guide reference: kotlin
|
|
97
|
+
|
|
98
|
+
Fixing new-agent...
|
|
99
|
+
✓ Added skill reference: skill-a
|
|
100
|
+
✓ Added skill reference: skill-b
|
|
101
|
+
|
|
102
|
+
Validating all agents...
|
|
103
|
+
✓ mgr-supplier:audit --all passed
|
|
104
|
+
|
|
105
|
+
Summary:
|
|
106
|
+
Agents fixed: 2
|
|
107
|
+
Issues resolved: 3
|
|
108
|
+
All agents healthy.
|
|
109
|
+
```
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: flutter-best-practices
|
|
3
|
+
description: Flutter/Dart development best practices for widget composition, state management, and performance
|
|
4
|
+
scope: core
|
|
5
|
+
user-invocable: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Apply Flutter and Dart best practices from official documentation and community standards. Covers widget patterns, state management (Riverpod/BLoC), performance optimization, testing, security, and Dart 3.x language patterns.
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Widget composition over inheritance
|
|
16
|
+
Unidirectional data flow
|
|
17
|
+
Immutable state
|
|
18
|
+
const by default
|
|
19
|
+
Platform-adaptive design
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Rules
|
|
23
|
+
|
|
24
|
+
### 1. Widget Patterns
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
composition:
|
|
28
|
+
prefer: "Small, focused StatelessWidget classes"
|
|
29
|
+
avoid: "Helper functions returning Widget (no Element identity)"
|
|
30
|
+
reason: "Flutter diffing depends on widget type identity"
|
|
31
|
+
|
|
32
|
+
const_constructors:
|
|
33
|
+
rule: "Mark all static widgets const"
|
|
34
|
+
pattern: "const Text('Hello'), const SizedBox(height: 8)"
|
|
35
|
+
impact: "Zero rebuild cost — compile-time constant"
|
|
36
|
+
|
|
37
|
+
sizing_widgets:
|
|
38
|
+
prefer: "SizedBox for spacing/sizing"
|
|
39
|
+
avoid: "Container when only size is needed"
|
|
40
|
+
reason: "SizedBox is lighter, no decoration overhead"
|
|
41
|
+
|
|
42
|
+
state_choice:
|
|
43
|
+
StatelessWidget: "No mutable state, pure rendering"
|
|
44
|
+
StatefulWidget: "Local ephemeral state (animations, form input)"
|
|
45
|
+
InheritedWidget: "Data propagation down tree (base of Provider)"
|
|
46
|
+
|
|
47
|
+
build_context:
|
|
48
|
+
rule: "Never store BuildContext across async gaps"
|
|
49
|
+
pattern: "Check mounted before using context after await"
|
|
50
|
+
|
|
51
|
+
keys:
|
|
52
|
+
ValueKey: "When items have unique business identity"
|
|
53
|
+
ObjectKey: "When items are objects without natural key"
|
|
54
|
+
UniqueKey: "Force rebuild on every build (rare)"
|
|
55
|
+
GlobalKey: "Cross-widget state access (use sparingly)"
|
|
56
|
+
|
|
57
|
+
lists:
|
|
58
|
+
prefer: "ListView.builder for >10 items (lazy construction)"
|
|
59
|
+
avoid: "ListView(children: [...]) for large lists"
|
|
60
|
+
optimization: "Set itemExtent to skip intrinsic layout passes"
|
|
61
|
+
|
|
62
|
+
layout:
|
|
63
|
+
rule: "Constraints flow down, sizes flow up"
|
|
64
|
+
common_error: "Unbounded constraints in Column/Row children"
|
|
65
|
+
fix: "Wrap with Expanded/Flexible or constrain explicitly"
|
|
66
|
+
|
|
67
|
+
repaint_boundary:
|
|
68
|
+
when: "Frequently repainting subtrees (animations, video, maps)"
|
|
69
|
+
effect: "Isolates paint scope, prevents cascade repaints"
|
|
70
|
+
detect: "DevTools → highlight repaints toggle"
|
|
71
|
+
|
|
72
|
+
slivers:
|
|
73
|
+
prefer: "CustomScrollView + SliverList.builder for complex scrolling"
|
|
74
|
+
use_for: "Floating headers, parallax, mixed scroll content"
|
|
75
|
+
avoid: "Nested ListView in ListView"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Reference: guides/flutter/fundamentals.md
|
|
79
|
+
|
|
80
|
+
### 2. State Management
|
|
81
|
+
|
|
82
|
+
```yaml
|
|
83
|
+
default_choice:
|
|
84
|
+
new_projects: "Riverpod 3.0"
|
|
85
|
+
enterprise: "BLoC 9.0"
|
|
86
|
+
simple_prototypes: "setState or Provider"
|
|
87
|
+
avoid: "GetX (maintenance crisis, runtime crashes)"
|
|
88
|
+
|
|
89
|
+
riverpod_patterns:
|
|
90
|
+
reactive_read: "ref.watch(provider) — in build methods only"
|
|
91
|
+
one_time_read: "ref.read(provider) — in callbacks, onPressed"
|
|
92
|
+
never: "ref.watch inside non-build methods"
|
|
93
|
+
async_state: "AsyncNotifier + AsyncValue (loading/data/error)"
|
|
94
|
+
family: "family modifier for parameterized providers"
|
|
95
|
+
keep_alive: "Only when justified (expensive computations)"
|
|
96
|
+
invalidate_vs_refresh: "ref.invalidate() resets to loading (lazy); ref.refresh() immediate re-fetch"
|
|
97
|
+
|
|
98
|
+
bloc_patterns:
|
|
99
|
+
one_event_per_action: "One UI action = one event class"
|
|
100
|
+
cubit_vs_bloc: "Cubit for simple state changes; Bloc when audit trail needed"
|
|
101
|
+
never: "Emit state in constructor body"
|
|
102
|
+
listener_vs_consumer: "BlocListener for side effects; BlocConsumer for UI + effects; BlocBuilder for UI only"
|
|
103
|
+
stream_management: "Cancel subscriptions in close()"
|
|
104
|
+
|
|
105
|
+
state_immutability:
|
|
106
|
+
rule: "All state objects must be immutable"
|
|
107
|
+
tool: "freezed package for copyWith/==/hashCode generation"
|
|
108
|
+
|
|
109
|
+
result_type:
|
|
110
|
+
rule: "Return Result<T> from repositories, never throw"
|
|
111
|
+
pattern: "sealed class Result<T> with Ok<T> and Error<T> subclasses"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Reference: guides/flutter/state-management.md
|
|
115
|
+
|
|
116
|
+
### 3. Performance
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
build_optimization:
|
|
120
|
+
const_widgets: "Mark immutable widgets const — zero rebuild"
|
|
121
|
+
localize_setState: "Call setState on smallest possible subtree"
|
|
122
|
+
extract_widgets: "StatelessWidget class > helper method"
|
|
123
|
+
child_parameter: "Pass static child through AnimatedBuilder to avoid rebuild"
|
|
124
|
+
|
|
125
|
+
rebuild_avoidance:
|
|
126
|
+
consumer_placement: "Place Consumer/ListenableBuilder as deep as possible"
|
|
127
|
+
read_in_callbacks: "context.read<T>() not context.watch<T>() in handlers"
|
|
128
|
+
selector: "Use BlocSelector/Selector for partial state rebuilds"
|
|
129
|
+
|
|
130
|
+
rendering:
|
|
131
|
+
avoid_opacity: "Use color.withValues(alpha:) (Flutter 3.27+) or AnimatedOpacity instead; color.withOpacity() is deprecated"
|
|
132
|
+
avoid_clip: "Pre-clip static content; avoid ClipRRect in animations"
|
|
133
|
+
minimize_saveLayer: "ShaderMask, ColorFilter, Chip trigger saveLayer"
|
|
134
|
+
|
|
135
|
+
compute_offloading:
|
|
136
|
+
rule: "Isolate.run() for operations >16ms (one frame budget)"
|
|
137
|
+
web_compatible: "Use compute() for web-compatible apps"
|
|
138
|
+
use_for: "JSON parsing, image processing, complex filtering"
|
|
139
|
+
|
|
140
|
+
frame_budget:
|
|
141
|
+
target: "<8ms build + <8ms render = 16.67ms (60fps)"
|
|
142
|
+
profiling: "flutter run --profile, not debug mode"
|
|
143
|
+
tool: "DevTools Performance view for jank detection"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Reference: guides/flutter/performance.md
|
|
147
|
+
|
|
148
|
+
### 4. Testing
|
|
149
|
+
|
|
150
|
+
```yaml
|
|
151
|
+
test_pyramid:
|
|
152
|
+
unit: "Single class/function — fast, low confidence"
|
|
153
|
+
widget: "Single widget tree — fast, medium confidence"
|
|
154
|
+
integration: "Full app on device — slow, high confidence"
|
|
155
|
+
golden: "Visual regression via matchesGoldenFile()"
|
|
156
|
+
|
|
157
|
+
widget_test_pattern:
|
|
158
|
+
rule: "Use pumpWidget with ProviderScope overrides, then pump/pumpAndSettle for async"
|
|
159
|
+
|
|
160
|
+
mocking:
|
|
161
|
+
prefer: "mocktail (null-safe, no codegen)"
|
|
162
|
+
avoid: "Legacy mockito with build_runner"
|
|
163
|
+
fakes: "Use Fake implementations for deterministic tests"
|
|
164
|
+
|
|
165
|
+
bloc_testing:
|
|
166
|
+
rule: "Use blocTest<Bloc, State> with build/act/expect pattern"
|
|
167
|
+
|
|
168
|
+
coverage_target:
|
|
169
|
+
widget_tests: "80%+ for UI logic"
|
|
170
|
+
unit_tests: "90%+ for business logic"
|
|
171
|
+
integration: "Critical user flows only"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Reference: guides/flutter/testing.md
|
|
175
|
+
|
|
176
|
+
### 5. Security
|
|
177
|
+
|
|
178
|
+
```yaml
|
|
179
|
+
secrets:
|
|
180
|
+
never: "Hardcode API keys, tokens, or credentials in source"
|
|
181
|
+
best: "Backend proxy for all sensitive API calls"
|
|
182
|
+
use: "--dart-define-from-file=.env for NON-SECRET build config only (feature flags, environment URLs)"
|
|
183
|
+
warning: "dart-define values are embedded in compiled binary and extractable via static analysis"
|
|
184
|
+
|
|
185
|
+
storage:
|
|
186
|
+
sensitive_data: "flutter_secure_storage v10+ (Keychain/Keystore)"
|
|
187
|
+
never: "SharedPreferences for tokens, PII, or credentials"
|
|
188
|
+
ios: "AppleOptions(useSecureEnclave: true) for high-value"
|
|
189
|
+
android: "AndroidOptions(encryptedSharedPreferences: true)"
|
|
190
|
+
web_warning: "flutter_secure_storage on Web uses localStorage by default (XSS vulnerable). Use HttpOnly cookies or in-memory-only for sensitive data."
|
|
191
|
+
|
|
192
|
+
network:
|
|
193
|
+
tls: "Certificate pinning (SPKI) for financial/health apps"
|
|
194
|
+
cleartext: "cleartextTrafficPermitted=false in network_security_config"
|
|
195
|
+
ios_ats: "NSAllowsArbitraryLoads=false (default, never override)"
|
|
196
|
+
|
|
197
|
+
release_builds:
|
|
198
|
+
obfuscate: "--obfuscate --split-debug-info=<path>"
|
|
199
|
+
proguard: "Configure android/app/proguard-rules.pro"
|
|
200
|
+
debug_check: "Remove all kDebugMode unguarded print() calls"
|
|
201
|
+
rule: "Never ship debug APK to production"
|
|
202
|
+
|
|
203
|
+
deep_links:
|
|
204
|
+
validate: "Allow-list all URI parameters with RegExp"
|
|
205
|
+
reject: "Arbitrary schemes and unvalidated paths"
|
|
206
|
+
prefer: "Universal Links (iOS) and App Links (Android) only"
|
|
207
|
+
|
|
208
|
+
logging:
|
|
209
|
+
rule: "Guard print() with kDebugMode"
|
|
210
|
+
prefer: "dart:developer log() for debug output"
|
|
211
|
+
never: "Log PII, tokens, or credentials"
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Reference: guides/flutter/security.md
|
|
215
|
+
|
|
216
|
+
### 6. Dart Language Patterns
|
|
217
|
+
|
|
218
|
+
```yaml
|
|
219
|
+
naming:
|
|
220
|
+
types: "UpperCamelCase for classes, enums, typedefs, extensions, mixins"
|
|
221
|
+
variables: "lowerCamelCase for variables, parameters, named constants"
|
|
222
|
+
libraries: "lowercase_with_underscores for libraries, packages, directories, source files"
|
|
223
|
+
constants: "lowerCamelCase for const (NOT SCREAMING_CAPS)"
|
|
224
|
+
private: "Prefix with underscore for library-private"
|
|
225
|
+
boolean: "Prefix with is/has/can/should"
|
|
226
|
+
avoid: "Hungarian notation, type prefixes, abbreviations unless universally known"
|
|
227
|
+
|
|
228
|
+
null_safety:
|
|
229
|
+
default: "Non-nullable types — use ? only when null is meaningful"
|
|
230
|
+
avoid_bang: "Minimize ! operator — use only when null is logically impossible"
|
|
231
|
+
late: "Only when initialization is guaranteed before use"
|
|
232
|
+
|
|
233
|
+
sealed_classes:
|
|
234
|
+
use_for: "Exhaustive pattern matching on state/result types"
|
|
235
|
+
pattern: "sealed class with subclass per state, exhaustive switch expression"
|
|
236
|
+
|
|
237
|
+
records:
|
|
238
|
+
use_for: "Lightweight multi-value returns without class boilerplate"
|
|
239
|
+
avoid: "Records for complex data — use freezed classes instead"
|
|
240
|
+
|
|
241
|
+
extension_types:
|
|
242
|
+
use_for: "Zero-cost type wrappers for primitive IDs"
|
|
243
|
+
|
|
244
|
+
immutability:
|
|
245
|
+
prefer: "final variables, const constructors"
|
|
246
|
+
collections: "UnmodifiableListView for exposed lists"
|
|
247
|
+
models: "freezed package for data classes"
|
|
248
|
+
|
|
249
|
+
async:
|
|
250
|
+
streams: "async* yield for reactive data pipelines"
|
|
251
|
+
futures: "async/await for sequential async operations"
|
|
252
|
+
isolates: "Isolate.run() for CPU-intensive work >16ms"
|
|
253
|
+
|
|
254
|
+
dynamic:
|
|
255
|
+
avoid: "dynamic type — use generics or Object? instead"
|
|
256
|
+
reason: "No compile-time type checking, reduces IDE support"
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Reference: guides/flutter/fundamentals.md
|
|
260
|
+
|
|
261
|
+
### 7. Architecture & Project Structure
|
|
262
|
+
|
|
263
|
+
```yaml
|
|
264
|
+
default_structure:
|
|
265
|
+
small_app: "lib/{models,services,screens,widgets}/"
|
|
266
|
+
medium_app: "lib/{ui/{core/,<feature>/},data/{repositories/,services/},domain/}"
|
|
267
|
+
large_app: "lib/{core/,features/<feature>/{data/,domain/,presentation/}}"
|
|
268
|
+
|
|
269
|
+
navigation:
|
|
270
|
+
default: "go_router (official recommendation)"
|
|
271
|
+
go_vs_push: "context.go() replaces stack; context.push() adds to stack"
|
|
272
|
+
|
|
273
|
+
dependency_injection:
|
|
274
|
+
riverpod: "Built-in — providers as DI (default)"
|
|
275
|
+
getit: "GetIt + injectable — for non-Riverpod projects"
|
|
276
|
+
rule: "Dependency direction always inward (UI → ViewModel → Repository → Service)"
|
|
277
|
+
|
|
278
|
+
environments:
|
|
279
|
+
pattern: "Flavors + --dart-define for multi-environment builds"
|
|
280
|
+
rule: "Separate bundle IDs, API URLs, and Firebase config per flavor"
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Reference: guides/flutter/architecture.md
|
|
284
|
+
|
|
285
|
+
## Default Stack
|
|
286
|
+
|
|
287
|
+
```yaml
|
|
288
|
+
state_management: Riverpod 3.0
|
|
289
|
+
navigation: go_router
|
|
290
|
+
models: freezed + json_serializable
|
|
291
|
+
di: Riverpod (built-in)
|
|
292
|
+
http: dio
|
|
293
|
+
linting: very_good_analysis
|
|
294
|
+
testing: flutter_test + mocktail
|
|
295
|
+
structure: Official MVVM (lib/{ui,data}/)
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## Enterprise Stack
|
|
299
|
+
|
|
300
|
+
```yaml
|
|
301
|
+
state_management: BLoC 9.0 + Cubit
|
|
302
|
+
navigation: go_router or auto_route
|
|
303
|
+
models: freezed + json_serializable
|
|
304
|
+
di: GetIt + injectable (or Riverpod)
|
|
305
|
+
http: dio with interceptors
|
|
306
|
+
testing: flutter_test + bloc_test + mocktail (80%+ coverage)
|
|
307
|
+
structure: Clean Architecture (features/{feature}/{presentation,domain,data}/)
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## Application
|
|
311
|
+
|
|
312
|
+
When writing or reviewing Flutter/Dart code:
|
|
313
|
+
|
|
314
|
+
1. **Always** use const constructors for static widgets
|
|
315
|
+
2. **Always** return Result<T> from repositories, never throw
|
|
316
|
+
3. **Always** use flutter_secure_storage for sensitive data
|
|
317
|
+
4. **Prefer** Riverpod 3.0 for new projects, BLoC for enterprise
|
|
318
|
+
5. **Prefer** StatelessWidget classes over helper functions
|
|
319
|
+
6. **Prefer** sealed classes for state/result types (exhaustive matching)
|
|
320
|
+
7. **Use** freezed for all data model classes
|
|
321
|
+
8. **Use** go_router for navigation with deep linking
|
|
322
|
+
9. **Guard** all print() with kDebugMode
|
|
323
|
+
10. **Never** use GetX for new projects (maintenance risk)
|
|
324
|
+
11. **Never** store sensitive data in SharedPreferences
|
|
325
|
+
12. **Never** hardcode API keys in source code
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gemini-exec
|
|
3
|
+
description: Execute Gemini CLI prompts and return results
|
|
4
|
+
scope: core
|
|
5
|
+
argument-hint: "<prompt> [--json] [--stream-json] [--output <path>] [--model <name>] [--timeout <ms>] [--sandbox] [--plan]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Gemini Exec Skill
|
|
10
|
+
|
|
11
|
+
Execute Google Gemini CLI prompts in non-interactive mode and return structured results. Enables Claude + Gemini hybrid workflows.
|
|
12
|
+
|
|
13
|
+
## Options
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
<prompt> Required. The prompt to send to Gemini CLI
|
|
17
|
+
--json Return structured JSON output (-o json)
|
|
18
|
+
--stream-json Return streaming JSON events (-o stream-json)
|
|
19
|
+
--output <path> Save response to file
|
|
20
|
+
--model <name> Model override (default: Gemini CLI default)
|
|
21
|
+
--timeout <ms> Execution timeout (default: 120000, max: 600000)
|
|
22
|
+
--yolo Enable auto-approval mode (gemini -y)
|
|
23
|
+
--sandbox Run in sandbox mode (gemini -s)
|
|
24
|
+
--plan Use plan approval mode (--approval-mode plan)
|
|
25
|
+
--working-dir Working directory for Gemini execution
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Workflow
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
1. Pre-checks
|
|
32
|
+
- Verify `gemini` binary is installed (which gemini)
|
|
33
|
+
- Verify authentication (GOOGLE_API_KEY, GEMINI_API_KEY, or gcloud auth)
|
|
34
|
+
2. Build command
|
|
35
|
+
- Base: gemini -p "<prompt>"
|
|
36
|
+
- Apply options: -o json, -m <model>, -y, -s, --approval-mode plan
|
|
37
|
+
3. Execute
|
|
38
|
+
- Run via Bash tool with timeout (default 2min, max 10min)
|
|
39
|
+
- Or use helper script: node .codex/skills/gemini-exec/scripts/gemini-wrapper.cjs
|
|
40
|
+
4. Parse output
|
|
41
|
+
- Text mode: return raw stdout
|
|
42
|
+
- JSON mode: parse single JSON object, extract response field
|
|
43
|
+
- Stream-JSON mode: parse event stream, extract final assistant message
|
|
44
|
+
5. Report results
|
|
45
|
+
- Format output with execution metadata
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Safety Defaults
|
|
49
|
+
|
|
50
|
+
- `-p` flag: Non-interactive prompt mode (no session persistence)
|
|
51
|
+
- Default mode: Normal approval (Gemini prompts for confirmation)
|
|
52
|
+
- Override with `--yolo` only when explicitly requested
|
|
53
|
+
- Sandbox mode (`-s`) available for isolated execution
|
|
54
|
+
|
|
55
|
+
## Output Format
|
|
56
|
+
|
|
57
|
+
### Success (Text Mode)
|
|
58
|
+
```
|
|
59
|
+
[Gemini Exec] Completed
|
|
60
|
+
|
|
61
|
+
Model: (default)
|
|
62
|
+
Duration: 23.4s
|
|
63
|
+
Working Dir: /path/to/project
|
|
64
|
+
|
|
65
|
+
--- Output ---
|
|
66
|
+
{gemini response text}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Success (JSON Mode)
|
|
70
|
+
```
|
|
71
|
+
[Gemini Exec] Completed (JSON)
|
|
72
|
+
|
|
73
|
+
Model: (default)
|
|
74
|
+
Duration: 23.4s
|
|
75
|
+
|
|
76
|
+
--- Response ---
|
|
77
|
+
{extracted response from JSON}
|
|
78
|
+
|
|
79
|
+
--- Stats ---
|
|
80
|
+
{token usage and other stats}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Success (Stream-JSON Mode)
|
|
84
|
+
```
|
|
85
|
+
[Gemini Exec] Completed (Stream-JSON)
|
|
86
|
+
|
|
87
|
+
Model: (default)
|
|
88
|
+
Duration: 23.4s
|
|
89
|
+
Events: 12
|
|
90
|
+
|
|
91
|
+
--- Final Message ---
|
|
92
|
+
{extracted final assistant message}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Failure
|
|
96
|
+
```
|
|
97
|
+
[Gemini Exec] Failed
|
|
98
|
+
|
|
99
|
+
Error: {error_message}
|
|
100
|
+
Exit Code: {code}
|
|
101
|
+
Suggested Fix: {suggestion}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Helper Script
|
|
105
|
+
|
|
106
|
+
For complex executions, use the wrapper script:
|
|
107
|
+
```bash
|
|
108
|
+
node .codex/skills/gemini-exec/scripts/gemini-wrapper.cjs --prompt "your prompt" [options]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
The wrapper provides:
|
|
112
|
+
- Environment validation (binary + auth checks)
|
|
113
|
+
- Safe command construction
|
|
114
|
+
- JSON and stream-JSON parsing with response extraction
|
|
115
|
+
- Structured JSON output
|
|
116
|
+
- Timeout handling with graceful termination
|
|
117
|
+
|
|
118
|
+
## Examples
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Simple text prompt
|
|
122
|
+
gemini-exec "explain what this project does"
|
|
123
|
+
|
|
124
|
+
# JSON output with model override
|
|
125
|
+
gemini-exec "list all TODO items" --json --model gemini-2.5-pro
|
|
126
|
+
|
|
127
|
+
# Stream-JSON for detailed event tracking
|
|
128
|
+
gemini-exec "analyze the codebase" --stream-json
|
|
129
|
+
|
|
130
|
+
# Save output to file
|
|
131
|
+
gemini-exec "generate a README" --output ./README.md
|
|
132
|
+
|
|
133
|
+
# Sandbox mode with auto-approval
|
|
134
|
+
gemini-exec "fix the failing tests" --yolo --sandbox
|
|
135
|
+
|
|
136
|
+
# Plan mode for careful execution
|
|
137
|
+
gemini-exec "refactor the auth module" --plan
|
|
138
|
+
|
|
139
|
+
# Specify working directory
|
|
140
|
+
gemini-exec "analyze the codebase" --working-dir /path/to/project
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Integration
|
|
144
|
+
|
|
145
|
+
Works with the orchestrator pattern:
|
|
146
|
+
- Main conversation delegates Gemini execution via this skill
|
|
147
|
+
- Results are returned to the main conversation for further processing
|
|
148
|
+
- Can be chained with other skills (e.g., dev-review after Gemini generates code)
|
|
149
|
+
|
|
150
|
+
## Availability Check
|
|
151
|
+
|
|
152
|
+
gemini-exec requires the Gemini CLI binary to be installed and authenticated. The skill is only usable when:
|
|
153
|
+
|
|
154
|
+
1. `gemini` binary is found in PATH (`which gemini` succeeds)
|
|
155
|
+
2. Authentication is valid (GOOGLE_API_KEY, GEMINI_API_KEY set, or gcloud auth active)
|
|
156
|
+
|
|
157
|
+
If either check fails, this skill cannot be used. Fall back to Claude agents for the task.
|
|
158
|
+
|
|
159
|
+
> **Note**: This skill is invoked via `/gemini-exec` command, delegated by the orchestrator, or suggested by routing skills when gemini is available. The intent-detection system can trigger it for research and code generation hybrid workflows.
|
|
160
|
+
|
|
161
|
+
## Agent Teams Integration
|
|
162
|
+
|
|
163
|
+
When used within Agent Teams (requires explicit invocation):
|
|
164
|
+
|
|
165
|
+
1. **As delegated task**: orchestrator explicitly delegates gemini-exec for code generation
|
|
166
|
+
2. **Hybrid workflow**: Claude team member analyzes → orchestrator invokes gemini-exec → Claude reviews
|
|
167
|
+
3. **Iteration**: Team messaging enables review-fix cycles between Claude and Gemini outputs
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
Orchestrator delegates generation task
|
|
171
|
+
→ /gemini-exec invoked explicitly
|
|
172
|
+
→ Output returned to orchestrator
|
|
173
|
+
→ Reviewer validates quality
|
|
174
|
+
→ Iterate if needed
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Research Workflow
|
|
178
|
+
|
|
179
|
+
When the orchestrator or intent-detection detects a research request:
|
|
180
|
+
|
|
181
|
+
1. **Check Gemini availability**: Verify `gemini` binary and auth
|
|
182
|
+
2. **If available**: Execute prompt for research
|
|
183
|
+
3. **If unavailable**: Fall back to Claude's WebFetch/WebSearch
|
|
184
|
+
|
|
185
|
+
### Research Command Pattern
|
|
186
|
+
```
|
|
187
|
+
/gemini-exec "Research and analyze: {topic}. Provide structured findings with sources." --json
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Code Generation Workflow
|
|
191
|
+
|
|
192
|
+
When routing skills detect a code generation task and gemini is available:
|
|
193
|
+
|
|
194
|
+
1. **Check availability**: Verify gemini CLI via `/tmp/.codex-env-status-*`
|
|
195
|
+
2. **If available + new file creation**: Suggest hybrid workflow
|
|
196
|
+
3. **Hybrid pattern**:
|
|
197
|
+
- gemini-exec generates initial code (fast, broad generation)
|
|
198
|
+
- Claude expert reviews for quality, patterns, best practices
|
|
199
|
+
- Iterate if needed
|
|
200
|
+
|
|
201
|
+
### Suitable Tasks
|
|
202
|
+
- New file scaffolding
|
|
203
|
+
- Boilerplate generation
|
|
204
|
+
- Test stub creation
|
|
205
|
+
- Documentation generation
|
|
206
|
+
|
|
207
|
+
### Unsuitable Tasks
|
|
208
|
+
- Modifying existing code (Claude expert better at understanding context)
|
|
209
|
+
- Architecture decisions (requires reasoning, not generation)
|
|
210
|
+
- Bug fixes (requires deep code understanding)
|
|
211
|
+
|
|
212
|
+
### Code Generation Command Pattern
|
|
213
|
+
```
|
|
214
|
+
/gemini-exec "Generate {description} following {framework} best practices" --yolo
|
|
215
|
+
```
|