Feature Development Skill

SkillDev tools

Feature development workflow. Use when: implementing features, writing code, running dev loop. Not for: understanding code (use code-explore), reviewing code (use codex-code-review). Output: implemented feature + tests + review gate.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Feature Development Skill skill

What this skill tells your AI

The instructions your AI receives, as published by sd0xdev/sd0x-harness in skills/feature-dev/SKILL.md and read by ahel’s review.

Trigger

  • Keywords: develop feature, implement, write code, verify, precommit, refactor, simplify

When NOT to Use

  • Just want to understand code (use Explore)
  • Review code only (use codex-code-review)
  • Review documents only (use doc-review)
  • Pure test-only tasks without feature changes (use /codex-test-review directly)

Prohibited Actions

❌ git add | git commit | git push — per @rules/git-workflow.md

This skill implements features but does not commit. /precommit is a quality gate only. To commit, the user must invoke /smart-commit --execute separately.

budget:token_budget200000</budget:token_budget>

Workflow

Requirements → Design → Implement → Test + Review → Precommit Gate → Doc Sync
                │          │            │                  │               │
                ▼          ▼            ▼                  ▼               ▼
           /codex-     /codex-    /verify              /precommit  /update-docs
           architect   implement  /codex-test-review   (or /precommit)  /create-request --update
                                  /codex-review-fast

Load the intent first: identify the feature this work belongs to (from the task, the spec/requirements being followed, or the paths being changed) and read docs/features/<key>/intent-<key>.md if it exists — it overrides your default approach. Work that contradicts one of its INV-* invariants or Non-goals stops and asks the user (cite the line; amending intent is their re-decision). No identifiable feature → nothing to load; proceed.

Design before code: for a non-trivial change, briefly consider who owns each responsibility, the simplest shape that fits the existing code, and why — and say what you chose when the choice is non-obvious. Principles (clear names, small cohesive functions, dependency direction, composition where it reduces coupling) are questions, not quotas: never add an abstraction to demonstrate design. /codex-architect is for genuinely hard trade-offs (cross-module boundaries, new public APIs, durable abstractions), not every feature.

Commands

PhaseCommandDescription
Design/codex-architectGet architecture advice
Implement/codex-implementCodex writes code
Test: Run/verifyRun tests (lint → typecheck → unit → integration)
Test: Review/codex-test-reviewMandatory — review test sufficiency (5 dimensions)
Test: Generate/codex-test-genGenerate unit tests for gaps
Test: Integration/post-dev-testWrite missing integration/e2e tests
Review/codex-review-fastCode review (auto-loop)
Precommit/precommitlint + build + test (auto-loop canonical path)
Doc Sync/update-docsSync docs with code
Doc Sync/create-request --updateUpdate request progress
Refactor/simplifyFinal refactoring

Test + Review Phase (Detail)

This is the core of feature-dev — ensuring sufficient test coverage before code review.

Step 1: Run existing tests

/verify → all tests pass?
  Yes → Step 2
  No → fix failures → re-run /verify

Step 2: Test adequacy review (mandatory for code changes)

/codex-test-review → ✅ Tests sufficient?
  Yes → Step 3
  No → close gaps (Step 2a) → /codex-test-review --continue

Step 2a: Gap closure

Gap TypeRemediation Command
Unit test missing/insufficient/codex-test-gen → write tests → /verify
Integration/E2E missing/post-dev-test → write tests → /verify

Step 3: Code review (auto-loop)

/codex-review-fast → ✅ Ready?
  Yes → Precommit Gate
  No → fix issues → re-run /codex-review-fast (auto-loop)

Freshness rule

If code changes after the latest ✅ Tests sufficient gate (e.g., fixes from code review), rerun /verify then /codex-test-review --continue before proceeding to precommit gate.

Testing Requirements

Follow @rules/testing.md for conventions (AAA, naming, evidence model). Follow @rules/testing-project.md for project-specific overrides (directories, runner, adequacy mode).

Change TypeTest Requirements
New Service/ProviderMust have corresponding unit test
Modify existing logicExisting tests pass + new logic tested
Bug fixMust add regression test
New API endpointIntegration test required
Cross-service changeE2E test required

Test File Mapping

Use project convention from @rules/testing-project.md. If no override is defined, follow ecosystem defaults:

Source PatternTest Pattern
src/<module>/test/unit/<module>/ or test/<module>/
scripts/<name>.shtest/scripts/<name>.test.js
skills/<name>/SKILL.mdtest/skills/<name>.test.js

Output

  • Implemented feature code + tests
  • Test adequacy gate: ✅ Tests sufficient
  • Review gate: ✅ Ready
  • Precommit results: ✅ All Pass

Verification Checklist

  • All tests pass (/verify)
  • Test adequacy reviewed (/codex-test-review)
  • Code review passed (/codex-review-fast ✅ Ready)
  • Precommit passed (/precommit ✅ All Pass)
  • No git add/commit/push executed

Doc Sync (after precommit Pass)

⚠️ Auto-triggered by @rules/auto-loop.md — behavior-layer rule, not hook-enforced.

Only when change maps to a feature under docs/features/. Target detection uses 3-level fallback — see /update-docs for algorithm details.

precommit Pass
  → Locate feature docs (see /update-docs 3-level fallback)
  → /update-docs docs/features/<feature>/2-tech-spec.md      (current-authority doc)
  → /create-request --update docs/features/<feature>/requests/<date>-<title>.md   (record: status + outcome only)
  → /codex-review-doc            (ONE dispatch for every doc touched above)
  → Safety valve: new code diff? → back to review loop (see /update-docs)

Sync the current-authority doc; append to the record. The tech spec states what is true now, so code landing makes it stale and it is rewritten. A request ticket, review log or ADR states what was decided or done at a point in time — it is updated with status and outcome, never rewritten to match today's code, because rewriting it destroys the record. scripts/lib/doc-metadata.js decides which a file is; /codex-review-doc reviews each under the profile that classification earns.

One /codex-review-doc for all of them, not one per file: the changed docs are a single review plan (skills/doc-review/SKILL.md § Workflow). Per-file dispatch is what multiplied a three-file doc sync into three whole-document reviews.

Review Loop

MUST re-review after fix until PASS (per @rules/auto-loop.md)

Review → Issues found → Fix → Re-review → ... → ✅ Pass → Next step

Examples

Input: Implement a fee calculation method
Action: /codex-architect → /codex-implement → /verify → /codex-test-review → /codex-review-fast → /precommit
Input: This code needs refactoring
Action: /simplify → /verify → /codex-test-review → /codex-review-fast → /precommit
Input: Feature dev, continue (resuming work)
Action: Check git status → identify remaining tasks → continue from current phase

Signals

GitHub stars
188
Forks
24
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
feature-dev-sd0xdev
Source
github.com/sd0xdev/sd0x-harness