dsh-plugin-plan

Plans standalone DSH Cordis plugin architecture before any code is written.

1|Updated Aug 13, 2026
One-click install
npx skills add https://github.com/a179-sanae/dsh-code-check --skill dsh-plugin-plan-a179-sanae
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: dsh-plugin-plan
Source: https://github.com/a179-sanae/dsh-code-check/tree/main/.agents/skills/dsh-plugin-plan
Command: npx skills add https://github.com/a179-sanae/dsh-code-check --skill dsh-plugin-plan-a179-sanae

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Designing a DSH plugin without upfront decisions leads to wrong plugin forms, missing dependencies, broken profile patches, and rework. This Skill turns a requested capability into explicit, validated package decisions before any files are created. ## Core Features & Use Cases - Plugin Form Selection: Decides between function plugins (named exports with inject/Config/apply) and service plugins (default-exported Service subclass), avoiding Loader unwrapping pitfalls. - Dependency & Configuration Matrix: Records every imported DSH service with availability, Cordis access pattern, manifest entries, and fail-loud validation rules for each config field. - Lifecycle, Invariant & Test Planning: Defines ownership of registrations, timers, and watchers, designs the ./invariant companion export, plans profile composition rows, and selects the minimal evidence tiers. - Use Case: When asked to add a new capability to DSH, use this Skill to produce a complete handoff for dsh-plugin-development covering pluginForm, roles, dependency matrix, configuration, lifecycle, invariant, bundle rows, test tiers, and distribution assumptions. ## Quick Start Use dsh-plugin-plan to design a standalone DSH plugin for my requested capability, deciding its form, dependencies, configuration, invariant, profile composition, and test plan before writing any code.

Frequently Asked Questions about dsh-plugin-plan

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I plan a DSH Cordis plugin before writing code?▼

Use this planning skill to decide the plugin form, dependency matrix, configuration schema, lifecycle ownership, invariant, and test tiers upfront. It produces a handoff document consumed by the dsh-plugin-development skill for implementation.

What is the difference between a function plugin and a service plugin in Cordis?▼

A function plugin uses named exports name, inject, Config, and apply, and must never add a default export because Loader unwrapping discards namespace metadata. A service plugin default-exports the Service subclass holding registration and lifecycle logic.

How do I access optional DSH services in a Cordis plugin?▼

Required services belong in the inject array and are accessed via ctx.<service>. Optional services should use ctx.get(name) or scoped ctx.inject; undeclared ctx.<name> access is not allowed.

Why does my DSH profile patch configuration not take effect?▼

Id-targeted patch rows replace the entire config value rather than deep-merging it. You must copy the complete intended config into the override row, including every field you want to keep.

When should a DSH plugin export an invariant module?▼

Every package exports ./invariant and registers its exact package name with an authoritative runtime event or data relationship. If none exists, record an explicit No runtime invariant explanation instead of inventing checks.