Skip to content
Back to skills

Develop Feature

ASecurity

Guide software changes through local draft, agreement, issue/PR review, scoped tests, and cleanup. Load for planning, implementation, testing, review, or publication in any repo kind.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
developmentrusttestinggitfrontendsecuritydocumentation

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add a-novel-kit/stack --skill develop-feature --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Develop Feature?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Develop Feature
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/a-novel-kit-develop-feature/badge)](https://www.skillsdirectory.com/skills/a-novel-kit-develop-feature)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: develop-feature
description: >
  Guide software changes through local draft, agreement, issue/PR review, scoped tests, and
  cleanup. Load for planning, implementation, testing, review, or publication in any repo kind.
---

# Develop a feature

Own the outcome as both technical and UX lead. Use four stages: **draft locally → review the
agreed direction → complete tests for approved scope → tighten and hand off**. This skill owns
stage timing; specialist skills own architecture, implementation, testing conventions, issue
metadata, Git, and review mechanics. Load [prefer-small-solutions](../prefer-small-solutions/SKILL.md)
throughout, plus the skills for the affected layers.

## Load guidance for the current decision

Load each applicable skill once and follow its reference routing. A linked skill is required when
its stated condition applies; a mention of a later stage is not a command to load that stage's
entire runbook now. Reuse already-read guidance until it changes or is no longer available in
context. Before entering a new stage, load its owner and the references needed for that operation.

- This skill owns agreement, stage transitions, and test timing.
- `prefer-small-solutions` owns simplicity; `choose-dependency` owns package selection.
- `plan-feature` and `plan-ui-design` own technical and product design, respectively.
- Language, architecture, and test skills own their contracts and conventions.
- `git-conventions`, `open-pull-request`, `monitor-ci`, and `resolve-pr-feedback` own their
  operational procedures; `use-a-novel-cli` owns local command routing.

Follow each applicable rule at its owning boundary. Simplicity guidance never relaxes a specialist
constraint; uncertain scope stays open under the existing approval rules.

## Choose the starting stage

Default to a local draft when the solution or user experience is unclear. A clear brief or existing
agreement can skip exploration; a small, unambiguous fix, documentation change, or bounded technical
task can combine stages in one pass. State a consequential shortcut briefly. Technical complexity
alone does not justify skipping discussion of uncertain scope, architecture, or behavior.

Reuse agreement and authorization already given; do not ask the developer to approve the same
decision again. Proportionate validation and a final cleanup pass still apply to the shorter path.
An explicit request to publish or create an issue can advance that action within its stated scope.

## Keep the work moving

The developer waits on whatever you block on, so keep each step busy:

- Ask every design question you can foresee in your first exchange. One that surfaces after green
  CI costs a rework and another CI round.
- Start dependent work once the contract it consumes is settled, not once that contract ships.
  Build against the unreleased dependency as `manage-versions` shows and keep that PR a draft. Once
  the dependency releases, Renovate brings it to `master` and the branch rebases on it before it
  turns ready: the release gates the merge, not the start.
- While a check, a review, a release or another session runs, prepare the next step: the PR body,
  the next branch, a follow-up PR. To resume when a merge or a release lands, start one background
  command that ends then, such as
  `until gh release view vX.Y.Z --repo <org>/<repo> >/dev/null 2>&1; do sleep 60; done`.
- Batch independent reads into one command or parallel tool calls: every round trip re-reads the
  whole conversation.
- Hand a large implementation that follows a long discussion to a fresh session or subagent with a
  written brief. A context near its limit slows every step and compacts mid-task.
- When you split work across sessions or subagents, write the shared background to a file once and
  pass its path, put everything already known in each brief before starting it, give each its own
  output folder, and fold each report in as it lands.

## 1. Draft locally and lead the discussion

- Read the affected path, existing behavior, and constraints. Use `plan-feature` for non-trivial
  technical design and `plan-ui-design` for material UI decisions while building the draft.
- Edit all local layers needed to make the proposal concrete. Run the application or affected
  service locally; use the package's workbench for a library. Add and run Storybook when rendered
  UI needs review, following `write-frontend`. Exercise the proposed behavior yourself and provide
  verified direct links. Load `use-a-novel-cli` for local runtime commands.
- Keep the draft local: no push, remote issue creation, or PR until the direction is agreed,
  unless the developer explicitly requested that action earlier. Local branches and checkpoint
  commits are fine. Uncommitted work, temporary scaffolding, and incomplete test coverage are
  expected in your own draft; preserve useful work and other contributors' changes.
- Write only tests needed now to reproduce a bug, protect a risky invariant, or resolve a design
  uncertainty. Run focused existing checks and smoke tests to support the discussion. Preserve
  existing tests and CI requirements; defer building the full relevant regression suite to stage 3.
  Security, data integrity, trust boundaries, and architectural constraints apply from the start.
- Propose solutions and improvements proactively. Explain the recommendation, its tradeoffs, and
  what the developer should inspect; do not simply implement the first wording of the request.
  Invite feedback throughout the iterations and keep meaningful decisions visible.

### Make the developer able to review

Learn the developer's technical and UX experience from the conversation; ask a focused question
when that would change the explanation. Do not infer competence from their job title or bury them
in specialist vocabulary. Use concrete behavior, examples, and consequences for a UX-focused
reviewer; provide architecture, contracts, and failure details when useful to a technical reviewer.
Adapt the depth without hiding constraints or deciding product preferences on their behalf.

Each draft handoff should give enough guidance to assess the proposal:

- What changed, why it helps, and which parts remain provisional or mocked.
- Direct local app/Storybook routes, setup or sample data, and steps to try.
- Expected outcomes and the most relevant checks: flow and copy, keyboard/focus, narrow layouts,
  loading/error/recovery states, permissions, or data behavior, according to the change.
- Scope and ownership boundaries, dependencies, compatibility or operational limits, and what the
  proposal cannot yet do. Explain where client, server, and shared components own behavior when it
  affects the decision.
- The decisions needed, your recommendation and tradeoffs, and any unresolved risks.

Use discussion to converge on a working draft, not a demand for abstract approval. A decision
requiring expertise the developer lacks remains explicitly open; silence or uncertainty is not
approval. Explain it at an appropriate level, recommend a path, and identify the expertise or owner
needed. During local drafting retain it in the handoff; once issues exist, carry it into a discussion
on the relevant issue with its alternatives, consequences, and the work it blocks. Agreement on the
draft direction may coexist with those open questions; it does not approve the unresolved scope.

## 2. Record the agreed direction and review issues and PRs together

After agreement on the draft, use `plan-feature` to create or update the appropriate GitHub issues,
with the existing type, hierarchy, dependency, board, and metadata conventions. Record the outcome,
scope, acceptance criteria, and decisions established by the draft. Keep unresolved questions in
issue discussions and reflect their impact on scope in the issue body.

PRs may now be opened with `open-pull-request`. Link the issues, describe the provisional parts,
and identify coverage deferred to stage 3. Mark a PR ready as soon as anyone other than you should
look at it: a draft only backs up dirty, unfinished work, and nobody can approve one. Issue
approval, test completion and cleanup gate the merge, not the ready flag. Existing CI checks still
run and must not be weakened.

Use `resolve-pr-feedback` for both issue and PR discussions. During active work, inspect both when
resuming, after a meaningful revision or push, during CI waits, and before advancing stages or
handing off. Read issue comments as well as PR conversation comments, reviews, and inline threads;
neither surface substitutes for the other. Handle feedback on open PRs within the authorized task.
Do not create a recurring monitor unless requested; a background wait that ends on its own, such
as the CI watch of `monitor-ci`, is not one.

## 3. Confirm approved scope, then complete test coverage

Before expanding the test suite, verify that the relevant issues' scope and acceptance criteria
have been approved and blocking design questions resolved. Identify the actual agreement in the
discussion or existing authorized brief; issue closure, a board status, green CI, or approval of a
different scope is insufficient. An approved issue can remain open until its PR lands. For a clear
task that legitimately skipped issues, use its agreed brief as the scope reference.

Compare the implementation and PR diff with that scope. Resolve omissions or scope drift first;
material new design questions return to discussion. Continue independent approved work when a
decision blocks only part of the task.

Now add or update the full **relevant** regression suite: meaningful behavior, boundary and error
cases, security invariants, integration contracts, and critical journeys at the closest truthful
layer. Review coverage reports for important gaps. Do not chase 100%, duplicate assertions across
layers, or test implementation details and trivial glue to inflate a number.

For client-side work, load `write-frontend-tests`: create or update all affected Playwright journey
and visual tests, run them, and inspect screenshot comparisons against the agreed UI. Review actual,
expected, and diff images; investigate unexpected changes before accepting a baseline. A new screen
needs a reviewed initial baseline. Complete applicable unit, component, accessibility, integration,
lint, type, and build checks using the repository tooling. Keep real verification limits explicit;
do not call an unrun check passed.

## 4. Tighten the code and hand off

Always finish with an intentional review of the whole affected path using `prefer-small-solutions`.
Remove draft scaffolding, dead code, duplication, redundant state and conversions, unnecessary
abstractions, and obsolete fixtures. Prefer fewer instructions, as `prefer-small-solutions` counts
them, when behavior and clarity are equal. Preserve strict code practices, security, architecture,
contracts, and useful tests. Make future changes easy through clear ownership and idiomatic
interfaces; avoid speculative extension points.

Keep cleanup within the agreed scope. If it changes observable behavior or the design, return that
decision to discussion and update the tests. Re-run checks affected by cleanup, inspect the final
diff, and recheck issue and PR feedback before declaring readiness.

Call a PR mergeable only after applicable approval, coverage, visual review, and cleanup are
complete. Use `monitor-ci` through its required conclusion. Hand off the verified result, relevant
local review routes, developer review guidance, and any open issue discussions or limitations.
Publishing a proposal and passing CI do not authorize merging or deploying it.

Files in this skill

  • SKILL.md11.4 KB
  • agents/openai.yaml256 B

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.