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,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rust-best-practices
|
|
3
|
+
description: Idiomatic Rust patterns from official guidelines
|
|
4
|
+
scope: core
|
|
5
|
+
user-invocable: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Apply idiomatic Rust patterns and best practices from official documentation.
|
|
11
|
+
|
|
12
|
+
## Core Principles
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Safety without garbage collection
|
|
16
|
+
Zero-cost abstractions
|
|
17
|
+
Fearless concurrency
|
|
18
|
+
Ownership as a feature
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
### 1. Naming Conventions
|
|
24
|
+
|
|
25
|
+
```yaml
|
|
26
|
+
crates:
|
|
27
|
+
style: snake_case or kebab-case
|
|
28
|
+
example: my_crate, my-crate
|
|
29
|
+
|
|
30
|
+
modules:
|
|
31
|
+
style: snake_case
|
|
32
|
+
example: my_module
|
|
33
|
+
|
|
34
|
+
types:
|
|
35
|
+
style: UpperCamelCase
|
|
36
|
+
example: MyStruct, MyEnum
|
|
37
|
+
|
|
38
|
+
traits:
|
|
39
|
+
style: UpperCamelCase
|
|
40
|
+
example: Iterator, Display
|
|
41
|
+
|
|
42
|
+
functions_methods:
|
|
43
|
+
style: snake_case
|
|
44
|
+
example: my_function, get_value
|
|
45
|
+
|
|
46
|
+
constants:
|
|
47
|
+
style: SCREAMING_SNAKE_CASE
|
|
48
|
+
example: MAX_SIZE
|
|
49
|
+
|
|
50
|
+
type_parameters:
|
|
51
|
+
style: single uppercase or CamelCase
|
|
52
|
+
example: T, E, Item
|
|
53
|
+
|
|
54
|
+
lifetimes:
|
|
55
|
+
style: short lowercase
|
|
56
|
+
example: 'a, 'b, 'static
|
|
57
|
+
|
|
58
|
+
macros:
|
|
59
|
+
style: snake_case!
|
|
60
|
+
example: vec!, println!
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 2. Ownership and Borrowing
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
principles:
|
|
67
|
+
- Each value has exactly one owner
|
|
68
|
+
- References cannot outlive the data they reference
|
|
69
|
+
- Either one mutable reference OR many immutable references
|
|
70
|
+
|
|
71
|
+
prefer:
|
|
72
|
+
- "&T over T" when not needing ownership
|
|
73
|
+
- "&mut T over T" when modifying without consuming
|
|
74
|
+
- "T over Box<T>" when size is known at compile time
|
|
75
|
+
|
|
76
|
+
avoid:
|
|
77
|
+
- Clone when borrowing suffices
|
|
78
|
+
- RefCell unless interior mutability is needed
|
|
79
|
+
- Unsafe unless absolutely necessary
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3. Error Handling
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
result_type:
|
|
86
|
+
- Return Result<T, E> for recoverable errors
|
|
87
|
+
- Use ? operator for propagation
|
|
88
|
+
- Define custom error types for libraries
|
|
89
|
+
|
|
90
|
+
option_type:
|
|
91
|
+
- Use Option<T> for nullable values
|
|
92
|
+
- Prefer map/and_then over match when appropriate
|
|
93
|
+
- Use unwrap_or, unwrap_or_else, unwrap_or_default
|
|
94
|
+
|
|
95
|
+
panic:
|
|
96
|
+
- Only for unrecoverable errors
|
|
97
|
+
- Use in tests with assert!, assert_eq!
|
|
98
|
+
- Avoid in library code
|
|
99
|
+
|
|
100
|
+
patterns: |
|
|
101
|
+
// Propagation with ?
|
|
102
|
+
fn read_file() -> Result<String, io::Error> {
|
|
103
|
+
let mut file = File::open("file.txt")?;
|
|
104
|
+
let mut contents = String::new();
|
|
105
|
+
file.read_to_string(&mut contents)?;
|
|
106
|
+
Ok(contents)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Custom error type
|
|
110
|
+
#[derive(Debug)]
|
|
111
|
+
enum MyError {
|
|
112
|
+
Io(io::Error),
|
|
113
|
+
Parse(ParseIntError),
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 4. Traits and Generics
|
|
118
|
+
|
|
119
|
+
```yaml
|
|
120
|
+
trait_design:
|
|
121
|
+
- Keep traits focused and small
|
|
122
|
+
- Use associated types for output types
|
|
123
|
+
- Implement standard traits: Debug, Clone, Default, PartialEq
|
|
124
|
+
|
|
125
|
+
standard_traits:
|
|
126
|
+
- Debug: for debugging output
|
|
127
|
+
- Clone: explicit duplication
|
|
128
|
+
- Default: default value construction
|
|
129
|
+
- PartialEq, Eq: equality comparison
|
|
130
|
+
- PartialOrd, Ord: ordering
|
|
131
|
+
- Hash: for HashMap keys
|
|
132
|
+
- Display: user-facing output
|
|
133
|
+
- From/Into: type conversion
|
|
134
|
+
|
|
135
|
+
generics:
|
|
136
|
+
- Use trait bounds to specify requirements
|
|
137
|
+
- Prefer impl Trait in argument position
|
|
138
|
+
- Use where clauses for complex bounds
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 5. Memory Management
|
|
142
|
+
|
|
143
|
+
```yaml
|
|
144
|
+
stack_vs_heap:
|
|
145
|
+
- Stack: fixed-size, Copy types
|
|
146
|
+
- Heap: dynamic-size, Box, Vec, String
|
|
147
|
+
|
|
148
|
+
smart_pointers:
|
|
149
|
+
- Box<T>: heap allocation with single owner
|
|
150
|
+
- Rc<T>: reference counting (single-threaded)
|
|
151
|
+
- Arc<T>: atomic reference counting (multi-threaded)
|
|
152
|
+
- RefCell<T>: interior mutability
|
|
153
|
+
|
|
154
|
+
avoid_leaks:
|
|
155
|
+
- Drop trait for cleanup
|
|
156
|
+
- RAII pattern for resources
|
|
157
|
+
- Weak references to break cycles
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 6. Concurrency
|
|
161
|
+
|
|
162
|
+
```yaml
|
|
163
|
+
send_sync:
|
|
164
|
+
- Send: safe to transfer between threads
|
|
165
|
+
- Sync: safe to share references between threads
|
|
166
|
+
|
|
167
|
+
primitives:
|
|
168
|
+
- Mutex<T>: mutual exclusion
|
|
169
|
+
- RwLock<T>: multiple readers or one writer
|
|
170
|
+
- Arc<T>: thread-safe reference counting
|
|
171
|
+
- mpsc: channels for message passing
|
|
172
|
+
|
|
173
|
+
patterns: |
|
|
174
|
+
// Shared state with Arc and Mutex
|
|
175
|
+
let counter = Arc::new(Mutex::new(0));
|
|
176
|
+
let counter_clone = Arc::clone(&counter);
|
|
177
|
+
|
|
178
|
+
thread::spawn(move || {
|
|
179
|
+
let mut num = counter_clone.lock().unwrap();
|
|
180
|
+
*num += 1;
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
// Message passing
|
|
184
|
+
let (tx, rx) = mpsc::channel();
|
|
185
|
+
thread::spawn(move || {
|
|
186
|
+
tx.send(value).unwrap();
|
|
187
|
+
});
|
|
188
|
+
let received = rx.recv().unwrap();
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### 7. API Design
|
|
192
|
+
|
|
193
|
+
```yaml
|
|
194
|
+
guidelines:
|
|
195
|
+
- Accept borrowed data when possible
|
|
196
|
+
- Return owned data when the caller needs it
|
|
197
|
+
- Use Into/AsRef for flexible parameters
|
|
198
|
+
- Implement standard conversion traits
|
|
199
|
+
|
|
200
|
+
constructors:
|
|
201
|
+
- new() for primary constructor
|
|
202
|
+
- with_* for alternative constructors
|
|
203
|
+
- Builder pattern for many parameters
|
|
204
|
+
|
|
205
|
+
methods:
|
|
206
|
+
- is_* for boolean queries
|
|
207
|
+
- as_* for cheap conversions (borrows)
|
|
208
|
+
- to_* for expensive conversions (copies)
|
|
209
|
+
- into_* for ownership transfers
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### 8. Documentation
|
|
213
|
+
|
|
214
|
+
```yaml
|
|
215
|
+
rules:
|
|
216
|
+
- Document all public items
|
|
217
|
+
- Include examples in doc comments
|
|
218
|
+
- Use # Examples section
|
|
219
|
+
- Document panics, errors, safety
|
|
220
|
+
|
|
221
|
+
format: |
|
|
222
|
+
/// Brief description.
|
|
223
|
+
///
|
|
224
|
+
/// More detailed explanation if needed.
|
|
225
|
+
///
|
|
226
|
+
/// # Examples
|
|
227
|
+
///
|
|
228
|
+
/// ```
|
|
229
|
+
/// let result = my_function(42);
|
|
230
|
+
/// assert_eq!(result, 84);
|
|
231
|
+
/// ```
|
|
232
|
+
///
|
|
233
|
+
/// # Panics
|
|
234
|
+
///
|
|
235
|
+
/// Panics if the input is zero.
|
|
236
|
+
pub fn my_function(x: i32) -> i32 {
|
|
237
|
+
x * 2
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### 9. Project Structure
|
|
242
|
+
|
|
243
|
+
```yaml
|
|
244
|
+
layout:
|
|
245
|
+
- src/lib.rs or src/main.rs: crate root
|
|
246
|
+
- src/bin/: additional binaries
|
|
247
|
+
- tests/: integration tests
|
|
248
|
+
- benches/: benchmarks
|
|
249
|
+
- examples/: example programs
|
|
250
|
+
|
|
251
|
+
modules:
|
|
252
|
+
- One module per file
|
|
253
|
+
- mod.rs or filename.rs for module
|
|
254
|
+
- pub use for re-exports
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Application
|
|
258
|
+
|
|
259
|
+
When writing or reviewing Rust code:
|
|
260
|
+
|
|
261
|
+
1. **Always** handle ownership correctly
|
|
262
|
+
2. **Always** handle errors with Result/Option
|
|
263
|
+
3. **Prefer** borrowing over cloning
|
|
264
|
+
4. **Prefer** zero-cost abstractions
|
|
265
|
+
5. **Implement** standard traits (Debug, Clone, etc.)
|
|
266
|
+
6. **Document** public APIs with examples
|
|
267
|
+
7. **Avoid** unsafe unless necessary
|
|
268
|
+
8. **Use** clippy for linting
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omcodex:sauron-watch
|
|
3
|
+
description: Full R017 verification (5+3 rounds) before commit
|
|
4
|
+
scope: harness
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
user-invocable: true
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Sauron Watch Skill
|
|
10
|
+
|
|
11
|
+
Execute full R017 verification process with 5 rounds of manager agent verification and 3 rounds of deep review.
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Ensure complete synchronization of agents, skills, documentation, and project structure before committing changes.
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
### Phase 1: Manager Agent Verification (5 rounds)
|
|
20
|
+
|
|
21
|
+
#### Round 1-2: Basic Checks
|
|
22
|
+
```
|
|
23
|
+
□ mgr-supplier:audit - Check all agent dependencies and skill refs
|
|
24
|
+
□ mgr-updater:docs - Verify documentation sync
|
|
25
|
+
□ Fix any issues found
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
#### Round 3-4: Re-verify + Update
|
|
29
|
+
```
|
|
30
|
+
□ mgr-supplier:audit - Re-verify after fixes
|
|
31
|
+
□ mgr-updater:docs - Re-run and apply any detected changes
|
|
32
|
+
□ Fix any remaining issues
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
#### Round 5: Final Count Verification
|
|
36
|
+
```
|
|
37
|
+
□ Agent count matches: AGENTS.md vs actual .md files
|
|
38
|
+
□ Skill count matches: AGENTS.md vs actual SKILL.md files
|
|
39
|
+
□ Memory field distribution correct
|
|
40
|
+
□ Hook/context/guide/rule counts match
|
|
41
|
+
□ All frontmatter valid
|
|
42
|
+
□ All skill refs exist
|
|
43
|
+
□ All memory scopes valid (project|user|local)
|
|
44
|
+
□ Routing patterns updated
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Phase 2: Deep Review (3 rounds)
|
|
48
|
+
|
|
49
|
+
#### Deep Round 1: Workflow Alignment
|
|
50
|
+
```
|
|
51
|
+
□ Agent workflows match purpose
|
|
52
|
+
□ Command definitions match implementations
|
|
53
|
+
□ Routing skill patterns are valid
|
|
54
|
+
□ All routing skills have complete agent mappings
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
#### Structural Lint Rules
|
|
58
|
+
|
|
59
|
+
In addition to workflow alignment checks, verify these structural invariants:
|
|
60
|
+
|
|
61
|
+
**Lint 1: Routing Coverage**
|
|
62
|
+
```
|
|
63
|
+
For each agent in .codex/agents/*.md:
|
|
64
|
+
Check if agent name appears in at least one routing skill:
|
|
65
|
+
- secretary-routing/SKILL.md
|
|
66
|
+
- dev-lead-routing/SKILL.md
|
|
67
|
+
- de-lead-routing/SKILL.md
|
|
68
|
+
- qa-lead-routing/SKILL.md
|
|
69
|
+
|
|
70
|
+
If not found in any routing skill:
|
|
71
|
+
WARN: "{agent} is unreachable — not referenced in any routing skill"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Lint 2: Orphan Skill Detection**
|
|
75
|
+
```
|
|
76
|
+
For each skill in .codex/skills/*/SKILL.md:
|
|
77
|
+
Check if skill name appears in:
|
|
78
|
+
- Any agent's skills: [] frontmatter field
|
|
79
|
+
- Any routing skill's content
|
|
80
|
+
- AGENTS.md command table (for user-invocable skills)
|
|
81
|
+
|
|
82
|
+
If not referenced anywhere:
|
|
83
|
+
WARN: "{skill} is orphaned — not referenced by any agent or routing skill"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Lint 3: Circular Dependency Check**
|
|
87
|
+
```
|
|
88
|
+
Build dependency graph:
|
|
89
|
+
For each agent → extract skills: [] references
|
|
90
|
+
For each skill → extract agent references in body
|
|
91
|
+
|
|
92
|
+
Detect cycles: agent-A → skill-X → agent-A
|
|
93
|
+
If cycle found:
|
|
94
|
+
ERROR: "Circular dependency: {cycle path}"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Lint 4: Context Fork Cap Verification**
|
|
98
|
+
```
|
|
99
|
+
Count skills with context: fork in frontmatter:
|
|
100
|
+
grep "context: fork" .codex/skills/*/SKILL.md
|
|
101
|
+
|
|
102
|
+
If count > 10:
|
|
103
|
+
ERROR: "Context fork cap exceeded: {count}/10"
|
|
104
|
+
If count >= 8:
|
|
105
|
+
WARN: "Context fork usage high: {count}/10 — only {10-count} slots remaining"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
All structural lints are **advisory** (WARN level) except circular dependencies and fork cap exceeded (ERROR level — should block commit).
|
|
109
|
+
|
|
110
|
+
#### Deep Round 2: Reference Verification
|
|
111
|
+
```
|
|
112
|
+
□ All skill references exist
|
|
113
|
+
□ All agent frontmatter valid
|
|
114
|
+
□ memory field values valid (user | project | local)
|
|
115
|
+
□ No orphaned agents
|
|
116
|
+
□ No circular references
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### Deep Round 3: Philosophy Compliance
|
|
120
|
+
```
|
|
121
|
+
□ R006: Agent design rules (including memory field spec)
|
|
122
|
+
□ R007: Agent identification rules
|
|
123
|
+
□ R008: Tool identification rules
|
|
124
|
+
□ R009: Parallel execution rules
|
|
125
|
+
□ R010: Orchestrator coordination rules
|
|
126
|
+
□ R011: Memory integration (native-first architecture)
|
|
127
|
+
□ All MUST rules enforced, SHOULD rules recommended
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
#### Spec Density Check (Advisory)
|
|
131
|
+
|
|
132
|
+
Check each agent's body-to-skill ratio to detect agents with too much inline implementation detail:
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
For each agent in .codex/agents/*.md:
|
|
136
|
+
agent_body_LOC = count non-frontmatter, non-blank lines in agent body
|
|
137
|
+
referenced_skills = extract skills from frontmatter skills: field
|
|
138
|
+
total_skill_LOC = sum of LOC in each referenced SKILL.md
|
|
139
|
+
|
|
140
|
+
if total_skill_LOC > 0:
|
|
141
|
+
spec_density = agent_body_LOC / total_skill_LOC
|
|
142
|
+
if spec_density > 0.5:
|
|
143
|
+
WARN: "{agent} has spec density {spec_density:.2f} — consider extracting inline details to skills"
|
|
144
|
+
else:
|
|
145
|
+
if agent_body_LOC > 50:
|
|
146
|
+
INFO: "{agent} has {agent_body_LOC} LOC with no skill references — consider creating skills"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Thresholds**:
|
|
150
|
+
| Density | Status | Meaning |
|
|
151
|
+
|---------|--------|---------|
|
|
152
|
+
| ≤ 0.3 | Good | Agent properly delegates to skills |
|
|
153
|
+
| 0.3-0.5 | OK | Acceptable inline detail |
|
|
154
|
+
| > 0.5 | WARNING | Too much implementation in agent body |
|
|
155
|
+
|
|
156
|
+
This check is **advisory only** — it does not block commits.
|
|
157
|
+
|
|
158
|
+
### Phase 2.5: Documentation Accuracy
|
|
159
|
+
```
|
|
160
|
+
□ Every agent name in AGENTS.md matches actual filename
|
|
161
|
+
□ All counts cross-verified against filesystem
|
|
162
|
+
□ Every slash command has corresponding skill
|
|
163
|
+
□ Every agent reachable through routing skills
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Phase 3: Fix Issues
|
|
167
|
+
```
|
|
168
|
+
□ Auto-fix: count mismatches, missing fields, outdated refs
|
|
169
|
+
□ Report: missing files, invalid scopes, philosophy violations
|
|
170
|
+
□ Re-run verification if major fixes made
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Phase 4: Commit Ready
|
|
174
|
+
```
|
|
175
|
+
□ All verification passed
|
|
176
|
+
□ Ready to delegate to mgr-gitnerd for commit
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Output Format
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
[mgr-sauron:watch]
|
|
183
|
+
|
|
184
|
+
Starting full R017 verification...
|
|
185
|
+
|
|
186
|
+
═══════════════════════════════════════════════════════════
|
|
187
|
+
PHASE 1: Manager Agent Verification (5 rounds)
|
|
188
|
+
═══════════════════════════════════════════════════════════
|
|
189
|
+
|
|
190
|
+
[Round 1/5] mgr-supplier:audit
|
|
191
|
+
✓ 41 agents checked, 0 issues
|
|
192
|
+
|
|
193
|
+
[Round 2/5] mgr-updater:docs
|
|
194
|
+
✓ Documentation sync: OK
|
|
195
|
+
|
|
196
|
+
[Round 3/5] Re-verify: mgr-supplier:audit
|
|
197
|
+
✓ All dependencies valid
|
|
198
|
+
|
|
199
|
+
[Round 4/5] Re-verify: mgr-updater:docs
|
|
200
|
+
✓ No changes needed
|
|
201
|
+
|
|
202
|
+
[Round 5/5] Final count verification
|
|
203
|
+
✓ Agents: 41/41 match
|
|
204
|
+
✓ Skills: 55/55 match
|
|
205
|
+
✓ All frontmatter valid
|
|
206
|
+
✓ All skill refs valid
|
|
207
|
+
✓ All memory scopes valid
|
|
208
|
+
|
|
209
|
+
═══════════════════════════════════════════════════════════
|
|
210
|
+
PHASE 2: Deep Review (3 rounds)
|
|
211
|
+
═══════════════════════════════════════════════════════════
|
|
212
|
+
|
|
213
|
+
[Round 1/3] Workflow alignment
|
|
214
|
+
✓ All routing skills have complete agent mappings
|
|
215
|
+
✓ Command definitions match implementations
|
|
216
|
+
|
|
217
|
+
[Round 2/3] Reference verification
|
|
218
|
+
✓ All skill references valid
|
|
219
|
+
✓ No orphaned agents
|
|
220
|
+
|
|
221
|
+
[Round 3/3] Philosophy compliance
|
|
222
|
+
✓ R006 separation enforced
|
|
223
|
+
✓ R009 parallel execution enabled
|
|
224
|
+
✓ R010 orchestrator coordination documented
|
|
225
|
+
✓ R007/R008 identification rules present
|
|
226
|
+
|
|
227
|
+
═══════════════════════════════════════════════════════════
|
|
228
|
+
VERIFICATION COMPLETE
|
|
229
|
+
═══════════════════════════════════════════════════════════
|
|
230
|
+
|
|
231
|
+
Status: ✓ ALL CHECKS PASSED
|
|
232
|
+
|
|
233
|
+
Ready to commit. 커밋할까요?
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Related
|
|
237
|
+
|
|
238
|
+
- R017: Sync Verification Rules
|
|
239
|
+
- mgr-gitnerd: Git operations agent
|