skills/design/SKILL.md
Triage complexity and design implementation approach. Triggers on /design, architecture or implementation planning requests, or tasks needing complexity assessment. Triages simple/moderate/complex, produces design documents for complex jobs, routes moderate to /runbook.
npx skillsauth add ddaanet/agent-core designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Produce dense design documents that guide implementation by downstream agents (Sonnet/Haiku).
/runbook (unified — handles both TDD and general phases). Note which phases are behavioral (TDD) vs infrastructure (general) to guide per-phase type tagging./inline when work is execution-ready (Phase B sufficiency gate, Phase C.5 execution readiness). Handles execution lifecycle: corrector, triage feedback, deliverable-review chain.Requirements-clarity gate (D+B anchor): Before any artifact reading or triage, assess requirements completeness. Produce this assessment block (visible output, not internal reasoning):
/requirements]Assessment rules:
requirements.md exists: verify each FR/NFR has a concrete mechanism (not just a goal)/requirements before proceedingRationale: Triage reads artifacts that depend on requirements being clear. Vague requirements propagate through design into planning, producing mechanism-free specifications downstream agents cannot implement. Structured output anchors the routing decision in observable evidence (IEEE 29148 validation activity principle).
Before doing design work, assess whether design is actually needed.
Artifact check: Read plan directory (plans/<job-name>/) for existing artifacts:
design.md exists → route to /runbookoutline.md is multi-sub-problem (contains individually-scoped sub-problems with dependency graph and per-sub-problem readiness routing) → Read references/write-outline.md, skip to multi-sub-problem sufficiency gateoutline.md sufficient (concrete approach, no open questions, explicit scope, low coordination complexity) → Read references/write-outline.md, skip to outline sufficiency gateoutline.md insufficient → Read references/write-outline.md, resume from A.5 (revise) or A.6 (review)Load triage-relevant decisions before classifying. This tool call is the structural anchor — prevents classification from being skipped or rationalized.
/recall triage
/recall triage reads memory-index, selects classification-relevant entries, resolves them/recall does not yet support triage strategy — until centralize-recall lands, invoke /recall and specify triage scope in the promptAssess two axes (Stacey Matrix-grounded), then classify. Classify only — do not route yet.
Axes:
Complex: Either axis low. Architectural decisions with multiple valid approaches, uncertain or evolving requirements, significant codebase impact.
Moderate: Both axes moderate-to-high. Clear requirements, no architectural uncertainty, well-defined scope. Behavioral code changes: new functions, changed logic paths, conditional branches.
Simple: Both axes high. Single file, obvious implementation, no architectural decisions. No behavioral code changes — new functions, changed logic paths, conditional branches are Moderate regardless of conceptual simplicity.
Defect: Observed behavior ≠ expected behavior. Route to structured-bugfix regardless of apparent complexity — the investigation structure replaces architectural design. Cynefin Complicated domain: cause analyzable, fix knowable, but analysis must be structured to prevent premature-closure bias.
Assess work type alongside complexity — independent dimension (XP spike/story, Boehm throwaway/evolutionary). Work type determines execution ceremony (quality obligations); complexity determines design ceremony.
| Work Type | Diagnostic Question | Deliverable | Done Criteria | |-----------|-------------------|-------------|---------------| | Production | Does this deliver capability to users/agents? | Working feature, behavior change | Tested, linted, reviewed, integrated | | Exploration | Does this produce knowledge or validate an approach? | Prototype, spike, feasibility answer | Functional, produces intended learning | | Investigation | Does this produce a decision or analysis? | Report, decision entry, requirements | Accurate, complete, actionable |
Assessment signals:
plans/prototypes/ → Exploration, plans/reports/ → Investigation, src/ → ProductionArtifact destination informs quality obligations (Boehm throwaway vs evolutionary prototype distinction):
| Destination | Paths | Quality Obligations |
|------------|-------|-------------------|
| production | src/, plugin/bin/, plugin/lib/ | Tests, lint, module structure, review |
| agentic-prose | plugin/skills/, plugin/fragments/, plugin/agents/, agents/ | Wording quality, behavioral verification |
| exploration | plans/prototypes/, plans/spikes/ | Functional, documented purpose, no test mirrors |
| investigation | plans/reports/, agents/decisions/ | Accuracy, completeness, grounding |
| ephemeral | tmp/ | None |
Before classifying: If the input artifact contains multiple discrete work items (deliverable review findings, PR review comments, multi-FR implementation list), decompose into per-item classification:
Why: Batch classification averages heterogeneous items. A behavioral code change gets masked by non-behavioral siblings in the same group.
Distinct from companion tasks (below). Companion tasks handle explicit user bundling in session notes. Composite tasks handle implicit bundling by the task's nature — multiple items within a single input artifact.
Structural check (D+B anchor): If classification is borderline Simple/Moderate, verify with Glob or Grep on affected files to confirm whether behavioral code changes are involved (new functions, changed logic paths).
Produce this classification block before routing (visible output, not internal reasoning — per-item if composite):
Classification persistence (C-2): Write the classification block verbatim to plans/<job>/classification.md. This file is consumed by triage-feedback.sh for post-execution comparison (FR-5/FR-6).
Simple → Lightweight recall-explore, then chain to /inline:
edify _recall resolve "when <domain-keyword>" ... — resolve domain-relevant entries (single call, triggers from task context)Glob/Grep to identify targets/inline plans/<job> execute)
Skip design — all other operational rules (skills, project tooling, communication) remain in effect.Moderate → Read affected files to ground brief against actual codebase state, then generate execution artifact:
Agentic-prose path (artifact destination = agentic-prose):
references/write-inline-plan.md. Generate plans/<job>/inline-plan.md using that format./proof plans/<job>/inline-plan.md (no corrector — scope completeness is domain knowledge, not structural checking)/inline plans/<job> execute)Non-prose path (all other artifact destinations):
plans/<job>/outline.md using lightweight format (scope, per-file changes, dependencies, IN/OUT boundaries)/proof plans/<job>/outline.md (outline-corrector dispatched by /proof on revise/kill)/runbook plans/<job>)Complex → Read references/write-outline.md for Phase A (research + outline) and Phase B (user validation + outline sufficiency gate). (Verb-oriented name: action the agent takes, not the artifact produced.)
Defect → Route to structured-bugfix workflow: reproduce → root-cause → fix → verify. Skip design — the investigation structure replaces architectural design.
Companion tasks: If session notes bundle additional work into this /design invocation ("address X during /design"), enumerate all bundled tasks before processing any:
The enumeration is the structural anchor — forces explicit acknowledgment of each task rather than silently merging them into the primary task's classification.
Session state check: If session has significant pending work (>5 tasks), suggest /shelve before proceeding.
When a design modifies an "author" skill (a skill whose output is reviewed by a corrector), check coupled dependencies before completing the design:
agents/decisions/pipeline-contracts.md)Dependency mapping:
| Author Skill/Artifact | Corrector | Validator | |----------------------|-----------|-----------| | /design (outline format) | outline-corrector | -- | | /runbook (tdd-cycle-planning.md) | runbook-corrector (/review-plan) | validate-runbook.py | | /runbook (general-patterns.md) | runbook-corrector (/review-plan) | validate-runbook.py | | /requirements (standard format) | -- (user-reviewed) | -- |
Visible output (mandatory): "Author change: X. Coupled corrector: Y. Update needed: yes/no." This block forces awareness of coupling — designers check the table, not silently skip it.
As the final action of this skill:
additionalContext (first skill in chain) or from [CONTINUATION: ...] suffix in Skill args (chained skills)/runbook plans/<job>/inline plans/<job> execute/handoff → /commitCRITICAL: Do NOT include continuation metadata in Task tool prompts.
On failure: Abort remaining continuation. Record in session.md Blockers: which phase failed, error category, remaining continuation orphaned.
development
Verify a Python function against its intended behavior by writing an icontract contract and checking it with `edify check` (CrossHair), repairing in a loop. Triggers on "formalize", "verify this function", "add a contract and check it", or after writing a function whose correctness matters. The in-context agent holds intent and asks the user when behavior is ambiguous; CrossHair owns the deduction.
tools
Manage git worktrees for parallel task execution. Triggers on "create a worktree", "set up parallel work", "merge a worktree", "branch off a task", or uses the `wt`, `wt merge`, or `wt-rm` shortcuts. Worktree lifecycle: creation, focused sessions, merge ceremony, cleanup, parallel task setup.
testing
Recall behavioral knowledge from project decisions. Triggers on "when to do X", situational patterns, or decision content for recognized situations. Invoke with "/when <trigger>".
tools
Sync edify fragments and portable justfile to match the current plugin version. Detects user-edited files and warns instead of overwriting. Use --force to overwrite conflicts.