Best for
- Use when building server, dispatcher, gateway, packaging, and runtime integration.
dcc-mcp/dcc-mcp-core/skills/dcc-mcp-creator/SKILL.md
Infrastructure skill - guide developers and agents through creating or modernizing a DCC-MCP adapter or standalone internal MCP service for Nuke, Blender, 3ds Max, Unreal, ZBrush, Houdini, Maya, and custom studio systems. Use when building server, dispatcher, gateway, packaging, and runtime integration. Not for authoring individual SKILL.md tool packages - use dcc-mcp-skills-creator.
Decision brief
Use this skill when you are creating a new DCC-MCP adapter, modernizing an existing adapter repository, or exposing a private non-DCC studio system as a standalone MCP service: server composition, host-thread dispatch, sidecar/gateway wiring, readiness, resources, project state,…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/dcc-mcp/dcc-mcp-core --skill "skills/dcc-mcp-creator"Inspect the Agent Skill "dcc-mcp-creator" from https://github.com/dcc-mcp/dcc-mcp-core/blob/c8897284163ffaa56c7d45246601e5e6ce962cbe/skills/dcc-mcp-creator/SKILL.md at commit c8897284163ffaa56c7d45246601e5e6ce962cbe. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Classify the ownership boundary before creating files: - Public DCC adapter: run dcc-mcp-cli dcc-types; improve an existing adapter instead of creating a duplicate. Add a genuinely new public adapter to dcc-mcp-catalog.yml and the compatibility matrix. A pip install entry req…
Review the “A declarative in-process tool returns this runner. HostExecutionBridge” section in the pinned source before continuing.
Install the published @loonghao/dcc-mcp-creator package, then start a new agent turn:
Use the dcc-mcp skill and dcc-mcp-cli for discovery, validation, and live DCC control whenever the agent can run shell commands. If the CLI is missing, follow the consent-gated official installation instructions in dcc-mcp. Before long-lived validation, run dcc-mcp-cli update ch…
DCC startup hook: adapter code running inside the host at application startup; it prepares env/instance data and launches the service path without blocking the DCC UI/main thread.
Permission review
The documentation asks the agent to run terminal commands or scripts.
npx --yes [email protected] install @loonghao/dcc-mcp-creatorThe documentation asks the agent to run terminal commands or scripts.
DCC control whenever the agent can run shell commands. If the CLI is missing,The documentation asks the agent to create, modify, or delete local files.
private registry workflow. Do not create or publish a public repositoryEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 95/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 40 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill when you are creating a new DCC-MCP adapter, modernizing an existing adapter repository, or exposing a private non-DCC studio system as a standalone MCP service: server composition, host-thread dispatch, sidecar/gateway wiring, readiness, resources, project state, diagnostics, install lifecycle, or cross-DCC verification. A local folder, intranet source tree, or private monorepo is sufficient; GitHub is not a runtime requirement.
For individual skill packages (SKILL.md, tools.yaml, scripts, groups, and
skill taxonomy), load dcc-mcp-skills-creator instead.
Install the published
@loonghao/dcc-mcp-creator
package, then start a new agent turn:
openclaw skills install @loonghao/dcc-mcp-creator
npx --yes [email protected] install @loonghao/dcc-mcp-creator
Use dcc-mcp to operate an
existing DCC. Use
dcc-mcp-skills-creator
when only a DCC-specific Skill package is needed.
Use the dcc-mcp skill and dcc-mcp-cli for discovery, validation, and live
DCC control whenever the agent can run shell commands. If the CLI is missing,
follow the consent-gated official installation instructions in dcc-mcp.
Before long-lived validation, run dcc-mcp-cli update check; use
dcc-mcp-cli update apply to verify and stage the latest CLI for the next
launch. Apply-time verification is installation-bound and legacy unsigned
staging is quarantined. Official update manifests additionally require the
release workflow's detached Sigstore provenance. This does not replace a running server binary; update
the server from its exact target environment. Gateway Admin is check-only.
DccServerBase and Rust sidecars both participate as per-DCC services.dcc-mcp-sidecar child launched through the stable dcc-mcp-server sidecar command; it bridges host RPC to MCP/REST and exits when the watched DCC dies.dcc-mcp-server gateway process that owns routing, dynamic capability search/describe/call, and Gateway Admin./health and re-ensures the daemon through gateway-launch.lock; it is not a separate process.pid/sentinel prove the service itself is alive.host_pid; both owner and host must stay alive. Standalone/headless services intentionally have no bound host.dcc-mcp-cli dcc-types; improve an existing
adapter instead of creating a duplicate. Add a genuinely new public
adapter to dcc-mcp-catalog.yml and the compatibility matrix. A pip
install entry requires the released universal wheel's exact HTTPS URL,
catalog version, and SHA-256; omit install metadata until it is published.dcc-mcp-cli install plans.dcc-mcp-skills-creator.requires-python = ">=3.7" is unchanged before any release. py37-lite fallback does NOT satisfy release gates. Removal requires an accepted superseding ADR, a major release, and at least 180 days of notice.DccServerBase + DccServerOptions.from_env(...).
Classify the runtime lifetime explicitly:
watch_pid=current_dcc_pid; core publishes the sidecar owner and bound host as separate liveness signals.dcc_pid=current_dcc_pid so McpHttpConfig.host_pid binds discovery to the DCC lifetime.instance_type="standalone", leave dcc_pid unset, and do not bind it to an optional GUI process. Runtime identity is independent from standalone_main_thread, which controls tool execution only.HostExecutionBridge; do not hand-roll a second script executor. Standalone services with no host-thread boundary should keep the default inline execution path.
For file-backed typed main(**params) execution, publish mapping annotations
only when their keys are strings (Dict[str, V]). Validate the requested
SHA-256, derived schema, and structured params before materializing inline
source; an invalid request must leave no script or sidecar file behind.dcc_name/custom service id, server_name, env-var prefix, skill names, and gateway metadata.
Leave the instance port unset so core resolves DCC_MCP_<DCC>_PORT or asks the OS for a free port.MinimalModeConfig, project tools, resources, diagnostics, context snapshots, install lifecycle, and gateway failover before writing adapter-local wrappers. Python DccServerBase.collect_skill_search_paths() includes marketplace-installed skills under ~/.dcc-mcp/marketplace/<dcc> (or DCC_MCP_MARKETPLACE_INSTALL_ROOT/<dcc>) when the directory exists, so adapters should not add a second marketplace path convention. Hermetic adapter tests should set DCC_MCP_DISABLE_DEFAULT_SKILL_PATHS=1; this excludes implicit local/platform defaults, marketplace installs, and Admin custom paths while explicit, bundled, and environment-provided skill paths remain active.
DccServerBase also owns DiagnosticRuntimeState; do not add adapter-level
recorder, sandbox, screenshot-capturer, dispatcher, server, or instance-context
globals. Standalone registration code may inject one state into both
diagnostic registration helpers.
It also owns feedback_store, script_execution_context, and
checkpoint_store; inject them into core helpers instead of creating
adapter-level feedback buffers, persistent exec namespaces, or default stores.
Core persists gateway-accepted feedback under
<registry_dir>/feedback/<dcc>-<pid>.jsonl with bounded rotation and
session-end syncing. Treat feedback_persistence_failed as a real degraded
result; never add an adapter-local success fallback.
ui-control skill with
standalone dcc-cua 0.4.0 or newer; do not add adapter-local capture,
accessibility, or raw-input wrappers. Keep stateful UI calls in one
long-lived adapter process so each logical session retains its persistent
CUA bridge and window capability. Preserve capture_provenance with
evidence. The shared CUA Host owns platform accessibility, capture,
banner/border/cursor markers, Escape interruption, input serialization,
and recording. ui-control remains requires_in_process: true with
affinity: any; register HostExecutionBridge before skill loading.ui-control. Agents should make an explicit, agent-directed transition into the scoped
snapshot → one act → snapshot loop only when an operation is
unsupported, no suitable tool exists, or semantic UI Automation cannot
reach the required control. Re-observe after every action.menu_path through
ui_control__act(action="invoke_menu") when semantic click or Alt-mnemonic
delivery cannot prove that a Qt popup opened. Require the negotiated
native_menu_path Host capability, honor verification_required, and
re-observe the exact window before another mutation.DCC_MCP_CUA_ALLOW_RAW_INPUT=false to disable that runtime ceiling; the
adapter must not override this choice. Populate DccServerOptions with
the adapter's DCC PID and, when available, its current window title or
handle; Core injects that trusted scope into in-process ui-control calls.
Dedicated servers may instead use DCC_MCP_UI_CONTROL_PROCESS_ID or
DCC_MCP_UI_CONTROL_WINDOW_HANDLE operator overrides. Request scope may
only narrow that trusted PID/HWND, including a title constraint for one
window inside a multi-window process. Require a visible unlocked desktop
and matching Windows integrity level, preserve the click-through
border/banner/pointer feedback, and preserve
user_interrupted without automatic retry, session_id changes, or fallback. Once Esc stops an
session, only ui_control__snapshot(resume_computer_use=true) may request a
resume, and the isolated host must still obtain trusted user confirmation
before clearing the latch. Always call ui_control__stop_computer_use when
the workflow ends.
Never transition or retry through another UI/input path after a policy,
authorization, authentication, security, confirmation,
desktop_unavailable, or user_interrupted result.
Keep mutating UI Control tools annotated as destructive. The optional
intent may only raise the native host's independent UIA/input
classification. Do not introduce a model-supplied confirmed/approved
flag or environment bypass.dcc-mcp-cli gateway ..., list/search/describe/call) as the user UX; treat dcc-mcp-server modes as runtime plumbing. Read docs/guide/gateway.md before changing daemon, guardian, sentinel, registry, or idle-timeout behavior.
Gateway discovery reuses a recent capability snapshot across adjacent
queries. Route adapter catalog changes through the existing
load/reload/unload contracts that force a refresh; never depend on every
search polling the full backend catalog.
gateway://instances is agent-safe by default and returns only live,
routable rows. Use ?include_stale=true, ?include_dead=true, or
?view=all only for explicit diagnosis; never route a call from those
expanded operator views without re-validating live readiness.
Once an instance is selected, reuse gateway://instances/{instance_id} or
GET /v1/instances/{instance_id}/context for live process/machine
performance, scene/documents, loaded skills, and canonical follow-up routes.
These reads fetch the backend context on demand, but scene freshness remains
adapter-owned: publish changes from a host event/main-thread callback with
DccServerBase.update_gateway_metadata(...), and publish rich snapshots with
set_scene_resource(...). Never claim scene awareness when the adapter has
not installed a publisher; scene=null / no_scene_published is explicit.
For agent observability, read gateway://experiments/{experiment_id} for
runs, Session DAG links, metrics, and Judge evidence; read
gateway://governance for the effective policy boundary. Keep Admin memory
deletion controls out of agent-readable resources.dcc_mcp_core.deployment.build_sidecar_command(...) / launch_sidecar(...) for library-driven sidecar startup and readiness. Installer subprocesses should use dcc-mcp-install-lifecycle; dcc_mcp_core.install_lifecycle and python -m dcc_mcp_core.install_lifecycle remain compatibility aliases. Read docs/guide/adapter-install-lifecycle.md before changing host RPC, dispatch readiness, launch stdio, watch_pid, or instance_id handling.
docs/guide/adapter-install-sop.md. Consume load_install_sop_schema() and INSTALL_EXIT_CODES from dcc_mcp_core.deployment; do not invent adapter-local result shapes or exit-code mappings.load_skill success without an executable catalog.capture_bootstrap_errors(...); it is stdlib-only, records pre-MCP failures, and re-raises for the DCC's native error UI. DccServerBase already captures Python error logs and uncaught exceptions into the shared log plus output:// / events://. Forward host-native console callbacks with server.report_host_error(...); do not replace global stdout/stderr or add an adapter-local error store.DccLinkFrame(..., version=0) only during that compatibility window, preserve an incoming frame's version in its reply, and treat unsupported DCC-Link protocol version as an explicit peer-upgrade failure rather than retrying body decoding.id; commandPort-style sidecar responses must echo top-level request_id; gateway REST responses must echo X-Request-ID. Never replace an explicit response id with the current request id, because that can disguise a stale response. Treat a missing or mismatched echo as transport desync, fail closed, and regression-test a slow call followed by fast calls on the same connection.ServiceEntry.schema_version using SERVICE_ENTRY_SCHEMA_VERSION; rows with no field are legacy version 0. Consumers may read legacy/current rows but must reject a higher schema version without quarantining, deleting, or rewriting services.json. Treat that error as an explicit peer-upgrade requirement, not as corrupt JSON.instance_id to sidecar launch helpers only when it is a real UUID for the DCC service. During early startup, omit it or pass None; build_sidecar_command() rejects cosmetic values such as "unknown" with success=false and reason="invalid_instance_id" so adapters do not spawn a child that can only fail with a CLI argument error.
After DccServerBase.start(), use server.instance_id when adapter UI or
sidecar wiring needs the canonical FileRegistry identity. It is the exact
registered UUID and is None before start, after stop, or when gateway
registration is disabled/unavailable; never inspect private handles or
generate a replacement UUID.launch_sidecar(..., return_process=True, detached=False) instead of reimplementing subprocess.Popen; keep return_process=False for CLI/JSON paths because the process handle is not serializable.FileRegistry, register remotely through POST /v1/instances/register, refresh with /heartbeat, and deregister on shutdown; the gateway will expose the row as source: "http" in gateway://instances / GET /v1/instances, preserve instance_short and mcp_url, and route it through the same live_instances contract.--remote-host 0.0.0.0 or concrete LAN IP; for same-LAN convenience discovery, build with mdns and pair adapter-side --advertise-mdns with gateway-side --discover-mdns. Treat mDNS as a multicast discovery hint only, keep auth/TLS policy explicit, and prefer HTTP registration or relay for routed/subnet-crossing production deployments.instance_id, capabilities_fingerprint, adapter_version, and scene metadata, then configure the standalone gateway with --relay-source ADMIN_URL=PUBLIC_BASE_URL; the gateway will expose active tunnels as source: "relay" rows with relay details in source_meta after probing /v1/healthz through <PUBLIC_BASE_URL>/tunnel/<tunnel_id>/mcp.initialize.params.clientInfo, MCP _meta.agent_context, REST meta.agent_context, x-dcc-mcp-* headers, and safe User-Agent fallbacks flow through core rather than logging raw prompts or local machine data.register_lifecycle_hooks(...), search_skills(..., session_id=...), dispatch_session_start(...), dispatch_before_tool_call(...), dispatch_after_tool_call(...), and dispatch_session_end(...); pair MemoryRecorder(InMemoryMemoryStore()).install(hooks) with those hooks when adapters need bounded memory summaries, failed-pattern avoidance, or session compaction. Memory injection is conservative and budgeted by default: search receives compact ranking hints, tool calls receive memory only when it matches the current tool_name, and session-start injection is opt-in. Use SqliteMemoryStore() only when longterm patterns should be durable, operator-managed in the Admin Memory tab, and included in memory hit-rate observability; disable the recorder for privacy-sensitive deployments. Open a focused core issue/RFC only when those public hooks cannot express the adapter boundary.just idle-memory-smoke for standalone server idle/regression checks.ServiceEntry.version as the DCC application version; use core-published dcc_mcp_server_version and dcc_mcp_instance_type=gui|standalone metadata for server regression and runtime-shape diagnostics instead of overloading DCC or adapter versions.agent_context task/session/turn metadata and artifact/validation-friendly tool names so Admin task outcomes can group workflows, calls, deliverables, and checks without reading raw payloads or local paths.agent_context.session_id, keep UI Control logical ids connection/caller
scoped, and write only redacted recording projections to existing
session_events. Do not add adapter-local recorder state, a second
database, or a replay authority flag. Persist calls incrementally; after a
gateway restart, project unfinished recordings as interrupted without
restoring capture authority. Generated workflows re-resolve current tools
and schemas; semantic UI replay resolves fresh control ids; raw/visual
fallback requires exact-window calibration and drift guards./v1/experiments APIs.
Reuse session_events, workflow/recording identifiers, and artifact
references; do not add adapter-local experiment storage or treat judge
output as approval authority.Use the shared chunked path when a main-affinity operation cannot finish within one host UI tick. The adapter owns scheduling; skill code only defines bounded steps:
from dcc_mcp_core import chunked_job
@chunked_job(total=100)
def bake_frames():
for frame in range(100):
yield lambda frame=frame: bake_one_frame(frame)
# A declarative in-process tool returns this runner. HostExecutionBridge
# detects and submits it to HostUiDispatcherBase automatically.
return bake_frames()
execution: async, affinity: main, and
job_strategy: chunked. The bridge rejects a declared chunked tool that
returns a monolithic value.execution: async and provide a realistic positive
timeout_hint_secs; Core routes the execution declaration through
JobManager. A timeout hint only sizes client/runtime budgets and never
promotes an execution: sync tool to an async job.submit_chunked_runner() advances at most one step per host pump tick, so
unrelated UI work can run between steps.cancel(request_id) requests cancellation. The runner publishes
cancelled only after the next checkpoint observes it; a running native DCC
call or monolithic callback is not pre-empted.Do not label an indivisible native call as chunked. Use
job_strategy: monolithic when the host API cannot yield, or
job_strategy: isolated when a process/service-owned operation can return a
durable job id. Isolated status must remain queryable after transport loss;
cancellation may remain process-owner scoped when reconstructing ownership
would be unsafe.
unreachable; it
must not erase a row whose owner lock/PID or remote TTL is still valid.GatewayState (GatewayIngressState). Embedded adapters may host
more than one gateway in a process, so process-global lazy counters or env
snapshots are not a valid isolation boundary.GatewayState through GatewayResilienceState. Pass that state through
backend discovery and dispatch calls; never use a process-global circuit
table, because one embedded gateway must not open another gateway's backend.McpHttpConfig.features snapshot into HTTP runtime state
with ServerStateBuilder::with_features. Do not copy capability booleans
into loose ServerState fields; config and runtime routing must read the
same FeatureFlags source.Arc<FileRegistry> directly and
call its *_async methods. FileRegistry is already internally synchronized;
an outer RwLock adds no safety and holding an async guard across its
flock/fsync transaction blocks the runtime.dcc_type, scene/project metadata, and adapter identity so
agents can rediscover a replacement instance. Never reuse an old tool slug
or direct MCP URL after the instance id changes.interrupted and remain queryable through the replacement instance's
jobs_get_status; adapter-owned isolated jobs need their own durable status
tool when they outlive the request transport. If the worker can outlive the
DCC/sidecar process, that status tool must be owned by the worker/service or
another independently live control process; gateway restart alone cannot
recreate an API whose owner exited.job_persistence from the server /health payload before claiming
durable job history. degraded means recent writes failed; disabled means
the manager latched repeated failures and is serving jobs from memory only.
Do not expose backend messages or filesystem paths from that status.job_id and one canonical
status (pending, running, completed, failed, cancelled, or
interrupted). Declare its status tool in next-tools.on-success. Automatic
CLI waiting is allowed only when that poller is execution: sync, marks both
read_only_hint and idempotent_hint true, and declares a string job_id as
its only required input. Every other input must be optional and safe when
omitted. The poller must query exactly that ID and return authoritative progress; an
unknown ID is an explicit error, never permission to mint a replacement job.Reproduce through dcc-mcp and keep one gateway session id. Run
dcc-mcp-cli doctor, then dcc-mcp-cli stats --status failure --session-id <session-id>; preserve the failed call's request_id, trace/job ids, adapter
version, DCC version, readiness fields, and the smallest safe reproduction.
Use /v1/debug/issue-reports/<request_id> for the public-safe issue body and
review any ?mode=raw export locally before sharing it.
Report adapter-owned dispatch, host-thread, readiness, packaging, or install
bugs in the adapter repository. Escalate shared CLI, gateway, protocol, or core
contract failures to dcc-mcp-core. Tool schema/script/workflow defects belong
to the owning Skill and dcc-mcp-skills-creator. Record runtime feedback with
the gateway-owned dcc-mcp-cli feedback command so the report remains possible
after an adapter or DCC process exits; include the last known instance,
request, and job ids. Instance-level dcc_feedback__report is the live-adapter
Finding v1 entry point. Core must register it so runtime DCC/adapter/core/host
versions, OS, instance id, fingerprint, and conservative redaction status are
auto-filled; adapters must not accept agent claims for those fields or add an
adapter-specific action/local-success fallback. Open an external issue only
with user authorization.
Core persists accepted adapter reports under the shared registry and exposes
them through dcc-mcp-cli feedback list|export / GET /admin/api/feedback.
Adapters must use DccServerBase's instance-owned FeedbackStore; do not add a
second adapter-local log, aggregation endpoint, or delete-then-copy rotation.
The gateway query is bounded, deduplicates by feedback id, and fails explicitly
when filesystem reads or scan limits prevent a complete result.
When asked to create a Nuke MCP adapter, start by mapping the host lifecycle: how Python is loaded, how the UI/main thread must be entered, what headless mode is available, how plugins are installed, and which operations should be bundled as default skills. Then scaffold the adapter around core primitives:
DccServerBase for MCP/HTTP and skill catalog behavior.DccServerOptions.from_env("NUKE") or an adapter-specific equivalent for env-driven configuration.HostExecutionBridge plus a Nuke dispatcher for all Nuke API calls.dcc-mcp-skills-creator for the first nuke-* skill packages.When asked to expose an internal asset, render-farm, review, or production
service, stay in the supplied private project and start with
examples/remote-server. It is a standalone
service despite the historical directory name: it binds to loopback for local
development, discovers a bundled example Skill, and needs no DCC process or GitHub
repository.
studio-assets; do not pretend it is
Maya or another cataloged DCC.instance_type="standalone", leave dcc_pid unset, and use inline
execution unless a real external host boundary exists.tools/list,
tools/call, resources, and errors with the official open-source MCP
Inspector before testing gateway discovery.When an adapter publishes an evolving file to another local or remote DCC, use
Core's AssetSyncRevision and FileAssetSyncStore contract. Keep absolute
paths process-local: public tools accept a relative source name, while both the
source root and consumer destination root come from operator configuration.
Validate format and size before publishing, pass expected_head_revision for
optimistic conflict detection, and materialize only beneath the consumer-owned
root. The adapter owns its native import, canvas, refresh, or watch behavior;
Core owns only the path-free revision manifest, content-addressed object, and
conflict/materialization rules. See docs/guide/asset-sync.md and ADR-021.
SKILL.md, tools.yaml, groups.yaml, or prompt/workflow files in adapter runtime code when core exposes a typed object or catalog API.server._server unless no public core API exists; if you must, file a core issue and keep the adapter shim small.Frequently asked questions
Use this skill when you are creating a new DCC-MCP adapter, modernizing an existing adapter repository, or exposing a private non-DCC studio system as a standalone MCP service: server composition, host-thread dispatch, sidecar/gateway wiring, readiness, resources, project state,…
The source record exposes this install command: npx skills add https://github.com/dcc-mcp/dcc-mcp-core --skill "skills/dcc-mcp-creator". Inspect the command and pinned source before running it.
Static rules flagged exec-script, write-files in the source; the page lists the matching lines and excerpts.
Alternatives
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance