agentleFS
Microsoft AzureKnown publisherAzure/azure-functions-agents-runtime/.github/skills/add-feature/SKILL.md

add-feature

Skill13 starsChanged 36 days agoMITView on GitHub

Use when adding a medium or larger feature (or a non-trivial change) to the azure-functions-agents-runtime repository — i.e. anything that introduces new public surface, spans multiple modules, or changes authoring/discovery/registration behavior. Drives the full feature lifecycle defined in AGENTS.md: triage + worktree, writing a Feature Requirements Document (FRD) with a Decisions log, an architecture-review checkpoint, surgical implementation, a testing checkpoint, and documentation updates. Trigger on requests like 'add a feature', 'I want to implement X', 'let's design X', or when a change is clearly larger than a nit/bug/small fix. Do NOT use for typos, formatting, comments, or self-contained one-module fixes — those follow the lightweight lane in AGENTS.md.

26 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

22 rules. 0 are common, 8 are distinctive, and 14 are very specific to this project.

  • 0

    Common

    Most of the 24 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 14

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use for medium+ features: new public surface (frontmatter keys, config, endpoints), cross-module changes, or new …

    line 15
  2. Very specific:

    Read AGENTS.md (process) and docs/architecture.md §2–§3 (design + module map).

    line 22
  3. Very specific:

    If the implementation is too large or risky for one reviewable PR, read references/split-rules.md.

    line 45
  4. Very specific:

    Keep the FRD focused on intended behavior, contracts, and durable decisions.

    line 49
  5. Very specific:

    Do not encode delivery mechanics such as PR numbers, commit SHAs, temporary slice/phasing labels, or package versions already owned by …

    line 50
  6. Distinctive:

    Write in crisp, plain English.

    line 52
  7. Distinctive:

    Never cite Decisions-log numbers in FRD prose or cross-references.

    line 55
  8. Very specific:

    Run a dedicated review pass — prefer a review sub-agent (e.g.

    line 60
  9. Very specific:

    Follow AGENTS.md §5 conventions (PEP 695 type aliases, strict typing, Pydantic v2 base-class fields, MAF default with only AGENTS.md's …

    line 79
  10. Very specific:

    Add tests under tests/, mirroring source modules.

    line 92
  11. Distinctive:

    Run the full CI-equivalent gate:

    line 95
  12. Very specific:

    Update documentation made inaccurate by the current slice.

    line 102
  13. Very specific:

    Run python eng/scripts/generate_config_reference.py to regenerate the reference

    line 106
  14. Very specific:

    Use the update-schema-docs skill to add examples to docs/front-matter-spec.md and review docs/architecture.md for consistency

    line 107
  15. Very specific:

    Update relevant docs under docs/ (commonly front-matter-spec.md, triggers.md, or other files as needed) if the authoring surface changed …

    line 110
  16. Distinctive:

    Update README.md if user-facing behavior changed.

    line 113
  17. Very specific:

    Update the FRD index in docs/frds/README.md.

    line 114
  18. Distinctive:

    Verify the AGENTS.md §8 Definition of Done, then open the PR.

    line 115
  19. Very specific:

    After each PR merges, remove its worktree (git worktree remove <path>).

    line 116
  20. Distinctive:

    Never skip a gate. If a gate fails, fix before advancing.

    line 121
  21. Distinctive:

    Keep the Decisions log focused on the feature contract.

    line 122
  22. Distinctive:

    Keep implementation diffs surgical and scoped to the FRD.

    line 125

“Common” is measured: kept by at least 6 in 10 of the 24 edited versions of this file we could read. “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

add-feature — feature lifecycle for azure-functions-agents-runtime

This skill operationalizes the lifecycle in AGENTS.md §1 for medium+ features. Run the phases in order; each has an exit gate — do not advance until it is met. Record consequential feature-behavior choices in the FRD Decisions log, not delivery or PR-management decisions.

When to use

Use for medium+ features: new public surface (frontmatter keys, config, endpoints), cross-module changes, or new discovery/registration/authoring behavior. Skip (use the lightweight lane) for nits, typos, and self-contained one-module bug fixes.

Prerequisites

  • Read AGENTS.md (process) and docs/architecture.md §2–§3 (design + module map).
  • Know the canonical gate commands (AGENTS.md §3).

Phase 0 — Triage + worktree (gate: scope + lane agreed)

  1. Confirm the change is genuinely medium+. If not, drop to the lightweight lane.
  2. Agree a short slug and create a worktree off main:
    git worktree add \
      ../copilot-worktrees/azure-functions-agents-runtime/<user>-<slug> \
      -b <user>/<slug> main

Phase 1 — FRD (gate: FRD drafted)

  1. Determine the next FRD number: highest docs/frds/NNNN-*.md + 1, zero-padded.
  2. Copy docs/frds/_template.md → docs/frds/<NNNN>-<slug>.md.
  3. Fill every section. Map the Proposed design onto the pipeline stages (discover → translate → register → execute) and describe the intended behavior, compatibility boundaries, and acceptance criteria. Do not describe the PR sequence, slice scope, ownership, schedule, or rollout plan in the FRD.
  4. Seed the Decisions log with feature-contract choices and who made them (Human vs Agent). Do not record implementation or delivery planning there.
  5. If the implementation is too large or risky for one reviewable PR, read references/split-rules.md. Discuss the PR sequence and dependencies in PR descriptions or a separate delivery plan, never in the FRD.
  6. Keep the FRD focused on intended behavior, contracts, and durable decisions. Do not encode delivery mechanics such as PR numbers, commit SHAs, temporary slice/phasing labels, or package versions already owned by pyproject.toml.
  7. Write in crisp, plain English. Use short sentences, define terms on first use, assume little background context, and state conclusions as facts. Do not narrate investigation history in the FRD; put evidence in PR descriptions.
  8. Never cite Decisions-log numbers in FRD prose or cross-references; describe the decision instead, because numbers shift on merges/renumbering.

Phase 2 — Architecture review (planning mode) (gate: human sign-off → status: Finalized)

  1. Run a dedicated review pass — prefer a review sub-agent (e.g. rubber-duck) so the author's context does not bias it. Ask it to judge the FRD for:
    • completeness (all sections answered, edge cases, compatibility);
    • alignment with the docs/architecture.md module map and pipeline boundaries (discovery read-only; registration is the only Azure-aware stage; lazy runner);
    • whether the public surface stays consistent with docs/front-matter-spec.md.
  2. Iterate on the FRD until findings are resolved. Append decisions to the log.
  3. Get explicit human sign-off, record it in §8, and set status: Finalized. Do not implement before the FRD is Finalized.

Phase 3 — Implementation (gate: ruff + mypy clean)

For multi-PR delivery, repeat phases 3–5 for every approved slice. Give each slice its own branch and worktree as described in AGENTS.md.

  1. Implement product changes only, per the finalized FRD. Keep diffs surgical; no unrelated refactors.
  2. For multi-PR delivery, implement only the agreed delivery slice and keep its dependency and review scope explicit in the PR, not the FRD.
  3. Follow AGENTS.md §5 conventions (PEP 695 type aliases, strict typing, Pydantic v2 base-class fields, MAF default with only AGENTS.md's bounded app-level Copilot preview exception, shared _logger).
  4. Run and pass:
    python -m ruff check src tests
    python -m mypy src

Phase 4 — Testing (gate: full gate green)

  1. Design coverage for the current slice's behavior — prefer a separate testing review pass (sub-agent or fresh checklist) so gaps are caught independently.
  2. Add tests under tests/, mirroring source modules. For config/authoring changes, add a scenario folder under tests/fixtures/config_scenarios/.
  3. For bug-adjacent work, add a failing regression test first.
  4. Run the full CI-equivalent gate:
    python -m pytest --cache-clear --cov=./src/azure_functions_agents --cov-report=xml --cov-branch tests

Phase 5 — Docs (gate: DoD met)

  1. Update documentation made inaccurate by the current slice. docs/architecture.md (module map / pipeline) is the design source of truth and must stay accurate.
  2. If schema.py changed:
    • Run python eng/scripts/generate_config_reference.py to regenerate the reference
    • Use the update-schema-docs skill to add examples to docs/front-matter-spec.md and review docs/architecture.md for consistency
    • Review the skill's PR checklist and address architectural concerns
  3. Update relevant docs under docs/ (commonly front-matter-spec.md, triggers.md, or other files as needed) if the authoring surface changed (for non-schema changes, or to refine schema-generated examples).
  4. Update README.md if user-facing behavior changed.
  5. Update the FRD index in docs/frds/README.md.
  6. Verify the AGENTS.md §8 Definition of Done, then open the PR.
  7. After each PR merges, remove its worktree (git worktree remove <path>). Set the FRD status: Implemented only after the final planned PR merges.

Guardrails

  • Never skip a gate. If a gate fails, fix before advancing.
  • Keep the Decisions log focused on the feature contract; it is not a delivery diary.
  • Never cite Decisions-log numbers in FRD prose or cross-references; describe the decision instead, because numbers shift on merges/renumbering.
  • Keep implementation diffs surgical and scoped to the FRD.
  • This skill is repo dev-tooling under .github/skills/; it is unrelated to the runtime's user-authored agent skills discovered from an app's skills/ folder.

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.