Official agent skill

Implementation Strategy

by openai in openai/openai-agents-python

Choose supported scope and compatibility boundaries for SDK behavior changes; revisit when feedback changes the design.

OfficialMITAuto-check passedDevelopment

Install Implementation Strategy

skills CLI
$ npx skills add openai/openai-agents-python --skill implementation-strategy -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openai/openai-agents-python implementation-strategy --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openai/openai-agents-python.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/implementation-strategy .claude/skills/implementation-strategy && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
implementation-strategy
GitHub stars
30k
Token cost
~3.7k tokens
SKILL.md length
1,878 words
Files
2
Skills in repo
14
Repo updated
First seen
Licence
MIT

At a glance

Choose supported scope and compatibility boundaries for SDK behavior changes; revisit when feedback changes the design.

  • Works in 7 steps: Identify the surface you are changing or… → When released compatibility is relevant,… → Record the implementation scope contract… → …
  • Development work in your project
  • SKILL.md covers Workflow, Implementation scope contract, Review-feedback gate and Core decision rules, plus 5 more sections
  • Calls git

What it does

Implementation Strategy is an agent skill from openai/openai-agents-python, published by the product's own GitHub organization. Choose supported scope and compatibility boundaries for SDK behavior changes; revisit when feedback changes the design.

Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Development. It works with OpenAI. The repository describes itself as: A lightweight, powerful framework for multi-agent workflows. The licence is MIT.

When your agent uses it

  • Development work in your project

Example prompts

  • “/implementation-strategy”

Requirements

  • Python 3

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Identify the surface you are changing or reviewing: released public API, unreleased branch-local API, internal helper, persisted schema…
  2. When released compatibility is relevant, determine the latest release tag from origin first, falling back to local tags only when remote…
  3. Record the implementation scope contract below before coding.
  4. Identify the nearest existing implementation pipeline and the functions, types, or modules that are the source of truth for each affected…
  5. Choose the smallest coherent change using the core decision rules. Add compatibility machinery only for a required supported boundary.
  6. Revisit the review gate when feedback changes supported behavior, compatibility, ownership, protocol paths, implementation shape, or test…
  7. Before handoff, run the effectiveness check. If any answer is no, revise the design.

What it can do on your machine

Read from SKILL.md and the folder at commit 26345c1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Implementation Strategy loads about 3.7k tokens when it runs. Until then it costs about 36 tokens; SKILL.md has 1,878 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~36
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openai/openai-agents-python at commit 26345c1, republished under its MIT licence (© openai). 1,878 words, ~3,685 tokens.

Download SKILL.mdSave it as .claude/skills/implementation-strategy/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
implementation-strategy
description
Choose supported scope and compatibility boundaries for SDK behavior changes; revisit when feedback changes the design.

Implementation Strategy

Workflow

  1. Identify the surface you are changing or reviewing: released public API, unreleased branch-local API, internal helper, persisted schema, wire protocol, CLI/config/env surface, or docs/examples only.
  2. When released compatibility is relevant, determine the latest release tag from origin first, falling back to local tags only when remote tags are unavailable. Reuse an already verified baseline within the task unless new release evidence or changed scope makes it stale:
    bash
    BASE_TAG="$(.agents/skills/final-release-review/scripts/find_latest_release_tag.sh origin 'v*' 2>/dev/null || git tag -l 'v*' --sort=-v:refname | head -n1)"
    echo "$BASE_TAG"
    Report a local-tag fallback as potentially stale.
  3. Record the implementation scope contract below before coding.
  4. Identify the nearest existing implementation pipeline and the functions, types, or modules that are the source of truth for each affected concern. Prefer adapting the required input into that pipeline over creating parallel schema, metadata, validation, naming, or execution machinery.
  5. Choose the smallest coherent change using the core decision rules. Add compatibility machinery only for a required supported boundary.
  6. Revisit the review gate when feedback changes supported behavior, compatibility, ownership, protocol paths, implementation shape, or test permutations, or triggers a complexity reset. Otherwise retain the scope contract and proceed with the focused fix.
  7. Before handoff, run the effectiveness check. If any answer is no, revise the design.

