agentleFS
a-novel-kita-novel-kit/stack/.agents/skills/develop-feature/SKILL.md

develop-feature

Skill2 starsChanged 4 days agoMITView on GitHub

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 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 9 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈9

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Follow each applicable rule at its owning boundary.

    line 30
  2. Distinctive:

    Default to a local draft when the solution or user experience is unclear.

    line 35
  3. Distinctive:

    Ask every design question you can foresee in your first exchange.

    line 48
  4. Very specific:

    Start dependent work once the contract it consumes is settled, not once that contract ships.

    line 50
  5. Distinctive:

    When you split work across sessions or subagents, write the shared background to a file once and pass its path, put everything already …

    line 62
  6. Very specific:

    Read the affected path, existing behavior, and constraints.

    line 68
  7. Distinctive:

    Keep the draft local: no push, remote issue creation, or PR until the direction is agreed, unless the developer explicitly requested that …

    line 74
  8. Distinctive:

    Write only tests needed now to reproduce a bug, protect a risky invariant, or resolve a design uncertainty.

    line 78
  9. Distinctive:

    Use discussion to converge on a working draft, not a demand for abstract approval.

    line 105
  10. Very specific:

    After agreement on the draft, use plan-feature to create or update the appropriate GitHub issues, with the existing type, hierarchy, …

    line 114
  11. Very specific:

    Use resolve-pr-feedback for both issue and PR discussions.

    line 125
  12. Very specific:

    Do not create a recurring monitor unless requested.

    line 129
  13. Distinctive:

    Before expanding the test suite, verify that the relevant issues' scope and acceptance criteria have been approved and blocking design …

    line 134
  14. Very specific:

    Always finish with an intentional review of the whole affected path using prefer-small-solutions.

    line 158
  15. Very specific:

    Remove draft scaffolding, dead code, duplication, redundant state and conversions, unnecessary abstractions, and obsolete fixtures.

    line 159
  16. Distinctive:

    Keep cleanup within the agreed scope.

    line 165
  17. Very specific:

    Call a PR mergeable only after applicable approval, coverage, visual review, and cleanup are complete.

    line 169

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.