Files
wursor/.agents/skills/wursor-feature/SKILL.md
T
SinachPat 0dae13cfd3 feat: add pstack-style rigor skill family for Zed
- wursor-precheck: router skill, entry point for non-trivial tasks
- wursor-principles: 21 engineering principles adapted for Wursor
- wursor-tdd, wursor-bug-fix, wursor-feature, wursor-investigation,
  wursor-review, wursor-decision-log: playbook skills
- AGENTS.md: repo guide wiring the skill routing table
- Fix: double-quote YAML frontmatter descriptions (colon-space in
  plain scalars broke Zed's skill loader)
2026-08-14 14:23:06 +01:00

2.3 KiB

name, description
name description
wursor-feature Build new or changed behavior in the Wursor repo, from a named data shape, TDD-first, with a defined verification path. Includes a refactoring mode for behavior-preserving structural change. Adapted from pstack's feature playbook.

Wursor Feature

Build a new feature, or change behavior, with the rigor of a named data shape, a failing test first, and a defined verification path.

When to use

Use this skill when:

  • The task is "add X", "build Y", "change Z"
  • A user story describes new behavior
  • A refactoring preserves behavior while changing structure

Do not use this for: one-line changes, copy edits, or bugs (use wursor-bug-fix).

Playbook

Step 1 — Name the data shape

Before any code, define what the feature operates on. The core types, in concrete form:

  • What is the input? (request, event, message)
  • What is the output? (response, deployed state, preview URL)
  • What states does it pass through? (enumerate them)
  • What can go wrong? (enumerate the errors)

Write these as types or interfaces where the language supports it. For api/ this usually means a TypeScript type or a Zod schema at the boundary. For plugin/ a class or array-shaped response.

Step 2 — Write the failing test

Following wursor-tdd:

  • One test per behavior, one assertion per test
  • The test must fail before implementation
  • Mocks at boundaries: Grok API, plugin API, Docker, filesystem

Step 3 — Implement

Write the minimum code to pass the test(s). Follow the principles:

  • Foundational thinking — the types from step 1 drive the implementation
  • Make operations idempotent — the feature must be retry-safe
  • Boundary discipline — parse and validate external input at the boundary

Step 4 — Verify

  • The new tests pass
  • The broader suite passes (pnpm test:api, pnpm test:web, or phpunit as appropriate)
  • For UI features: the component renders in the browser/E2E test, not just "compiles"

Step 5 — Report

## What changed
- new module [x.ts] — does the specific thing, shaped by type T
## Data shape
- input: ..., output: ..., states: [...], errors: [...]
## Verification
- [feature.test.ts] — 4 tests, all pass
- full suite — green
## Follow-ups
- schema migration needed in [y.ts] when playbook runner lands