一键导入
domain-registry
Use when ship-design, schema-designer, or intent-match-verifier needs domain registry routing or knowledge-module lookup context.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when ship-design, schema-designer, or intent-match-verifier needs domain registry routing or knowledge-module lookup context.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when writing a ship-flow plan for a shaped entity, especially implementation tasks, TDD needs, runtime commands, or scope anchoring. Layer A delegation: superpowers:writing-plans owns plan authoring; ship-flow:test-driven-development owns fallback TDD contracts.
Use when shaping vague, complex, or ambiguous ship-flow requests into a Shape Up pitch, including `/shape`, discussion, or skill-authoring work.
Use when shape finds UI, domain, contract, interface, visual ambiguity, affects_ui, design_required, or no design reference before plan.
Use when ship-flow needs execute-stage implementation from an approved plan, including wave tasks, blocked work, or PR feedback re-entry. Layer A delegation: superpowers:subagent-driven-development owns wave dispatch discipline.
Use when `/ship` should run ship-flow for an entity id or good-enough raw requirement; vague inputs need shape clarification.
Use when verify passed and ship-flow needs review, PR readiness, PR body drafting, or canonical docs sync. Layer A delegation: pr-review-toolkit:review-pr owns PR review persona philosophy.
| name | domain-registry |
| description | Use when ship-design, schema-designer, or intent-match-verifier needs domain registry routing or knowledge-module lookup context. |
| user-invocable | false |
READ-as-context only. Do NOT call Skill: ship-flow:domain-registry. This file
is orientation for consumers (ship-design router, architecture-lens, intent-match-verifier).
To perform registry resolution, call bash "${CLAUDE_PLUGIN_ROOT:-plugins/ship-flow}/lib/registry-resolve.sh".
Consult the registry when you need to:
designer_section_anchor to route to in ship-design.references/domain-knowledge/<domain>.md.required_skills and stage-specific skill_hints.*.Skip the registry when:
affects_ui: true and no domain-specific keyword fires (visual/UX-only work).Config files live at:
plugins/ship-flow/registry/defaults.yaml.claude/ship-flow/domains.yaml (created by adopter)Precedence (full-replace per domain): adopter project YAML wins on key collision.
If both files define domains.schema, the adopter entry completely replaces the plugin entry —
no shallow-merge. This is intentional: adopters own their domain-specific trigger globs.
# List all registered domain names
bash "${CLAUDE_PLUGIN_ROOT:-plugins/ship-flow}/lib/registry-resolve.sh" --list
# Classify a spec file against all domains
bash "${CLAUDE_PLUGIN_ROOT:-plugins/ship-flow}/lib/registry-resolve.sh" --classify <spec-file>
# Look up a specific domain entry
bash "${CLAUDE_PLUGIN_ROOT:-plugins/ship-flow}/lib/registry-resolve.sh" --domain=schema
# Validate config + optional per-domain M1/M2 check
bash "${CLAUDE_PLUGIN_ROOT:-plugins/ship-flow}/lib/registry-resolve.sh" --validate [--domain=schema]
# Override config paths (for testing or adopter use)
bash "${CLAUDE_PLUGIN_ROOT:-plugins/ship-flow}/lib/registry-resolve.sh" \
--config=plugins/ship-flow/registry/defaults.yaml \
--adopter-config=.claude/ship-flow/domains.yaml \
--classify <spec-file>
Output envelope (stdout, key=value lines):
status=ok|partial_coverage|specialist_missing|knowledge_module_missing|parse_error|invalid_trigger_config
matched=<domain1>,<domain2>,...
missing=<domain1>,<domain2>,...
knowledge_module_path=<path>
designer_section_anchor=<anchor>
required_skills=<skill1>,<skill2>,...
skill_hints.plan=<skill1>,<skill2>,...
skill_hints.execute=<skill1>,<skill2>,...
skill_hints.verify=<skill1>,<skill2>,...
required_skills is a hard routing hint: downstream stages should preserve it
when deriving skills_needed. skill_hints.<stage> is stage-specific and may
be empty. These fields are generic registry metadata; adopter-specific skill
names belong in .claude/ship-flow/domains.yaml, not plugin defaults.
Exit codes:
| Code | Meaning |
|---|---|
| 0 | ok or partial_coverage (read status= field to distinguish) |
| 2 | usage error |
| 10 | M1: specialist_missing |
| 11 | M2: knowledge_module_missing |
| 20 | M4: parse_error |
| 21 | M5: invalid_trigger_config |
| 1 | generic error |
Domain matched, but designer_section_anchor is empty in registry. This means the
domain specialist sub-section in ship-design has not been built yet.
Consumer action: Surface HALT-with-options to captain:
skip — proceed without specialist design (plain generalist fallback, mark in design.md)generalist-marker — proceed but flag output as "generalist-only, no domain specialist"file-specialist-first — pause; create a 113.x child to build the specialist firstNever silently proceed as generalist when M1 fires. The explicit HALT is the designed behavior.
Domain matched and anchor exists, but the knowledge module .md file is absent on disk.
Consumer action: Same options as M1. The knowledge module is needed for grounded design; proceeding without it risks domain-blind output.
Spec triggers multiple domains; some have specialists, some do not.
Consumer action: Proceed with the matched (specialist-having) domains. Annotate design.md
with partial_coverage: [missing-domain1, missing-domain2] so verifier knows which domains
were skipped. Do NOT HALT — partial coverage is expected during framework build-out.
The registry YAML config is malformed and cannot be parsed.
Consumer action: FAIL LOUD. Block all dispatch until config is fixed. Do not fall back to a hardcoded default — the misconfiguration must be surfaced, not silently swallowed.
A domain entry has both trigger_patterns: [] AND spec_keywords: [] — no way to match.
Consumer action: Same as M4 — fail loud. A domain that can never match is a config bug.
Project teams add domain-specific trigger globs in .claude/ship-flow/domains.yaml:
schema_version: "1.0"
domains:
schema:
trigger_patterns:
- "*.fmodel.ts"
- "drizzle/**"
spec_keywords:
- schema
- drizzle
- fmodel
knowledge_module: plugins/ship-flow/references/domain-knowledge/schema.md
designer_section_anchor: "ship-design#schema-designer"
required_skills:
- project-db
- fmodel
skill_hints:
plan:
- project-db
- fmodel
execute:
- fmodel
verify:
- project-db
description: "Schema domain (project-specific trigger globs)"
The adopter file fully replaces the plugin entry for schema. Other plugin-default domains
(if any) remain active unless the adopter also overrides them.
Knowledge modules live in plugins/ship-flow/references/domain-knowledge/:
| Domain | Knowledge Module |
|---|---|
schema | references/domain-knowledge/schema.md |
See references/domain-knowledge/README.md for naming convention and how to add new modules.