agentleFS
MicrosoftKnown publishermicrosoft/devsquad-copilot/.github/plugins/devsquad/skills/work-item-creation/SKILL.md

work-item-creation

Skill50 starsChanged 16 days agoMITView on GitHub

Rules and checklist for creating work items on GitHub Issues or Azure DevOps. Use when you need to create issues, user stories, tasks, epics, or features on the board. Do not use for platform configuration (use board-config), managing workflow of existing tasks (use work-item-workflow), or for comments on work items.

We split this skill into the rules it gives an agent

16 rules. About 0 are common, 9 are distinctive, and 7 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.

  • 7

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before creating ANY work item, verify:

    line 8
  2. Very specific:

    Platform: Read .memory/board-config.md to identify GitHub or Azure DevOps

    line 10
  3. Distinctive:

    Duplicates: Check if a similar work item already exists on the board

    line 11
  4. Distinctive:

    Required tags/labels: all present (see section below)

    line 12
  5. Distinctive:

    Title in correct format: follow the Title section and check the outgoing title contains no invented sequential task or story identifier

    line 13
  6. Very specific:

    All generated work items must include the tag/label ai-model:<model-name>.

    line 38
  7. Distinctive:

    If not found, check config:

    line 46
  8. Distinctive:

    If unable to identify, ask the user

    line 50
  9. Distinctive:

    Before applying labels to a work item, check if they exist in the repository:

    line 57
  10. Very specific:

    If any required label does not exist, create it automatically via github/label_write:

    line 63
  11. Very specific:

    Keep meaningful domain numbers and versions, such as [pix] Support Pix API v2.

    line 169
  12. Distinctive:

    NEVER create duplicate work items: If a similar item already exists, skip it and record it in the report.

    line 185
  13. Very specific:

    Add copilot-candidate to tasks that meet ALL criteria:

    line 206
  14. Distinctive:

    No pending architectural decisions

    line 210
  15. Very specific:

    Add needs-human to tasks that meet ANY criteria:

    line 214
  16. Very specific:

    Read .memory/board-config.md to identify the platform, then read only the corresponding reference:

    line 225

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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

Required Checklist

Before creating ANY work item, verify:

  1. Platform: Read .memory/board-config.md to identify GitHub or Azure DevOps
  2. Duplicates: Check if a similar work item already exists on the board
  3. Required tags/labels: all present (see section below)
  4. Title in correct format: follow the Title section and check the outgoing title contains no invented sequential task or story identifier
  5. Body filled in: per the platform format (see GitHub and Azure DevOps sections)
  6. Hierarchy: parent linked correctly
  7. Durable descriptions: body describes behavior using domain language, not implementation details (see Durability Rules below)
  8. Content style: title and body follow the Content Style section below

Content Style

Work items live on the board, get rendered in GitHub/ADO UIs, and are read by humans and agents long after creation. Apply these rules to every title, description, comment, and acceptance criterion.

RuleWhyExample to avoid
No emojis or decorative Unicode (e.g., →, •, ★, ✓, 🎯, ✅, ⚠️, ❌)Renders inconsistently across boards, screen readers, and exports🎯 Goal: ship X
No em-dash (—), en-dash (–), or hyphen as separator between conceptsAmbiguous in titles, breaks search, often AI-generated tell. Rewrite the sentence.Auth flow — refactor → Refactor auth flow
Never use #<number> in free textAzure DevOps auto-converts to a work item link, breaking references and creating wrong cross-links. Use "first", "third option", or rephrase.#1 priority → top priority
No contrastive constructions ("not just X, it's Y", "more than just", "goes beyond")Generic AI framing that adds words without informationThis is not just a fix, it's a rethink → Replace the retry logic
Descriptive names instead of invented identifiersKeeps scenarios, assumptions, and risks readable without another numbering scheme. Preserve identifiers required by the source artifact or an established project convention, existing references, and native board IDs.RISK-001 added to a risk that can be described by name
Direct active voice, no rhetorical questionsWork items are commands or descriptions, not essaysWhat if we cached responses? We should cache them. → Cache responses for 60 seconds
No promotional or exaggerated languageWork items track work, not pitch itseamless, revolutionary, world-class
Keep titles short and concrete; bodies focused on observable behaviorTitles surface in lists; bodies are read once during planning and again during reviewSee Durability Rules for body content rules

These rules apply to content sent to GitHub Issues, Azure DevOps work items, board comments, PR descriptions written from a work item, and triage artifacts. They do not replace the markdown rules in the documentation-style skill, which still govern files under docs/**/*.md.

AI Model Traceability

All generated work items must include the tag/label ai-model:<model-name>.

How to identify the model in use

  1. Try reading Copilot CLI logs:
    grep -h "Using.*model" ~/.copilot/logs/*.log 2>/dev/null | tail -1
  2. If not found, check config:
    cat ~/.copilot/config.json 2>/dev/null | grep -i model
  3. If unable to identify, ask the user
  4. Last resort: use ai-model:unknown

Required Tags/Labels (every work item)

Auto-creation of Labels (GitHub)

Before applying labels to a work item, check if they exist in the repository:

github/list_label(owner, repo)

If any required label does not exist, create it automatically via github/label_write:

LabelColor (hex)
copilot-generated1d76db
ai-model:*5319e7
type:user-story0e8a16
type:task0e8a16
type:adr0e8a16
type:tech-debtd93f0b
feature:*c5def5
priority:p1b60205
priority:p2fbca04
priority:p30e8a16
phase:*bfdadc
severity:highb60205
severity:mediumfbca04
severity:low0e8a16
epic3e4b9e
featurec5def5
paralleld4c5f9
blockedb60205
copilot-candidate1d76db
needs-humane4e669
scope:cross-cuttingbfdadc
scope:feature-scopedbfdadc

Cache the list of existing labels to avoid repeated calls during the same creation session.

Tag/LabelRequiredDescription
copilot-generatedAlwaysIdentifies item created by AI
ai-model:<name>AlwaysModel used

Tags/Labels by Type

User Stories

Tag/LabelRequired
type:user-story (GitHub)Yes
feature:<name>Yes
priority:<p1|p2|p3>Yes

Tasks

Tag/LabelRequired
type:task (GitHub)Yes
feature:<name>Yes
phase:<phase>Yes

Epics

Tag/LabelRequired
epic (GitHub)Yes

Features

Tag/LabelRequired
feature (GitHub)Yes
priority:<p1|p2|p3>Yes

Missing ADRs

Tag/LabelRequired
type:adrYes
scope:cross-cutting or scope:feature-scopedYes
feature:<name>Yes (if feature-scoped)

Tech Debt

Tag/LabelRequired
type:tech-debtYes
severity:<high|medium|low>Yes
feature:<name>No (optional)

Optional Labels

LabelUsage
parallelParallelizable task
blockedTask with unresolved dependencies
copilot-candidateTask delegable for autonomous agent execution
needs-humanTask requiring human judgment, access, or approval

Title

  • User Stories and Tasks: [<feature>] <description>
  • Epics: [Epic] <name>
  • Features: [Feature] <name>
  • ADRs: [ADR] <domain> or [<feature>][ADR] <domain>
  • Tech Debt: [Tech Debt] <description>

For GitHub and Azure DevOps, do not add sequential task or story identifiers such as T-1, T001, or US-01 to generated titles, including after the feature prefix. Do not copy local draft numbering into the title. The board supplies its own identity, and hierarchy and dependency links preserve relationships.

AvoidUse
T-1 [pix] Prevent duplicate payments[pix] Prevent duplicate payments
[pix] T002 Validate payment limits[pix] Validate payment limits
[pix] US-01 Send an immediate payment[pix] Send an immediate payment

Keep meaningful domain numbers and versions, such as [pix] Support Pix API v2. Apply the title rule to newly generated work items without renaming existing board items as a cleanup.

Hierarchy

  • Tasks are children of User Stories
  • User Stories are children of Features
  • Features are children of Epics
  • Dependencies between tasks documented in the body or via links

Creation Order

  1. User Stories first
  2. Tasks second
  3. Parent-child links third
  4. Dependencies between tasks fourth

NEVER create duplicate work items. If a similar item already exists, skip it and record it in the report.

Durability Rules

Work items live longer than the code they reference. File paths, line numbers, and commit SHAs rot as the codebase evolves. Write descriptions that remain useful after major refactors.

DoDo not
Describe behavior and symptoms in domain languageReference file paths or line numbers
"When a user submits a form with an expired session, the system silently drops the submission""In src/handlers/form.ts:247, the catch block swallows the SessionExpiredError"
Reference domain concepts and user-visible outcomesReference internal module names, class names, or variable names
Link implementation context in PRs and commitsEmbed implementation details in the work item body

Implementation-specific context (file paths, code snippets, stack traces) belongs in linked PRs, commits, and comments, not in the work item description.

Autonomy Classification

Classify each task to indicate whether it can be completed by an AI agent autonomously or requires human judgment.

Agent-autonomous (copilot-candidate)

Add copilot-candidate to tasks that meet ALL criteria:

  • Low impact (no schema change, public API, or integration)
  • Well-defined scope (specific files, clear behavior)
  • Established pattern (follows existing code or ADR)
  • No pending architectural decisions

Human-required (needs-human)

Add needs-human to tasks that meet ANY criteria:

  • Requires architectural or design judgment not covered by an ADR
  • Involves external system access, manual testing, or environment-specific verification
  • Requires stakeholder input or approval (UX decisions, business rules, compliance)
  • Touches security-sensitive code without an established pattern
  • Cross-team coordination needed

Format by Platform

Read .memory/board-config.md to identify the platform, then read only the corresponding reference:

PlatformReference
GitHub IssuesRead references/github-format.md
Azure DevOpsRead references/azdo-format.md

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.