Skip to content
Back to skills

Sk Prompt Small Model

ASecurity

Per-model prompt-craft hub for small-model dispatch (SWE-1.6 + DeepSeek-v4-pro + Kimi-k2.6 + Qwen3.6 + GLM-5.1 + MiniMax-M3/M2.7 + MiMo-V2.5-Pro across cli-devin and cli-opencode). OWNS the per-model prompt-craft profiles in references/models/ (framework + scaffold + gotchas, mirroring model-profiles.json); executor MECHANICS (binary flags, invocation wrappers) stay in cli-devin/cli-opencode. Advisor co-surfaces it with those executors.

  • 36 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added June 6, 2026
ai-agentspythonrustgoshellapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned June 6, 2026

npx -y skills add MichelKerkmeester/opencode--spec-kit-skilled-agent-orchestration --skill sk-prompt-small-model --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sk Prompt Small Model?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sk Prompt Small Model
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/michelkerkmeester-sk-prompt-small-model/badge)](https://www.skillsdirectory.com/skills/michelkerkmeester-sk-prompt-small-model)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sk-prompt-small-model
description: Per-model prompt-craft hub for small-model dispatch (SWE-1.6 + DeepSeek-v4-pro + Kimi-k2.6 + Qwen3.6 + GLM-5.1 + MiniMax-M3/M2.7 + MiMo-V2.5-Pro across cli-devin and cli-opencode). OWNS the per-model prompt-craft profiles in references/models/ (framework + scaffold + gotchas, mirroring model-profiles.json); executor MECHANICS (binary flags, invocation wrappers) stay in cli-devin/cli-opencode. Advisor co-surfaces it with those executors.
allowed-tools: []
version: 0.7.2.0
---

<!-- Keywords: small-model, swe-1.6, deepseek-v4-pro, kimi-k2.6, qwen3.6, glm-5.1, minimax-m3, minimax-2.7, minimax-coding-plan, minimax-token-plan, minimax-api, haiku, opencode-go, deepseek-api, context-budget, output-verification, model-profiles, structured-permissions, quota-fallback -->

# Small-Model Prompt-Craft Hub

The model-knowledge hub for small-model dispatch: per-model prompt-craft profiles live here in `references/models/` (one profile per active model — framework + scaffold + gotchas). The advisor co-surfaces this skill alongside `cli-devin` or `cli-opencode`; you read the profile here, then apply executor MECHANICS from the relevant `cli-X`.

---

## 1. WHEN TO USE

### Activation Triggers

**Use when** — before dispatching any active small model, to look up its prompt-craft profile:
- SWE-1.6 (via `cli-devin`)
- DeepSeek-v4-pro, Kimi-k2.6, GLM-5.1 (via `cli-devin` or `cli-opencode`)
- Qwen3.6 (via `cli-opencode`)
- MiniMax-M3 / MiniMax-2.7 (via `cli-opencode`)
- MiMo-V2.5-Pro (via `cli-opencode`)
- Optional future target: Claude Haiku
- Asking "what framework / scaffold does small-model X want?" or "where is the small-model X pattern?"

The exact provider, quota pool, and dispatch flags for each path live in the §3 dispatch matrix and the executor `cli-X` skills (MECHANICS), not in this trigger list.

**Keyword Triggers**:
- `small model`, `small-model dispatch`
- Model names: `swe-1.6`, `kimi-k2.6`, `deepseek-v4-pro`, `qwen3.6`, `glm-5.1`, `minimax-m3`, `minimax-2.7`, `mimo-v2.5-pro`, `haiku`
- Provider names: `opencode-go`, `deepseek-api`, `minimax-coding-plan` (Token Plan) / `minimax` (Direct API), `minimax-token-plan` / `minimax-api`, `xiaomi-token-plan-ams` (Xiaomi Token Plan Europe), `cognition pro`, `cognition free`
- Pattern names: `context budget`, `output verification`, `model profile`, `structured permissions`, `quota fallback`, `tool scoring`

### Use Cases

#### Prompt-Craft Profile Lookup

Before dispatching a small model, read `references/models/<id>.md` for that model's prompt framework (primary + fallback), pre-planning density, scaffold shape, and known gotchas. The profile mirrors `model-profiles.json` `recommended_frameworks` (DATA) and cites it; the WEIGHT of this skill lives in those on-demand profiles, not in this entry surface.

#### Co-Surfaced Knowledge Hub

The advisor reaches this skill through `enhances` edges from both CLI skills, providing one obvious knowledge entry point regardless of which executor is in use. Use `references/models/_index.md` to pick the right profile; use `references/pattern-index.md` to find executor-owned MECHANICS.

### When NOT to Use

**Do not use for**:
- Frontier-model dispatch (Opus, Sonnet, gpt-5.5) — those are out of scope for the 114 arc
- Looking up binary flags or invocation wrappers — those MECHANICS live in `cli-devin`/`cli-opencode`, not here
- Adding new runtime logic — this skill carries prompt-craft prose + an index, never shell commands or scripts

---

## 2. SMART ROUTING

### Model Detection

The routing key is the **target model**. Detect it from the model named in the task — a slug
(`minimax-m3`), an alias (`minimax m3`, `deepseek`, `kimi`), or a provider phrase — and normalize
it to a canonical profile id with the alias map. A model name is the one signal that selects which
`references/models/<id>.md` profile to load.

```python
MODEL_ALIASES = {
    "swe-1.6": "swe-1.6", "swe 1.6": "swe-1.6",
    "deepseek": "deepseek-v4-pro", "deepseek-v4": "deepseek-v4-pro", "deepseek-v4-pro": "deepseek-v4-pro",
    "kimi": "kimi-k2.6", "kimi-k2.6": "kimi-k2.6",
    "qwen": "qwen3.6", "qwen3.6": "qwen3.6",
    "glm": "glm-5.1", "glm-5.1": "glm-5.1",
    "minimax-m3": "minimax-m3", "minimax m3": "minimax-m3", "minimax": "minimax-m3",
    "minimax-2.7": "minimax-2.7", "minimax m2.7": "minimax-2.7",
    "mimo": "mimo-v2.5-pro", "mimo-v2.5-pro": "mimo-v2.5-pro", "mimo pro": "mimo-v2.5-pro",
}
```

### Phase Detection

```text
TASK CONTEXT
    |
    +- STEP 0: Resolve the target model id (alias map) — the routing key
    +- Phase 1: Load references/models/_index.md, pick the model
    +- Phase 2: Load references/models/<id>.md for framework + scaffold + gotchas
    +- Phase 3: Follow references/pattern-index.md to executor MECHANICS in the cli-X
```

### Resource Domains

```text
references/
    models/
        _index.md         # Thin per-model index: id -> framework primary; status (ALWAYS)
        <id>.md           # One prompt-craft profile per active model (the hub WEIGHT)
    pattern-index.md      # Locates executor-owned MECHANICS + ship status
assets/
    model-profiles.json   # The registry DATA each profile mirrors
    cli_prompt_quality_card.md  # Canonical cross-CLI quality card
```

Executor MECHANICS and runtime code live elsewhere — a profile points at them, never restates them:

- `.opencode/skills/cli-devin/references/` and `assets/` (flags, wrappers, budgets)
- `.opencode/skills/cli-opencode/references/` and `assets/` (flags, wrappers, permissions)
- `.opencode/skills/system-spec-kit/mcp_server/lib/deep-loop/` (runtime helpers)

### Resource Loading Levels

| Level       | When to Load                  | Resources                                         |
| ----------- | ----------------------------- | ------------------------------------------------- |
| ALWAYS      | Every skill invocation        | `references/models/_index.md`                     |
| CONDITIONAL | Dispatching a specific model  | `references/models/<id>.md` (its prompt-craft profile) |
| CONDITIONAL | Needing executor MECHANICS    | Follow `references/pattern-index.md` to the `cli-X` file |
| ON_DEMAND   | Adopting Haiku/Flash          | Add a profile + index row + executor metadata (see README) |

### Smart Router Pseudocode

> Pattern: see [`../sk-doc/assets/skill/skill_smart_router.md`](../sk-doc/assets/skill/skill_smart_router.md)
> for the canonical runtime-discovery, guarded-load, routing-key, and fallback reference. This hub
> routes by MODEL: `routing_key` = the canonical model id, resource = `references/models/<id>.md`.

```python
from pathlib import Path

SKILL_ROOT = Path(__file__).resolve().parent
RESOURCE_BASES = (SKILL_ROOT / "references", SKILL_ROOT / "assets")
DEFAULT_RESOURCE = "references/models/_index.md"
MODELS_DIR = "references/models/"

UNKNOWN_FALLBACK_CHECKLIST = [
    "Name the target small model (slug, alias, or provider)",
    "Confirm the executor (cli-devin or cli-opencode)",
    "Provide the task intent plus one concrete input",
    "Confirm the verification command set before completion",
]

def _guard_in_skill(relative_path):
    resolved = (SKILL_ROOT / relative_path).resolve()
    resolved.relative_to(SKILL_ROOT)                       # reject paths outside the skill
    if resolved.suffix.lower() != ".md":
        raise ValueError(f"Only markdown resources are routable: {relative_path}")
    return resolved.relative_to(SKILL_ROOT).as_posix()

def discover_markdown_resources():
    docs = []
    for base in RESOURCE_BASES:
        if base.exists():                                  # deleted folders must not break routing
            docs.extend(p for p in base.rglob("*.md") if p.is_file())
    return {d.relative_to(SKILL_ROOT).as_posix() for d in docs}

def resolve_model_id(task):
    text = (getattr(task, "request", "") or "").lower()
    for alias, model_id in MODEL_ALIASES.items():
        if alias in text:
            return model_id
    return "unknown"

def route_small_model_profile(task):
    inventory = discover_markdown_resources()
    loaded, seen = [], set()

    def load_if_available(relative_path):
        guarded = _guard_in_skill(relative_path)
        if guarded in inventory and guarded not in seen:
            load(guarded); loaded.append(guarded); seen.add(guarded)

    load_if_available(DEFAULT_RESOURCE)                    # ALWAYS: the model index

    model_id = resolve_model_id(task)
    if model_id == "unknown":                              # Tier 1: no model named
        return {"routing_key": "unknown", "needs_disambiguation": True,
                "disambiguation_checklist": UNKNOWN_FALLBACK_CHECKLIST, "resources": loaded}

    profile = f"{MODELS_DIR}{model_id}.md"
    if profile not in inventory:                           # Tier 2: known model, profile not authored yet
        return {"routing_key": model_id,
                "notice": f"No prompt-craft profile authored yet for '{model_id}'; see _index.md",
                "resources": loaded}

    load_if_available(profile)                             # Tier 3: load the profile; mechanics follow
    load_if_available("references/pattern-index.md")
    return {"routing_key": model_id, "resources": loaded}
```

The skill-advisor still surfaces this hub via `graph-metadata.json` trigger phrases (lexical) and
the `enhances` edges from `cli-devin`/`cli-opencode` (graph); the router above is how the resolved
invocation loads the right profile.

---

## 3. HOW IT WORKS

### Hub Workflow

1. **Discover** — The advisor surfaces `sk-prompt-small-model` alongside the relevant CLI skill when an operator names a small model or pattern.
2. **Read the profile** — Open `references/models/<id>.md` for that model's prompt-craft: framework (primary + fallback), pre-planning density, scaffold shape, gotchas — mirrored from `model-profiles.json`.
3. **Apply MECHANICS + dispatch** — Follow `references/pattern-index.md` to the owning `cli-X` for flags/wrappers/budgets/permissions; the prompt-craft (here) and mechanics (`cli-X`) combine in the executor's prompt-pack.

### Dispatch Matrix

| Model | Executor → Provider (quota pool) | Status |
| --- | --- | --- |
| SWE-1.6 | `cli-devin` → cognition (cognition-free) | active |
| DeepSeek-v4-pro | `cli-devin` → cognition (cognition-pro) · `cli-opencode` → deepseek-api (deepseek-api) · `cli-opencode` → opencode-go (opencode-go) | active (3 paths) |
| Kimi-k2.6 | `cli-devin` → cognition (cognition-pro) · `cli-opencode` → opencode-go (opencode-go) | active (2 paths) |
| Qwen3.6 | `cli-opencode` → opencode-go (opencode-go) | active (single path) |
| GLM-5.1 | `cli-devin` → cognition (cognition-pro) · `cli-opencode` → opencode-go (opencode-go) | active (2 paths) |
| MiniMax-M3 (default) | `cli-opencode` → minimax-coding-plan (minimax-token-plan) | active — MiniMax Token Plan; `MiniMax-M3-highspeed`; fallback → minimax-2.7 |
| MiniMax-M2.7 | `cli-opencode` → minimax-coding-plan (minimax-token-plan) · `cli-opencode` → minimax (minimax-api) | active (2 paths: Token Plan highspeed fallback + pay-per-token Direct API) |
| MiMo-V2.5-Pro | `cli-opencode` → xiaomi-token-plan-ams (xiaomi-token-plan) | active — Xiaomi Token Plan Europe; `mimo-v2.5-pro`; free `opencode/mimo-v2.5-free` sibling |
| Haiku | `cli-claude-code` → anthropic (anthropic) | optional-unverified |

Canonical source: `sk-prompt-small-model/assets/model-profiles.json` (each entry's `executors` array enumerates the paths above).

### Ownership Boundary

This skill OWNS per-model prompt-craft profiles (`references/models/<id>.md`) and the model registry DATA (`assets/model-profiles.json`); `cli-devin`/`cli-opencode` own executor MECHANICS (flags, wrappers, budgets, permissions); `sk-prompt` owns generic framework definitions; `system-spec-kit` owns runtime helpers. See the Skill Boundary Map in §5.

### Adopting a New Provider (Haiku, others)

Follow the single canonical checklist in [`references/pattern-index.md`](./references/pattern-index.md) §4 "Adopting a New Provider" — it is the one source for the adoption steps (registry entry → author the profile → `_index.md` row → this §3 dispatch-matrix row → the dispatching executor's trigger phrase → re-index + verify). Do not maintain a second copy of the steps here. No executor-MECHANICS or code edits are needed when the quota pool is already represented.

---

## 4. RULES

### ALWAYS

1. **Keep the entry surface thin; let the profiles carry the WEIGHT.** SKILL.md ≤ 300 LOC (the §2 smart-router pseudocode is the bulk; everything else stays terse), `references/models/_index.md` ≤ 100 LOC, and `pattern-index.md` ~110 LOC (it also carries the staleness policy + roadmap refs). The per-model prose lives in `references/models/<id>.md`, loaded on-demand — never inline a profile body into SKILL.md.
2. **Mirror the DATA and cite it.** Each profile MUST reflect that model's `recommended_frameworks` (primary, fallback, avoid, pre-planning density, evidence) from `sk-prompt-small-model/assets/model-profiles.json` and cite it as the source of truth. When the registry changes, the profile follows.
3. **Keep trigger phrases honest.** Add a phrase only when a model or profile actually exists. Stale triggers degrade advisor confidence.
4. **Update the index when models ship or move.** `_index.md` and `pattern-index.md` are contracts; broken links and missing rows erode trust.
5. **Honor the in-scope model set** — SWE-1.6, DeepSeek-v4-pro, Kimi-k2.6, Qwen3.6, GLM-5.1, MiniMax-M3/M2.7, MiMo-V2.5-Pro active; Haiku optional. Frontier models (Opus, Sonnet, gpt-5.5) are explicitly out of scope.

### NEVER

1. **Never duplicate EXECUTOR MECHANICS here** — binary flags, invocation wrappers, budgets, and permissions stay in `cli-devin`/`cli-opencode`. A profile points at them via `pattern-index.md`; it does not restate them.
2. **Never copy generic framework definitions here** — the closed 7-framework set (RCAF / COSTAR / RACE / CIDI / TIDD-EC / CRISPE / CRAFT) is defined once in `sk-prompt`. Profiles link to those definitions and only record the per-model choice + rationale. STAR/BUILD are **cli-devin task-shapes**, NOT sk-prompt frameworks — keep them cli-devin-local; never present them as canonical frameworks or as a registry `fallback`.
3. **Never present carried-forward evidence as fresh.** When a profile's frameworks are inherited (e.g. MiniMax-M3 `status: carried` from MiniMax-2.7), label it carried and name the source benchmark — do not imply a fresh M3 run.
4. **Never add runtime logic here** — no shell commands, no scripts, no agent-config recipes.

### ESCALATE IF

1. A model becomes dispatchable from a NEW executor with conflicting MECHANICS (different flags/wrappers than the existing path). Resolve the mechanics in the owning `cli-X` first; the profile only records prompt-craft, so it must not arbitrate flag conflicts.
2. A profile would need to RESTATE executor flags to be usable. That belongs in `cli-X` — escalate to add/extend the executor reference, then link to it.
3. A new small-model provider arrives that does not fit the existing quota-pool model. Update the registry schema in `sk-prompt-small-model/assets/model-profiles.json` first, then add the profile + index row.

---

## 5. REFERENCES

### Core References

- [`references/models/`](./references/models/) — Per-model prompt-craft profiles (the hub WEIGHT); one `<id>.md` per active model, indexed by [`references/models/_index.md`](./references/models/_index.md)
- [`references/pattern-index.md`](./references/pattern-index.md) — Index locating executor-owned MECHANICS + ship status

### Related Resources (executor MECHANICS + DATA)

- [`cli-devin/references/context-budget.md`](../cli-devin/references/context-budget.md) — Canonical budget engine doc
- [`cli-devin/references/output-verification.md`](../cli-devin/references/output-verification.md) — Verification pipeline + scoring rubric pointers
- [`cli-devin/references/quota-fallback.md`](../cli-devin/references/quota-fallback.md) — Pool-aware fallback decision matrix
- [`cli-devin/assets/per-model-budgets.json`](../cli-devin/assets/per-model-budgets.json) — Per-model token budget defaults
- [`cli-devin/assets/confidence-scoring-rubric.md`](../cli-devin/assets/confidence-scoring-rubric.md) — Verification confidence formula
- [`cli-opencode/references/context-budget.md`](../cli-opencode/references/context-budget.md) — cli-opencode budget mirror
- [`cli-opencode/references/permissions-matrix.md`](../cli-opencode/references/permissions-matrix.md) — Structured permissions schema
- [`cli-opencode/assets/permissions-matrix.schema.json`](../cli-opencode/assets/permissions-matrix.schema.json) — JSON Schema for permission rules
- [`cli-opencode/assets/prompt_templates.md`](../cli-opencode/assets/prompt_templates.md) — Executor prompt-pack templates (MiniMax, MiMo scaffolds in mechanics form)
- [`sk-prompt-small-model/assets/model-profiles.json`](./assets/model-profiles.json) — Unified model registry; the DATA each profile mirrors (owned by this skill)
- [`assets/cli_prompt_quality_card.md`](./assets/cli_prompt_quality_card.md) — Canonical cross-CLI prompt quality card (owned by this hub); generic framework definitions live in `sk-prompt`

### Reference Loading Notes

- Load `references/models/_index.md` on every invocation, then the specific `references/models/<id>.md` for the model being dispatched; these are small and carry the prompt-craft.
- Do NOT load executor-owned MECHANICS references through this skill — follow the `pattern-index.md` link and let the operator's existing `cli-X` context handle loading.
- The `enhances` edges in `graph-metadata.json` co-surface `cli-devin` and `cli-opencode` automatically; their references load through their own routing.

### Skill Boundary Map

```text
sk-prompt-small-model (this skill)  ← OWNS per-model prompt-craft profiles + indexes + model registry (assets/model-profiles.json)
    |
    +-- cli-devin                   ← owns MECHANICS: SWE-1.6 budget + verification + fallback
    +-- cli-opencode                ← owns MECHANICS: DeepSeek/Kimi/Qwen/MiniMax/MiMo flags + permissions
    +-- sk-prompt                   ← owns generic framework definitions
    +-- system-spec-kit             ← owns runtime helpers (TS code)
```

Files in this skill

  • README.md10.8 KB
  • SKILL.md18 KB
  • assets/cli_prompt_quality_card.md8 KB
  • assets/model-profiles.json19.5 KB
  • benchmarks/001-swe-1.6-eval-loop/fixtures/fix-003-bundle-gate-smoke-run/seed/scripts/check.cjs311 B
  • benchmarks/001-swe-1.6-eval-loop/fixtures/fix-005-acceptance-strict/seed/src/deep-equal.test.ts1.3 KB
  • benchmarks/001-swe-1.6-eval-loop/fixtures/fix-005-acceptance-strict/seed/src/deep-equal.ts1.6 KB
  • benchmarks/001-swe-1.6-eval-loop/iterations/iteration-001.md941 B
  • benchmarks/001-swe-1.6-eval-loop/iterations/iteration-002.md959 B
  • benchmarks/001-swe-1.6-eval-loop/iterations/iteration-003.md973 B
  • benchmarks/001-swe-1.6-eval-loop/iterations/iteration-004.md961 B
  • benchmarks/001-swe-1.6-eval-loop/iterations/iteration-005.md962 B
  • benchmarks/001-swe-1.6-eval-loop/iterations/iteration-006.md956 B
  • benchmarks/001-swe-1.6-eval-loop/scripts/converge.cjs6.1 KB
  • benchmarks/001-swe-1.6-eval-loop/scripts/dispatch-swe16.cjs7.2 KB
  • benchmarks/001-swe-1.6-eval-loop/scripts/loop.cjs15.7 KB
  • benchmarks/001-swe-1.6-eval-loop/scripts/mutate.cjs6.3 KB
  • benchmarks/001-swe-1.6-eval-loop/scripts/render-variant.cjs4.5 KB
  • benchmarks/001-swe-1.6-eval-loop/scripts/score-variant.cjs12.9 KB
  • benchmarks/001-swe-1.6-eval-loop/scripts/seed-fixtures.cjs8.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.