Implementation scope contract

Record these four items in the existing plan or working notes, and update them before widening or narrowing the implementation. A local fix can use one concise paragraph; mark unaffected dimensions as not applicable rather than inventing unsupported cases or creating another document:

  1. Required behavior: The smallest user-visible scenario that must work.
  2. Compatibility requirements: Supported released behavior or a durable boundary that must remain usable.
  3. Intentionally unsupported cases: Nearby inputs or shapes to reject, including when and how rejection occurs.
  4. Supported alternative: An existing wrapper, override, adapter, configuration, or lower-level API; state none when absent.

If the intentionally unsupported cases cannot be stated clearly, do not start by adding a general resolver. First define a narrower behavior contract. If no adequate supported alternative exists, add one only when the task requires it; do not invent one speculatively.

A released-version reproducer proves reachability, not support. Treat the exact shape as a compatibility requirement only when intentionally covered by public documentation, examples, tests, or typing; required by a durable boundary; or backed by concrete user reliance or maintainer intent. Otherwise record the risk and prefer early rejection with an existing supported alternative.

Review-feedback gate

Use this checkpoint only when feedback changes the scope contract or implementation shape. Reuse unchanged evidence instead of reconstructing it:

text
Review checkpoint:
- Root cause and required behavior:
- Compatibility evidence and unsupported cases:
- Source of truth:
- Behavior-space change: narrows / unchanged / widens
- Action: focused patch / complexity reset / reject as unsupported

Classify each finding as a required-behavior defect, supported compatibility requirement, another combination of the same implementation dimensions, or unrelated issue. Widening the behavior space requires new contract evidence.

If a second related finding would add another condition, protocol hop, compatibility case, or test permutation to the same abstraction, stop patching and run the complexity reset. Continue only when concrete evidence puts the exact case in the required or supported contract.

After a reset spec is frozen, classify each later finding as a violation of that spec, an evidence-backed reason to revise it, an intentionally unsupported case, or an unrelated issue. Do not resume incremental patching merely because the new finding is locally fixable.

Example: if successive findings require traversing a direct wrapper, partial, nested wrapper, descriptor, and bound method, do not add another hop. Unless arbitrary wrapper graphs are supported, retain the required plain callable behavior and reject ambiguous wrappers before invocation.

Core decision rules

  • Preserve released public APIs, documented behavior, and supported durable boundaries, or provide an explicit migration path.
  • Rewrite branch-local interfaces, internal helpers, same-branch tests, and post-release additions on main directly unless they already define a supported durable boundary.
  • Unreleased persisted schema versions may be renumbered or squashed when intermediate snapshots are intentionally unsupported; update the support set and tests together.
  • Do not equate a broad Python or third-party protocol with support for every representable shape.
  • Prefer the nearest existing pipeline and one source of truth for schema, documentation, validation, identity, and invocation.
  • Treat an interface as everything a caller must know to use the behavior correctly, including ordering, errors, lifecycle, configuration, and performance constraints when relevant; do not judge its size from the signature alone.
  • Apply the deletion test before retaining a new abstraction: keep it when removing it would distribute required complexity across callers, but remove it when the complexity itself would disappear.
  • Add a replaceable boundary only for demonstrated variation, ownership, or testability. One hypothetical adapter or a test-only indirection is not enough when the existing pipeline already provides a stable boundary.
  • Add abstractions, state, classifications, branches, configuration, dependencies, or parallel paths only for a stated requirement, supported contract, or verified risk.
  • Prefer deletion or direct replacement for unreleased code. Treat branch-local implementation and tests as disposable.
  • Prefer an actionable construction- or validation-time error plus an existing alternative over partial protocol emulation.
  • Keep unrelated refactors and pre-existing failures out of the patch.
  • Test the required behavior, the nearest supported path, and one representative case per unsupported category rather than every constructible permutation.
  • Call out changes to supported released behavior or durable formats in the plan and handoff.

Complexity reset

Stop extending the current design when:

  • Related findings keep combining the same dimensions, such as wrappers, descriptors, generics, binding, context injection, sync/async classification, or provider variants.
  • The patch interprets a host-language or third-party protocol, or separately infers representations that can drift.
  • A narrow requirement needs recursive resolution, cached modes, new state, or unrelated subsystem changes.
  • Tests enumerate mechanics or the full diff keeps growing while the required scenario remains small.

When a trigger fires:

  1. Stop editing and freeze the current revision for analysis instead of addressing comments one by one.
  2. Group findings by root cause and re-read the original requirement, scope contract, and supported release or durable boundaries.
  3. Write a candidate finding-derived reset spec using those inputs. Do not treat accumulated review explanations, branch-local machinery, or same-branch tests as requirements.
  4. Audit the candidate spec against every affected entry point and the nearest existing supported paths. Revise it as needed, then freeze it before resuming edits.
  5. Compare the complete diff with the intended merge base or latest release tag, and map each abstraction, branch, and test to the frozen spec as retain, replace, or delete.
  6. Delete machinery with no mapping, narrow the contract, and reject unsupported cases before side effects.
  7. Rebuild tests around required behavior, supported compatibility, cross-entry-point consistency, and representative unsupported categories.
  8. Evaluate later findings against the frozen spec. Stop and record new contract evidence before changing the spec or widening the behavior space.

Use this compact reset spec in the plan or working notes:

text
Finding-derived reset spec:
- Original required outcome:
- Supported release or durable boundaries:
- Grouped findings and common root cause:
- Invariants across affected entry points:
- Allowed states and behavior:
- Rejected states, failure timing, and side-effect boundary:
- Trusted and untrusted boundaries:
- Single sources of truth:
- Persistence, resume, cleanup, or other lifecycle semantics:
- Non-goals and supported alternatives:
- Representative test categories:
- Diff reset: retain / replace / delete:

The candidate spec is a falsifiable design hypothesis, not a record of the current implementation. The audit may correct it before it is frozen. Once frozen, require explicit evidence to revise it and re-run the complete diff mapping after any revision.

Do not wait for the user or reviewer to request this reset when the signals are already present.

Show full SKILL.md (713 more words)Show less

Effectiveness check

Before declaring the design complete, answer all of these with concrete evidence:

  • Can the required behavior be described without naming internal helper types or reflection mechanics?
  • Does the implementation reuse the nearest existing pipeline rather than maintain a parallel interpretation?
  • Does every new abstraction and branch map to the scope contract or a verified risk?
  • Would deleting each new abstraction merely push required complexity into multiple callers, and does each new boundary correspond to demonstrated variation, ownership, or testability?
  • Are unsupported neighboring cases rejected before side effects with an existing alternative identified?
  • Do tests exercise the highest stable caller boundary that reproduces the required behavior, with expected values independent of the implementation logic?
  • Do the complete diff and tests cover the contract without making every constructible permutation supported?
  • Does the latest review revision shrink or preserve the behavior space rather than widen it without evidence?
  • When a complexity reset occurred, does every retained abstraction, branch, and test map to the frozen reset spec, with later findings classified against it?

SDK-specific decision rules

  • Treat released RunState, session persistence, and other explicitly durable serialized state as compatibility-sensitive across commits, processes, and machines.
  • When unsupported OpenAI API or provider-adapter behavior already has a released default path, avoid turning it into a default hard error unless the latest release boundary justifies that break. Prefer an opt-in strict mode such as strict_feature_validation=True, while keeping the default path compatible through warning, ignoring unsupported data, or a clearly non-empty placeholder.
  • For OpenAI API feature gaps, evaluate streaming and non-streaming paths together. Custom tool calls, multi-choice Chat Completions chunks, non-text tool outputs, and similar provider payload differences must not be strict in one path and permissive or malformed in the other.
  • When a change creates new public SDK behavior, do not expose it only through hard-coded module globals. Prefer an explicit public configuration object or parameter, preserve the existing default behavior when compatibility-sensitive, and make opt-in SDK defaults explicit.
  • For SDK-owned public configuration, accept existing typed objects and equivalent dictionaries at the public input boundary while preserving the internal typed representation. Respect the owning model's validation and extra-field policy instead of recreating arbitrary third-party schema semantics.
  • Keep model-specific settings inside the existing model_settings parameter. Preserve released constructor arguments, typed-object behavior, and provider request payloads when adding dictionary support.
  • Append new optional fields or constructor parameters to public dataclasses and constructors. Do not insert them before existing public fields unless you also provide a compatibility layer and regression coverage for the old positional call shape.
  • Treat threshold and quota values as part of the API design when they affect runtime behavior. Distinguish OpenAI platform quota-derived values from defensive SDK defaults; if the value is not anchored in a documented platform limit, avoid making it an unconditional default-on behavior.
  • Define None semantics deliberately for public configuration. For example, use separate meanings for "feature disabled or no SDK limit", "use SDK default limits", and "disable only this specific limit" rather than relying on implicit truthiness checks.

When to stop and confirm

Confirm a consequential choice below only when it is not already resolved by the user's request or an approved scope contract. Ordinary remediation within that contract continues through review and verification.

  • The change would alter supported behavior shipped in the latest release tag, or concrete evidence shows material reliance on behavior that the release incidentally accepted.
  • The change would modify durable external data, protocol formats, or serialized state.
  • The correct solution would materially expand beyond the requested outcome or require unrelated architectural work.
  • A complexity reset trigger fires and the narrower replacement would change an already released supported contract rather than branch-local code.
  • The user explicitly asked for backward compatibility, deprecation, or migration support.

Output expectations

When this skill materially affects the implementation approach, state the decision briefly in your reasoning or handoff, for example:

  • Compatibility boundary: latest release tag v0.x.y; branch-local interface rewrite, no shim needed.
  • Implementation scope contract: support X; preserve Y; reject Z before side effects; use supported alternative W, or none exists.
  • Complexity reset: repeated edge-case combinations show the approach is too broad; redesign from the original requirement instead of adding another branch.
  • Finding-derived reset spec: findings F1-F3 expose invariant X across entry points A-C; freeze that contract, delete unmapped machinery, and review later findings against it.

© openai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/implementation-strategy of openai/openai-agents-python.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 26345c1

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in openai/openai-agents-python, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Implementation Strategy next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Implementation Strategy compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Implementation Strategy this skillopenai/openai-agents-python30k—~3.7kAutomated safety check: PassMIT
PR Design DocOpenHands/OpenHands90k—~2.4kAutomated safety check: PassMIT
Get API Docs with chubandrewyng/context-hub14k2 repos~775Automated safety check: PassMIT
Open Code Review CLIalibaba/open-code-review44k—~3.1kAutomated safety check: PassApache-2.0
Codexskills-directory/skill-codex1.5k3 repos~1.8kAutomated safety check: PassMIT
Changeset Validationopenai/openai-agents-js3.9k—~607Automated safety check: PassMIT

Similar skills

  • PR Design Doc

    OpenHands/OpenHands

    For a non-trivial pull request, write a self-contained HTML design doc under the temporary .pr/ directory and link a visibility-appropriate preview in the PR description, so maintainers grasp the…

    90k GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check passed
  • Get API Docs with chub

    andrewyng/context-hub

    Fetches current documentation for third-party APIs and SDKs with the chub CLI before the agent writes code against them, instead of relying on remembered API shapes.

    14k GitHub starsUsed in 2 repos~775 tokens
    DevelopmentAuto-check passed
  • Open Code Review CLI

    alibaba/open-code-review

    Runs the ocr command-line tool to review Git changes, a commit or a branch comparison with an AI model, returning line-level comments and optionally applying fixes.

    44k GitHub stars~3.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Codex

    skills-directory/skill-codex

    A skill your agent uses when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing

    1.5k GitHub starsUsed in 3 repos~1.8k tokens
    DevelopmentAuto-check passed
  • Changeset Validation

    openai/openai-agents-js

    Official

    Validate changesets in openai-agents-js using LLM judgment against git diffs (including uncommitted local changes).

    3.9k GitHub stars~607 tokensUpdated today
    DevelopmentAuto-check passed
  • DevSpace Manual QA Setup

    Waishnav/devspace

    Prepares the current DevSpace checkout or worktree for isolated local manual QA, covering QA state seeding, UI asset builds and snapshot resets.

    5.2k GitHub stars~440 tokensUpdated yesterday
    DevelopmentAuto-check passed

More from openai/openai-agents-python

All 14 skills in this repo
  • Implementation Final Review

    openai/openai-agents-python

    Official

    Review completed implementation changes before final verification.

    30k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Sensitive Logging Audit

    openai/openai-agents-python

    Official

    Audit or fix sensitive-data exposure in Python SDK diagnostics, exceptions, logging, and telemetry.

    30k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Final Release Review

    openai/openai-agents-python

    Official

    Assess a Python SDK release candidate or release plan against the previous release and recommend ship or block.

    30k GitHub stars~5.4k tokensUpdated today
    Auto-check passed
  • Release Candidate Prep

    openai/openai-agents-python

    Official

    Prepare a local Python SDK release candidate in a dedicated worktree.

    30k GitHub stars~4.9k tokensUpdated today
    Auto-check passed
  • Code Change Verification

    openai/openai-agents-python

    Official

    Run the required final formatting, lint, type, and test checks after eligible SDK changes pass review.

    30k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Examples Run Analysis

    openai/openai-agents-python

    Official

    Analyze logs and source from a completed manual examples run.

    30k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Implementation Strategy

What does Implementation Strategy do?

Choose supported scope and compatibility boundaries for SDK behavior changes; revisit when feedback changes the design. Implementation Strategy is an agent skill from openai/openai-agents-python, published by the product's own GitHub organization. Choose supported scope and compatibility boundaries for SDK behavior changes; revisit when feedback changes the design.

When should I use Implementation Strategy?

Implementation Strategy fits situations like: development work in your project.

How do I install Implementation Strategy in Claude Code?

Run `npx skills add openai/openai-agents-python --skill implementation-strategy -a claude-code`. Or copy the skill folder (.agents/skills/implementation-strategy in openai/openai-agents-python) into .claude/skills/implementation-strategy in your project. Claude Code loads it when a task matches its description.

How do I install Implementation Strategy in Codex?

Run `npx skills add openai/openai-agents-python --skill implementation-strategy -a codex`. Or copy the skill folder (.agents/skills/implementation-strategy in openai/openai-agents-python) into .agents/skills/implementation-strategy in your project. Codex loads it when a task matches its description.

Can I use Implementation Strategy in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openai/openai-agents-python --skill implementation-strategy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/implementation-strategy, .gemini/skills/implementation-strategy, .github/skills/implementation-strategy and .opencode/skills/implementation-strategy in your project.

What does Implementation Strategy need to run?

Going by SKILL.md and its folder, Implementation Strategy needs the command-line tools its instructions call (git). Our summary lists: Python 3.

Does Implementation Strategy access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Implementation Strategy safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Implementation Strategy use?

Implementation Strategy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Implementation Strategy use?

About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Implementation Strategy?

Skills that share tags, products or a category with Implementation Strategy: PR Design Doc (OpenHands/OpenHands, 90k stars), Get API Docs with chub (andrewyng/context-hub, 14k stars), Open Code Review CLI (alibaba/open-code-review, 44k stars) and Codex (skills-directory/skill-codex, 1.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Implementation Strategy?

openai (a GitHub organization, an official publisher) maintains it in openai/openai-agents-python, which has 29,896 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.

Source: openai/openai-agents-python on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.