Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Wdi Component

ASecurity

Use at G4 Component — the depth of one Product Component, as deep as that component's mode and no deeper. Two intents, behaviour and design. Owns .what/<pc>/ slots 02-05 and .how/<pc>/ minus 01-ux. Skipped entirely at mode catalog.

4 stars
0 votes
0 copies
0 views
Added 9/23/2026
developmentgoapi

Works with

api

Security Analysis

A100/100

Scanned 9/23/2026

Install to Claude Code

$npx -y skills add wiradeltaid/wdi-method --skill wdi-component --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wdi Component?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Wdi Component
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wiradeltaid-wdi-component/badge)](https://www.skillsdirectory.com/skills/wiradeltaid-wdi-component)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: wdi-component
description: Use at G4 Component — the depth of one Product Component, as deep as that component's mode and no deeper. Two intents, behaviour and design. Owns .what/<pc>/ slots 02-05 and .how/<pc>/ minus 01-ux. Skipped entirely at mode catalog.
---

# WDI Component

G4 decides **how one Product Component is built, and what the choice costs.** It is the only gate that changes
shape with `mode`, and the only one that runs more than once for a reason other than a new PRD.

| `mode` | This skill |
|---|---|
| `catalog` | **Not run. G4 is skipped.** |
| `outline` | `behaviour` + `design` **as far as § Structure**, and no further |
| `guarded` | `behaviour` + `design` |
| `deep` | `behaviour` + `design` |

This table said `outline` → `behaviour` only until 2026-08-18. It contradicted **Step 4 of this same
skill**, which starts `Decision Summary` and `Structure` "from `outline`", and it contradicted
`delivery-flow-guide.md`, which owns the mapping and lists both for `outline`. Read literally, it would
have left every `outline` component with an SDD that is a template skeleton forever — and `review-trace` would have
been right to keep flagging it.

Read the component's `mode` from its row in `components.yaml`, falling back to `mode:` in `index.yaml`. Read
its `risk_accepted` from the same row; it decides the review lenses and nothing else.

**You MUST NOT write more than the component's `mode` demands.** Writing a section the mode does not ask for is
the failure this gate was rebuilt to stop — it is how 41 of 56 use cases ended up marked `critical` and how the
previous run stalled. Depth is a preference the owner set, and exceeding it is not diligence.

Stage-3 and Stage-4 work were two skills before and are one now, because they are one gate. The boundary
between them is intact and it is **horizontal**: `behaviour` writes what the system does, `design` writes how.

## Inputs

| Source | What it answers |
|---|---|
| `.control/registry/components.yaml` | This component's `mode`, `risk_accepted`, `risk_note`, `owns` |
| `.what/<pc>/SRS-<pc>.md` § UC Catalogue · § Actor Register | Which use cases exist, and which are `critical` |
| `.what/_prd/*/prd.md` | The `FR` this component has to make true |
| `.what/business-rules.md` | Rules that already bind more than one component |
| `.how/_platform/inventory-api.md` · `inventory-screen.md` | **The boundary list.** It is already derived; do not derive it again |
| `.how/_platform/ARCHITECTURE-SPINE.md` | Every `AD-N` that binds this component |
| `.how/_platform/cross-cutting.md` | The error envelope, and anything else decided once |
| `.control/decisions/` | `applied` decisions this must not contradict |
| `.constitution/method/document/srs-guide.md` · `sdd-guide.md` | The rules the result is checked against |
| `src/` · `web/` | Only as evidence when the code already exists. Never as a substitute for the SRS |

## Step 1 — Scope, one component

State it in one line before doing anything. A pass MUST NOT write content for several components: an SDD is per
component by construction, and one pass over two of them inherits the wrong constraints.

| Ask | Scope |
|---|---|
| "Take `<pc>` to G4" | One component, both intents as its `mode` demands |
| "Write the failure behaviour for `<pc>`" | One section of one component |
| "Is our design consistent?" | Read-only across components — that is `wdi-reconcile`. Route there |

## Step 2 — Preconditions

None of these are yours to create.

| Check | When it fails |
|---|---|
| The component is registered with `mode` and `risk_accepted` set | Route to `wdi-init` intents `component`, `mode`, `risk` |
| Its `mode` is not `catalog` | Stop. G4 is skipped, and the work goes straight to `wdi-build` |
| G3 has passed | Route to `wdi-blueprint`. Depth written against a moving portrait is rewritten |
| The spine exists and its `AD-N` are readable | Route to `wdi-blueprint`. You MUST NOT write the spine |
| For `design`: the container this component runs in is registered | Route to `wdi-blueprint`. G3 has passed by now, so the answer exists — an `LC` written here MUST carry it. Only a screen `LC` born at G2 is allowed an empty one, and G3 fills it |

## Step 3 — Intent `behaviour`

Writes `.what/<pc>/`, slots `02`–`05`. You MUST NOT write solution shape: no framework, no table, no endpoint,
no class, no queue, no file path.

| `mode` | Written |
|---|---|
| `outline` · `guarded` | Full flows for the use cases the component exists for, **at most 3**, in `04-usecases/UC-<n>-<slug>.md` · local business rules in `02-rules/rules-<pc>.md` |
| `deep` | + a full flow for **every** `critical` use case · `03-domain/state-machines.md` · `05-scenarios/SCN-<nn>-<slug>.md` |

A flow is at most **eight steps**. A flow needing more is either two use cases or has started describing
implementation, and the cap is what makes that visible while it is still cheap to fix. Branches go to
`05-scenarios/` — at `deep` only — never into a fatter UC file.

A rule that turns out to bind a second component MUST be **promoted** to `.what/business-rules.md` through
`wdi-blueprint`, not copied. Two copies of one rule is how components start disagreeing about the same policy.

## Step 4 — Intent `design`

Writes `.how/<pc>/`. Two carve-outs that are not negotiable: `01-ux/` belongs to `wdi-ux`, and all of
`.how/_platform/` belongs to `wdi-blueprint`. You MUST NOT write into either.

Write in this order, stopping at whatever the `mode` does not reach:

1. **`Decision Summary`** — from `outline`. One page: what this component is built as, and the one or two most
   expensive choices reversed.
2. **`Structure`** — from `outline`. The `LC` list and the direction of their dependencies.
3. **`Inherited Constraints`** — from `guarded`. Every `AD-N` reaching this component, **quoted verbatim**. A
   paraphrase drifts, and the drift is invisible because both texts read reasonably. A design that must deviate
   does not argue here: it goes to `wdi-decision`, and either the spine changes or the design does.
4. **`Failure Behaviour`** — from `guarded`, for **every** boundary. The boundary list is the endpoints and
   screens this component owns in the two platform inventories. Per boundary: what happens when the other side
   is slow, absent, or lying — timeout, retry policy, what the user sees, what gets logged. "Returns an error"
   is not an answer.
5. **`03-integrations/<name>.md`** — from `guarded`, when the component has a third party. It MUST name the
   owner outside the team, and what happens when they change it without telling anyone.
6. **The ABCE pass** — `deep` only, in order: Boundary → Control → Entity → Behaviour. It MUST NOT have
   appeared in the SRS, and below `deep` it MUST NOT be written at all.
7. **`02-contracts/`, `04-components/`, `05-model/data-model.md`, `06-flows/`** — `deep` only. The contract
   inventory comes first and specs carry its stable numbers; every spec answers all five lanes, with `none` and
   a reason where one does not apply. The data model carries a dictionary beside its diagram.

From `guarded` up, every Boundary object MUST become an `LC` in `components.yaml`; at `deep`, Control objects
too. Registration is checked **when the spec closes** — `lc-registered` — not before a ticket is picked up. You MUST
NOT register a `container`, and you MUST NOT register `ui-screen` or `ui-composite`.

## Step 5 — Evidence, and the as-built case

Every technical claim about code that already exists MUST name what was read. The four labels — `[ASSUMED]` ·
`[PARTIAL]` · `[NEEDS CONFIRMATION]` · `[MISSING]` — are mandatory, and their ladder rules are in
`sdd-guide.md`.

**Raising a component's `mode` after its code runs is the case this matters most for.** What you write then is
an **as-built record, not a design**, and you MUST NOT raise a claim to verified without naming the file that
proves it. Two labels MUST be acted on rather than left in the text:

- `[NEEDS CONFIRMATION]` → `wdi-question`, before G4 opens.
- `[MISSING]` → dispositioned as a `BUG-`, a correction, or planned work. It MUST NOT be deleted; the
  sentence is the only surviving evidence that somebody once believed the thing existed.

## Step 6 — Drift

Check against the layer above and the code below, and **report** — never edit the other side.

| Found | Where it goes |
|---|---|
| Depth needs behaviour the catalogue never listed | `wdi-blueprint` — into the catalogue, before any code |
| The catalogue promised behaviour this component cannot deliver | `wdi-product`. Do not quietly narrow it here |
| A contradiction with an `applied` decision or an `AD-N` | `wdi-decision` — a new `DEC-`, never an edit to one already applied |
| A decision that would bind a second component | `wdi-blueprint` — it is an `AD-N`, not an SDD paragraph |
| The code does something this document does not describe | Here, as a labelled claim, or as a `BUG-` when the code is wrong |

`wdi-reconcile` is the read-only sweep across all layers. Run it rather than reimplementing it.

## Step 7 — Review

No `doc_standards` fires for an SRS or an SDD. Dispatch `wdi-review`, which reads the lens set from this
component's `risk_accepted` — `edge-case-hunter` at `low` and `medium`, `structure` + `prose` at `high`, plus a
two-reviewer code panel at `low`. Slots are part of the artifact; reviewing a kernel alone misses where the
branches and contracts live.

You MUST NOT open G4 on depth that has not been through it.

## Rules

- A decision taken while writing is **written into the document as its own content**, stated as what now
  holds. Never as a parenthetical aside — there is no memlog here to catch one. It goes to `wdi-decision`
  only when no design document has a home for it, or it touches an `AD-N`; `decision-guide.md` § A
  decision's first home owns that split.
- You MUST NOT write into `.what/_prd/`, `.what/business-rules.md`, `.how/_platform/`, or `.how/<pc>/01-ux/`.
- You MUST NOT raise `status:`. Status is a stage; the `reviewed:` block is an event.
- You MUST NOT lower or raise the component's `mode` to fit what you want to write. That is `wdi-init`, and it
  is the owner's call.
- The spec's contract is cut **after** this, never before, and it MUST NOT introduce anything these documents do not say.
- Memlog: `.control/memlog/<pc>.md`, through `memlog.py --path`. `--workspace` MUST NOT be used.
- Questions arrive as **one** ranked batch at the gate, not as they surface.

## Output

Component and its `mode` and `risk_accepted` · which intents ran · what was written per slot and **what the
mode deliberately left unwritten** · the `AD-N` inherited · the `LC` registered and their types · evidence
labels outstanding by kind · drift found and where it was routed · whether `wdi-review` ran · the one ranked
batch of questions.

Attribution

wiradeltaidwiradeltaid
View sourceMore from wiradeltaid →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284722 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2192 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →