Best for
- Documentation-only changes with no code-work contract - use sk-doc.
- Git workflow, branch, commit, PR, merge, or release work - use sk-git.
- Pure browser inspection or external MCP transport work - use the relevant MCP skill.
MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory/.opencode/skills/sk-code/SKILL.md
Unified two-axis code skill: routes to two WORKFLOW modes (sk-code-quality, sk-code-review) and bundles two read-only SURFACE evidence packets (sk-code-webflow, sk-code-opencode) — each surface carrying the implement/debug/verify workflow doctrine plus its stack knowledge — over shared surface-detection; holds no per-mode logic; dispatches by workflowMode through mode-registry.json.
Decision brief
One skill, two axes, one shared surface-detection router, and one advisor identity. The workflow axis is two code modes that act (sk-code-quality, sk-code-review); the surface axis is two read-only evidence packets the hub bundles alongside a workflow mode (sk-code-webflow, sk-c…
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/MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory --skill ".opencode/skills/sk-code"Inspect the Agent Skill "sk-code" from https://github.com/MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory/blob/3d386ee21366523774d89c0aff3ebbbc8fa7ff10/.opencode/skills/sk-code/SKILL.md at commit 3d386ee21366523774d89c0aff3ebbbc8fa7ff10. 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
Use this skill for code-family workflows. Invoke it as sk-code with an optional mode hint such as quality: ; the hub classifies the request, resolves a mode key, and loads the matching nested packet.
Documentation-only changes with no code-work contract - use sk-doc.
Routing is registry-driven. mode-registry.json is the single source of truth; the hub reads it and does not re-derive the mapping. The advisor routes any code query to the single identity sk-code; the hub then picks the mode. Stage two lives in root ROUTER.md: it maps surface in…
Root ROUTER.md owns the second-stage INTENTSIGNALS / RESOURCEMAP. Packet-owned resources remain typed through leaf-manifest.json; the eight declared SHAREDCONTROLRESOURCES are contained hub-level inputs that resolve on disk but never project as leaves. The hub router continues t…
Surface packets are advisor-invisible (routingClass: metadata, read-only toolSurface): the advisor still routes the single identity sk-code, and the hub bundles zero-or-more surfaces as evidence via routerPolicy.outcomes.surfaceBundle (workflow mode ordered first, surfaces after…
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 34 | 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
One skill, two axes, one shared surface-detection router, and one advisor identity. The workflow axis is two code modes that act (sk-code-quality, sk-code-review); the surface axis is two read-only evidence packets the hub bundles alongside a workflow mode (sk-code-webflow, sk-code-opencode). Each surface carries the shared implement → debug → verify workflow doctrine (shared/references/workflow_*.md, symlinked in) plus its own stack knowledge; sk-code-webflow also carries the folded-in Motion.dev animation overlay. This hub holds NO per-mode logic: it routes by workflowMode through mode-registry.json, and each mode or surface keeps its own contract in its packet.
Use this skill for code-family workflows. Invoke it as sk-code with an optional mode hint such as quality: <request>; the hub classifies the request, resolves a mode key, and loads the matching nested packet.
Workflow axis (modes that act — one is chosen as primary):
| Mode | Use it for | Packet |
|---|---|---|
| sk-code-quality | Quality gate; P0/P1/P2 author checks; comment hygiene; surface checklists. | sk-code/sk-code-quality/ |
| sk-code-review | Findings-first review; security/correctness baseline; checklists; output contract; PR-state gates. | sk-code/sk-code-review/ |
Surface axis (read-only evidence the hub bundles alongside the primary mode — never a primary, advisor-invisible):
| Surface | Carries | Packet |
|---|---|---|
| sk-code-webflow | Frontend evidence: CSS/HTML/JS standards, implementation and performance patterns, CDN deployment, browser debug/verify — plus the Motion.dev animation overlay. Bundles the implement → debug → verify workflow doctrine (read-only evidence) for the Webflow surface; the acting agent applies it. | sk-code/sk-code-webflow/ |
| sk-code-opencode | System-code evidence: TypeScript/Python/shell/config standards, hooks, alignment verification, authoring checklists. Bundles the implement → debug → verify workflow doctrine (read-only evidence) for the OpenCode surface; the acting agent applies it. | sk-code/sk-code-opencode/ |
The implement → debug → verify phases are not standalone modes. Their surface-agnostic doctrine lives once in shared/references/workflow-implement.md, workflow-debug.md, and workflow-verify.md, and is symlinked into each surface so the active surface carries the full workflow. A request to implement, debug, or verify code detects its surface and loads that surface's bundled doctrine; the acting agent applies it.
sk-doc.sk-git.sk-design-md-generator first.shared/ - they are consumed by the modes, not invoked as a user workflow.Routing is registry-driven. mode-registry.json is the single source of truth; the hub reads it and does not re-derive the mapping. The advisor routes any code query to the single identity sk-code; the hub then picks the mode. Stage two lives in root ROUTER.md: it maps surface intent to packet leaves plus explicitly declared hub-shared control resources without becoming a typed leaf or advisor identity.
Compiled routing (default-on, flag-gated, additive). Resolve the mode via the compiled router contract first:
node .opencode/bin/compiled-route.cjs --hub sk-code --prompt "<task>"Follow the returned decision —
route(use itstargets),clarify/defer(disambiguate),reject(refuse). On a{"servingAuthority":"legacy"}sentinel or any error, use the routing below. The front door self-gates on serving-authority. Compiled routing is now the default forsk-code; setSPECKIT_COMPILED_ROUTING=0to force legacy routing fleet-wide — the explicit kill-switch.
Root ROUTER.md owns the second-stage INTENT_SIGNALS / RESOURCE_MAP. Packet-owned resources remain typed through leaf-manifest.json; the eight declared SHARED_CONTROL_RESOURCES are contained hub-level inputs that resolve on disk but never project as leaves. The hub router continues to own stage-one mode selection and its shared/README.md fallback.
workflowMode - the public mode/packet key: sk-code-quality, sk-code-review (workflow) or sk-code-webflow, sk-code-opencode (surface).packetKind - the axis: workflow (a mode that acts) or surface (read-only evidence bundled alongside a mode).backendKind - which backend runs the packet: surface-router or review-cache for workflow modes, evidence-base for surface packets.Surface packets are advisor-invisible (routingClass: metadata, read-only toolSurface): the advisor still routes the single identity sk-code, and the hub bundles zero-or-more surfaces as evidence via routerPolicy.outcomes.surfaceBundle (workflow mode ordered first, surfaces after). "review my webflow animation for jank" → [sk-code-review, sk-code-webflow].
from pathlib import Path
SKILL_ROOT = Path(__file__).resolve().parent
UNKNOWN_FALLBACK_CHECKLIST = [
"Confirm whether this is sk-code-quality, sk-code-review, Webflow, or OpenCode work",
"Confirm the target files or runtime surface",
"Confirm the expected action: implement, debug, verify, quality gate, or review",
"Confirm the verification command set before completion",
]
def _guard_in_skill(relative_path: str) -> str:
resolved = (SKILL_ROOT / relative_path).resolve()
resolved.relative_to(SKILL_ROOT)
if resolved.name != "SKILL.md" and resolved.suffix.lower() != ".md":
raise ValueError(f"Only markdown skill resources are routable: {relative_path}")
return resolved.relative_to(SKILL_ROOT).as_posix()
def load_if_available(relative_path: str, loaded: list[str], seen: set[str]) -> None:
guarded = _guard_in_skill(relative_path)
path = SKILL_ROOT / guarded
if path.exists() and guarded not in seen:
load(guarded)
loaded.append(guarded)
seen.add(guarded)
def route(task):
loaded, seen = [], set()
registry = read_json(SKILL_ROOT / "mode-registry.json")
workflow_mode = explicit_mode_hint(task) or classify_workflow_mode(task)
if not workflow_mode:
load_if_available("shared/README.md", loaded, seen)
return {
"load_level": "UNKNOWN_FALLBACK",
"needs_disambiguation": True,
"disambiguation_checklist": UNKNOWN_FALLBACK_CHECKLIST,
"resources": loaded,
}
entry = find_registry_entry(registry, workflowMode=workflow_mode)
if not entry:
load_if_available("shared/README.md", loaded, seen)
return {"load_level": "UNKNOWN_FALLBACK", "unknown_mode": workflow_mode, "resources": loaded}
packet_skill = f"{entry['packet']}/SKILL.md"
load_if_available(packet_skill, loaded, seen)
for surface_mode in surface_bundle_from_hub_router(task):
surface_entry = find_registry_entry(registry, workflowMode=surface_mode)
if surface_entry:
load_if_available(f"{surface_entry['packet']}/SKILL.md", loaded, seen)
if not loaded:
load_if_available("shared/README.md", loaded, seen)
return {"load_level": "UNKNOWN_FALLBACK", "notice": "matched registry but no packet SKILL.md was available", "resources": loaded}
return {"workflowMode": workflow_mode, "backendKind": entry["backendKind"], "resources": loaded}
When no workflow mode dominates (a bare implement/debug/verify request), the router defers to a pure surface bundle: it detects the surface, loads that surface's evidence and workflow doctrine, and the agent acts. routerPolicy.defaultMode is null — the hub does not force a stale default; an unclear code intent asks for disambiguation.
Surface detection (WEBFLOW, OPENCODE, MOTION_DEV, with OPENCODE over WEBFLOW precedence) lives once in the hub's shared/ layer and is consumed by every mode and surface. Modes own workflow contracts, not surface identity.
Per-mode behavior is not flattened: each packet keeps its own code-work contract, standards, evidence rules, and tool-permission guards.
sk-code/
SKILL.md # this routing hub (no per-mode code logic)
ROUTER.md # active stage-two surface router and shared-control declaration
mode-registry.json # the two-axis discriminator + advisorRouting (single source of truth)
hub-router.json # lexical routing signals + surfaceBundle policy for hub-local choice
description.json # hub advisor descriptor
graph-metadata.json # the ONE advisor identity for the whole skill
sk-code-quality/ # quality mode packet (workflow)
sk-code-review/ # review mode packet (workflow)
sk-code-webflow/ # webflow surface packet (read-only evidence; carries the workflow doctrine + Motion.dev animation overlay)
sk-code-opencode/ # opencode surface packet (read-only evidence; carries the workflow doctrine)
shared/ # shared surface-detection router, cross-mode helpers, and the implement/debug/verify workflow doctrine (references/workflow_*.md)
Each mode or surface packet is self-contained and carries no per-packet graph-metadata.json; only this hub carries one, so the advisor discovers exactly one code skill identity. The implement/debug/verify workflow doctrine is a single shared source under shared/references/; each surface symlinks it in rather than duplicating it.
The surface-router backend is the shared surface-detection router under shared/. It centralizes WEBFLOW, OPENCODE, and MOTION_DEV detection and precedence, and it carries the shared implement → debug → verify workflow doctrine that each surface consumes. The review-cache backend supports the sk-code-review mode's non-mutating review output cache. The evidence-base backend serves the surface packets: read-only domain evidence (sk-code-webflow/, sk-code-opencode/) the hub bundles alongside the primary mode — the packet mutates nothing and never carries process; the acting agent applies the doctrine it bundles. Shared backend material provides surface identity, the workflow doctrine, and cross-mode helpers; it must never gain per-mode workflow contracts.
mode-registry.json; never hardcode a router mapping in the hub.graph-metadata.json (this hub's) so the advisor sees one skill identity.advisorRouting block with routingClass: "metadata" and the correct packetSkillName.shared/references/, symlinked into each surface — never fork per-surface copies.ROUTER.md RESOURCE_MAP keys aligned with its intent keys and packet leaves aligned with leaf-manifest.json.SHARED_CONTROL_RESOURCES; they are control resources, never typed leaves.graph-metadata.json inside a mode packet or shared/.mode-registry.json.mode-registry.json and open a packet; do not bolt logic onto the hub.sk-code-quality/SKILL.md, sk-code-review/SKILL.md.sk-code-webflow/SKILL.md, sk-code-opencode/SKILL.md.shared/references/workflow-implement.md, shared/references/workflow-debug.md, shared/references/workflow-verify.md (symlinked into each surface).mode-registry.json (two-axis: packetKind discriminates workflow vs surface).hub-router.json.ROUTER.md..opencode/skills/sk-doc/sk-create-skill/references/parent-skill/parent-skills-nested-packets.md..opencode/skills/sk-prompt/.Frequently asked questions
One skill, two axes, one shared surface-detection router, and one advisor identity. The workflow axis is two code modes that act (sk-code-quality, sk-code-review); the surface axis is two read-only evidence packets the hub bundles alongside a workflow mode (sk-code-webflow, sk-c…
The source record exposes this install command: npx skills add https://github.com/MichelKerkmeester/opencode--skilled-agent-loops-with-spec-kit-memory --skill ".opencode/skills/sk-code". Inspect the command and pinned source before running it.
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
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing
oaustegard/claude-skills
Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre