agentleFS
aiagentkit-labsaiagentkit-labs/agentic-dev-kit/skills/implement/SKILL.md

implement

Skill0 starsChanged 26 days agoMITView on GitHub

Turn a task from Azure DevOps, Jira, another connected tracker, pasted text, or a local file into a tested and reviewed pull request. Use when the user asks to implement, build, or fix a task, feature, or bug.

  • Commits and pushes

191 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use setup-ts-deep-modules, ask-matt and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • liufeng1976Skill

    setup-ts-deep-modules

    Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.

    Also in 43 projects that use this

  • GoogleSkill

    ask-matt

    Ask which skill or flow fits your situation. A router over the skills in this repo.

    Also in 91 projects that use this

  • RoentekSkill

    loop-me

    Grill me about specs for the workflows I want to build, within this workspace.

    Also in 50 projects that use this

  • AWSSkill

    to-questionnaire

    Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

    Also in 88 projects that use this

  • ryotaroh180105Skill

    claude-handoff

    Hand the current conversation off to a fresh background agent that picks up the work immediately.

    Also in 42 projects that use this

  • GoogleSkill

    to-spec

    Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.

    Also in 168 projects that use this

  • +3 more from google

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 8 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 171 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Pasted request: use the supplied text as the initial task.

    line 15
  2. Distinctive:

    Local file: read the path the user supplied.

    line 16
  3. Distinctive:

    No request supplied: ask for a tracker URL/ID, pasted text, or file path.

    line 18
  4. Distinctive:

    Every gate is an interview round:

    line 47
  5. Distinctive:

    Ask the whole frontier of decisions whose prerequisites are settled, numbered.

    line 49
  6. Distinctive:

    Use the question tool when the client provides one.

    line 51
  7. Distinctive:

    Only use capabilities actually exposed by the integration.

    line 85
  8. Very specific:

    If tasks are split, create child records only through an available Create child capability with approval.

    line 111
  9. Very specific:

    Read AGENTS.md, CONTRIBUTING.md, .github/copilot-instructions.md, branch policies, and recent branch/commit conventions.

    line 117
  10. Distinctive:

    Run PR Reviewer, Security Reviewer, and Privacy Reviewer in parallel with the task spec, acceptance checklist/evidence, base ref, full …

    line 139

“Common” is measured: kept by at least 6 in 10 of the 171 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

Turn a task request into a pull request ready for review. The source can be a tracker issue, text in chat, or a local text/Markdown file. The task's agreed acceptance criteria are the completion contract: every criterion must map to evidence (a passing test or observed behavior).

The implementation, test-first, review, and PR workflow is shared across all input sources. Tracker-specific operations are optional capabilities, not prerequisites. Do not claim a provider is connected unless its MCP server, CLI, or other available integration can actually read or write it.

Source and task record

Resolve the source in this order:

  1. URL or provider-qualified ID: identify the provider from the URL/key, then use its available MCP tools first, otherwise its installed CLI/API integration. If the provider is unclear, ask. Never ask the user to paste credentials. If ADO is selected and the MCP path is unavailable, run check.sh pre ado-implement before using the az fallback so its sign-in/tool requirements are checked.
  2. Pasted request: use the supplied text as the initial task; do not search a tracker for a matching item unless the user asks.
  3. Local file: read the path the user supplied. Do not edit the original task file as part of loading it.
  4. GitHub Spec Kit feature: if the user supplies a Spec Kit feature directory or asks to implement its active feature, confirm the exact feature path, then read its specification, plan, task list, and relevant project constitution as task context. Do not guess which feature is active or scan unrelated feature directories. Keep these artifacts read-only unless the user explicitly asks to update them.
  5. No request supplied: ask for a tracker URL/ID, pasted text, or file path. Do not assume Azure DevOps.

If a tracker is named but no usable integration is available, say so and offer pasted or exported text as a fallback. A generic MCP connection counts only when its exposed tools can perform the needed operation. This plugin configures Atlassian's hosted Rovo MCP server, but Jira access still requires the user to complete the client's Atlassian OAuth flow, select/authorize their site if prompted, and have permission to the issue. Do not imply a Jira URL alone grants access.

Normalize every source into the task record described in TASK-RECORD.md: title, description, acceptance criteria, optional repro/context, source metadata, and available source capabilities. For Spec Kit input, derive proposed acceptance criteria from the selected specification and use the plan/task list as implementation context; checkbox state alone is not completion evidence. Preserve the source URL, key, or input file path when available. Do not invent missing acceptance criteria or provider records.

After the user accepts the task draft, offer an optional, durable Markdown task record at work-items/<slug>.md in the target repository. Show the exact path and content and get the user's yes before writing it. Never overwrite an existing file; choose another slug or ask. For tracker-backed tasks, saving a local copy is optional. For pasted/file tasks, offer it as the traceable task artifact. Avoid copying secrets or sensitive personal data into the repository.

External writes

Each write to a shared tracker, git push, or PR create/update needs the user's yes at the moment of the write. A tracker update is offered only if the selected source adapter exposes that operation. A local task-record write is also shown at its gate before writing. Credentials never pass through chat. Write temporary payloads and PR bodies under .git/agentic-dev-kit/tmp/.

Controls

The defaults and repo overrides are the rules for this run (CONTROLS.md). After preflight, fetch origin and read the merged practices, testing, and lint controls with controls.sh <topic> --ref origin/<default branch>; read them again from origin/<base> if step 5 picks another base. List turned-off controls, with reasons, in the first round. At every gate, check the task against the practices controls (PRACTICES.md). A WI-* control governs task quality regardless of whether the task came from a tracker, text, or file. When one is missed, name its ID, explain briefly, and recommend a fix in that round.

Preflight

From the target repo root, run check.sh pre implement (Windows: check.ps1 -Phase pre -Skill implement). Show its table. A WARN is mentioned and the run continues.

A FAIL pauses the run. Ask one round with a question per failing check:

  • Fix it: show the fix and rerun. For missing tools, point to install.sh or install.ps1 for the user to run in their terminal; installs and sign-ins may need approval or credentials.
  • Skip it: rerun with --skip <ids> (Windows: -SkipChecks <ids>), where IDs are git, az, gh, node, or dotnet. Explain the cost: for example, without gh a GitHub PR cannot be created. Before a skipped tool is needed, check it again and pause if it still fails.

Done when the table has no FAIL.

Rounds

Every gate is an interview round:

  • Ask the whole frontier of decisions whose prerequisites are settled, numbered. A dependent question waits for the next round.
  • Recommend a clear answer; phrase it so "yes" accepts it.
  • Use the question tool when the client provides one; otherwise use the format below. Use the 📘 line in teach mode only, and include Why, Source, and Check on every teach-mode question.
  • Grill mode asks for decisions. Teach mode also explains why, cites a relevant source, and asks a recall question. The user can switch modes at any gate.

Teach mode reuses learning materials; it does not create lessons

When this workflow is in Teach mode, first look for a relevant existing track under learning/<topic-slug>/ in the target repository. Use its MISSION.md to understand the learner's goal; consult its RESOURCES.md, GLOSSARY.md, reference/, relevant lessons/, and learning-records/ to tailor explanations and recall questions. Read only material relevant to the current task. The task specification, repository source, and current controls remain authoritative if learning materials conflict with them.

Teach mode here is conversational coaching during implementation. Do not create or modify learning/, lessons, references, learning records, glossary, mission, resources, notes, or assets during this workflow. If no relevant track exists, teach from the task, repository, and trusted sources without scaffolding one. Mention /teach setup <topic> only as an optional separate follow-up; create learning artifacts only when the user explicitly invokes /teach to set up a track or create a lesson.

**Step N/10 · <step name> · Round k**

❓ **Q1 - <title>**: <question and options>

➡️ <recommended answer>

📘 **Why:** <why> · **Source:** <link> · **Check:** <recall question>

0. Pick the interview mode

Unless the user's request already names it, ask once whether they want Grill (decisions only) or Teach (decisions plus why, sources, and recall). Do this before resolving the task source. The user can switch modes at any later gate.

1. Choose the source and connection

Identify source mode: tracker, pasted text, or local file. For a tracker, discover available tools and authenticate through the host's normal sign-in. The provider adapter should report its capabilities, for example:

CapabilityMeaning
ReadFetch the issue and related context
UpdateWrite an accepted description, criteria, state, or comment
Link PRAdd the resulting PR to the issue
Create childPersist split tasks in the tracker

Only use capabilities actually exposed by the integration. A provider may be read-only. Do not block implementation because optional update/link capabilities are absent.

Detecting a tracker connection

At run time, inspect the tools exposed to the current chat/session. Use tool names and descriptions to identify provider operations; do not assume a connection from the issue URL, ID shape, or a server name alone. Map only operations that are actually exposed to the capability table above. Before treating a tracker as connected, use its read-only get/fetch operation on the user-supplied issue and confirm it returns that issue. If the client does not expose a relevant tool, or the read fails because the server is disabled, unauthenticated, or lacks permission, treat the tracker as unavailable and offer pasted/exported task text. Never probe with a write.

VS Code can expose MCP servers configured by the user, workspace, or installed plugins to the active chat when their tools are enabled. This plugin bundles the Azure DevOps MCP server and Atlassian's hosted Rovo MCP server in mcp.json. Installing the plugin configures the server but does not sign the user in or grant Jira site permissions. A user's separately configured Jira MCP server can also be used when it exposes the needed tools to the session.

Gate: selected source and connection, or confirmation that the pasted/file text is the source. Tell the user which tracker operations are unavailable and what fallback applies.

2. Select or load the task

For a tracker, use the supplied URL/ID. If the user asks to select a task, list the matching open items and let them choose. For a file, read the supplied file. For pasted text, use it directly.

Gate: the exact task to implement. Several tasks run one at a time, one branch and PR each.

3. Assess and normalize

For tracker issues, fetch relations and relevant fields the provider supports. For text/file input, extract the stated problem, expected result, constraints, and repro steps without adding facts. Score the request against WI-* controls. Draft a normalized task record with numbered, independently testable Given/When/Then acceptance criteria. Mark any recommended defaults as assumptions.

Gate: show the source summary, scorecard, normalized draft, assumptions, and whether to save work-items/<slug>.md. If saving, show the full content and get approval before writing. After that, ask separately whether to write accepted changes back to a tracker, only when Update is available.

4. Settle scope

Turn the accepted criteria into a numbered implementation checklist. Pair every criterion with the check that proves it and the test layer under the testing controls (TESTING.md). Run further rounds for open decisions or contradictions. Estimate diff size; if it breaks PR-01, propose smaller slices.

If tasks are split, create child records only through an available Create child capability with approval. Otherwise offer separate Markdown task records. Do not silently create tracker items.

Gate: the checklist, test evidence per criterion, and any split. Each criterion must have a concrete check.

5. Branch

  1. Read AGENTS.md, CONTRIBUTING.md, .github/copilot-instructions.md, branch policies, and recent branch/commit conventions.
  2. Identify the remote default and any long-lived base branches.
  3. Gate: base branch and new branch name.
  4. With uncommitted work, ask whether to stash, commit, or stop; preserve it.
  5. Fetch the base and branch from its latest remote commit.

Done when the new branch is checked out at the fetched base.

6. Implement test-first

Detect the stack and current test tooling. Gate: propose the test plan, with the test layer, seam, and test name for each criterion; list any new framework/package for approval. Then work red → green in small vertical slices. Run tests, build, and lint for the touched files. For .NET and TypeScript/JavaScript, use the lint skill before the commit gate.

Done when every criterion has passing evidence.

7. Commit

Stage only files for this task. Draft an imperative commit subject and a body explaining why. If a source key exists and the host supports a native commit link syntax, include it. Otherwise include the stable task slug or no fabricated tracker key.

Gate: staged files and commit message.

8. Review

Run PR Reviewer, Security Reviewer, and Privacy Reviewer in parallel with the task spec, acceptance checklist/evidence, base ref, full diff, relevant controls, and scanner output. Read scanners only after the user approves their exact commands. Reviewers are read-only.

Merge findings, verify every cited line, fix blockers and should-fixes, rerun tests, and rerun reviewers that found blockers.

Gate: findings, fixes, nits to accept/skip, and any escalate findings. Done when ready or when the user agrees to carry an escalation.

9. Open the pull request

Detect the PR host from the target repo's remote. Draft the PR with the task summary, accepted criteria, test evidence, reviewer findings, and traceability:

  • Tracker task: link the issue using the provider/host's supported syntax, if available. If the target repo has a branch policy that requires a specific tracker item (for example, Azure Repos linked-work-item policy), explain that the PR cannot satisfy that policy with a local record alone; offer to create/link the required tracker item only if the adapter supports it.
  • Saved task record: link its path in the PR and include the criteria/evidence.
  • Pasted request not saved: include a concise accepted task summary and criteria in the PR body. Do not claim it links an external issue.

Gate: title, target, draft status, reviewers, merge strategy, and complete body. On the user's yes, push and create the PR using the host's supported tools. If the host or write integration is unavailable, provide the exact manual steps instead of claiming success.

10. Hand back

Report source type and reference (or "pasted request" / file path), branch, commits, PR URL, each criterion with evidence, and deferred work. If the source has Update or Link PR, offer those writes and perform them only on the user's yes. If a task record was saved, offer to update its status, criterion evidence, and PR link; show the diff and get approval before writing. Report its path. Run check.sh post implement (Windows: check.ps1 -Phase post -Skill implement) and confirm the remote PR state.

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.