Skill Align
techygarg/lattice
Audit and fix all Lattice documentation, README, docs/, PROJECT.md, GitHub issue templates, and CLAUDE.md to ensure they are fully aligned with the current skill inventory.
Publishes a slot's feature request or bug report to GitHub as an issue, and keeps that issue in sync, in the role of a release-minded engineer.
$ npx skills add FHIR/fhir-codegen --skill dev-issue -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FHIR/fhir-codegen dev-issue --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/FHIR/fhir-codegen.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/dev-issue .claude/skills/dev-issue && rm -rf skills-srcUse ~/.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/
Install the "dev-issue" agent skill from https://github.com/FHIR/fhir-codegen/tree/main/.github/skills/dev-issue into .claude/skills/dev-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-issue", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FHIR/fhir-codegen/tree/main/.github/skills/dev-issueType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FHIR/fhir-codegen --skill dev-issue -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FHIR/fhir-codegen dev-issue --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FHIR/fhir-codegen.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/dev-issue .agents/skills/dev-issue && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dev-issue" agent skill from https://github.com/FHIR/fhir-codegen/tree/main/.github/skills/dev-issue into .agents/skills/dev-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-issue", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FHIR/fhir-codegen --skill dev-issue -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FHIR/fhir-codegen dev-issue --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FHIR/fhir-codegen.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/dev-issue .cursor/skills/dev-issue && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dev-issue" agent skill from https://github.com/FHIR/fhir-codegen/tree/main/.github/skills/dev-issue into .cursor/skills/dev-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-issue", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FHIR/fhir-codegen.git --path .github/skills/dev-issue--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FHIR/fhir-codegen --skill dev-issue -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FHIR/fhir-codegen dev-issue --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FHIR/fhir-codegen.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/dev-issue .gemini/skills/dev-issue && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dev-issue" agent skill from https://github.com/FHIR/fhir-codegen/tree/main/.github/skills/dev-issue into .gemini/skills/dev-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-issue", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FHIR/fhir-codegen dev-issueInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FHIR/fhir-codegen --skill dev-issue -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FHIR/fhir-codegen.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/dev-issue .github/skills/dev-issue && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dev-issue" agent skill from https://github.com/FHIR/fhir-codegen/tree/main/.github/skills/dev-issue into .github/skills/dev-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-issue", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FHIR/fhir-codegen --skill dev-issue -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FHIR/fhir-codegen dev-issue --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FHIR/fhir-codegen.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/dev-issue .opencode/skills/dev-issue && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dev-issue" agent skill from https://github.com/FHIR/fhir-codegen/tree/main/.github/skills/dev-issue into .opencode/skills/dev-issue/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dev-issue", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dev-issuePublishes a slot's feature request or bug report to GitHub as an issue, and keeps that issue in sync, in the role of a release-minded engineer.
Dev Issue is an agent skill from FHIR/fhir-codegen. Publishes a slot's feature request or bug report to GitHub as an issue, and keeps that issue in sync, in the role of a release-minded engineer. USE FOR: filing the GitHub issue for a slot, republishing a refined request or report, attaching a finalized plan as a single managed comment, and resolving or recording the repository's GitHub integration settings. Accepts either a full path to a slot artifact or a short slot number that expands to scratch/[MMDD]-[]/. Opt-in: does nothing unless the repository's…
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering QA and bug reports and Agent instruction files. It works with GitHub. The repository describes itself as: Tools for code generation based on the FHIR specification. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b5f97c7. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dev Issue loads about 4k tokens when it runs. Until then it costs about 229 tokens; SKILL.md has 2,094 words of instructions outside code blocks.
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.
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.
The full file from FHIR/fhir-codegen at commit b5f97c7, republished under its MIT licence (© FHIR). 2,094 words, ~3,993 tokens.
.claude/skills/dev-issue/SKILL.md (or your agent's skills folder).Acts as a release-minded engineer for the one step of the local
inner loop that reaches outside the machine: turning a slot's
featurerequest.md or bugreport.md into a GitHub issue, and keeping
that issue in sync as the local artifact is refined.
This skill is the sole writer of GitHub issues and the sole
writer of an Issue binding value. Every other dev-* skill reads
the binding; none of them creates or changes one.
It is opt-in and off by default. When the repository's AGENTS.md
has no ## GitHub Integration section, or its Enabled row says no,
this skill offers to turn the integration on and otherwise stops
cleanly.
You are a release-minded engineer. That means:
Target (required) — which slot to publish. One of:
scratch/0423-02/featurerequest.md.2, 02, 14).
Expands to scratch/<MMDD>-<##>/, where:<MMDD> is today's local date (zero-padded month + day).<##> is the slot number, always zero-padded to two digits.featurerequest.md exists → use it.bugreport.md exists → use it.dev-request / dev-report).Intent (optional) — what to do with the slot. Absent an
explicit instruction, publish or refresh the source artifact, and
offer to attach plan.md when a finalized one is present.
Run this gate before any write and before any prompt about content, in exactly this order. Every failure below writes nothing.
Integration enabled. Read AGENTS.md at the repository root and
locate the ## GitHub Integration section. Proceed only when its
Enabled row says yes.
Enabled says no, offer to
turn it on through the Resolve-and-Record Protocol below. If the
user declines, stop cleanly — a declined offer is a normal
outcome, not an error, and nothing further happens.dev-issue. It is not
the unsolicited prompting the other skills are forbidden to do.gh is present and authenticated. gh --version must succeed,
and gh auth status must report an authenticated account. On
failure, stop and report the exact error verbatim. Do not attempt an
unauthenticated fallback.
Remote cross-check. Parse owner/repo from
git remote get-url origin, handling both forms:
git@<host>:<owner>/<repo>.githttps://<host>/<owner>/<repo> with an optional .git suffixCompare the parsed value to the recorded Repository row. On any
mismatch, stop and ask — never proceed on the recorded value
alone. A fork inherits the upstream's tracked AGENTS.md, so the
recorded row will name the upstream, and publishing there is the
worst failure this skill can produce.
The agreed value resolves. Confirm with
gh repo view --repo <owner/repo> --json nameWithOwner. A failure
here is a stop, not a prompt to try something else.
An artifact is published only once its author has finished with it.
featurerequest.md or bugreport.md is published only when its
Status row says Ready-for-plan.plan.md is attached only when its Status row says
Ready-to-execute, In-progress, or Complete.Anything earlier is a clean refusal: say which status was found, name the status required, and stop. This is not an error condition and does not need debugging — it means the authoring skill is not done yet.
This section is the canonical definition of the binding. Other skills cite it rather than restating it.
Shape. Every slot artifact carries one metadata row:
| Issue | [#N](<url>) |or, when the slot has never been published:
| Issue | not published |Ownership. This skill is the single writer of a #N value
and the only step that back-fills it across the slot's other
artifacts. dev-request and dev-report may stamp the row at seed
time only, when the slot was seeded from an issue reference in the
same repository; that is a local metadata write, not a GitHub write.
Conflict rule.
not published while another names #N is a
missing back-fill, not a conflict — fill it in.gh issue view <N> --repo <owner/repo> cannot
resolve is a conflict.No-downgrade ratchet. No skill ever replaces an existing #N
with not published. Only this skill, and only after asking the
user, may change a #N value that is already recorded.
Taken when no artifact in the slot carries a #N. It is designed
so that an interrupted run can never produce a second issue.
Search before creating. Look for an issue this slot may already own:
gh issue list --repo <owner/repo> --state all `
--search "devskills:slot=<MMDD>-<##>" --json number,title,urlRun a second search on the artifact's rendered title as a fallback, because body-comment indexing is best-effort and a freshly created issue may not be searchable yet. If either search returns a candidate, show it and stop — do not create. Offer the update path instead once the user confirms the match.
Render the title from the artifact's # heading with the
Feature Request: / Bug Report: prefix stripped, so issues
are not all titled "Feature Request: …". The kind is carried by the
label, not the title.
Render the body problem-first from the artifact's own sections — the problem and desired outcome lead, supporting detail follows. Append, as the final line, the slot marker:
<!-- devskills:slot=<MMDD>-<##> -->Show the rendered title and body, get approval, then create:
gh issue create --repo <owner/repo> --title <title> `
--body-file <file> --label <resolved-label>Write the binding immediately. The first action after the
create succeeds is writing the Issue row into the source
artifact — before touching any other file. Only then back-fill every
other artifact present in the slot. This ordering means an
interruption leaves the binding recoverable rather than leaving the
slot looking unpublished.
Taken when an artifact already carries #N. Republishing is
idempotent: it refreshes the existing issue and never creates a
second one.
Re-render the title and body from the (possibly refined) local
artifact. The local file is canonical — refreshing the issue from it
is the point. What is forbidden is stuffing plan.md into the issue
body; the plan belongs in the managed comment below.
Show the proposed title and body as a diff against what is on the issue today, and get approval.
Apply it:
gh issue edit <N> --repo <owner/repo> --title <title> `
--body-file <file>Reconcile labels per the section below. Never a second create, under any circumstances.
This file contains no label name of its own. The stock defaults
live only in dev-setup, which AGENTS.md exempts as the installer.
Every name used here is read from the target repository's AGENTS.md.
Label — feature request or
Label — bug report row, matching the artifact being published.Label — docs-only (additive)
row.When gh label list --repo <owner/repo> does not contain the recorded
name, offer exactly three options and take none of them without an
answer:
AGENTS.md, never from this skill.Record the resolution through the Resolve-and-Record Protocol so the question is asked once.
The integration may have been enabled by hand, or gh may have been
unavailable during dev-setup, leaving the row as {TBD}. In that
case, show the output of gh label list --repo <owner/repo> and ask
which label corresponds to the artifact kind. Do not guess a name,
and do not proceed unlabeled without asking. Record the answer
through the Protocol.
When a finalized plan.md is attached to the issue, it is rendered
into exactly one comment whose first line is the marker:
<!-- devskills:plan -->The marker is a tool-namespace token, not a repository-specific
value: it identifies the comment this tool owns and must be
byte-stable across every install for the lookup to work at all; it says
nothing about the target repository. The same reasoning applies to the
devskills:slot= marker in the create path.
Mechanics, written out in full because gh api takes the repository in
the path, not via --repo:
List the issue's comments and match the marker on the first line:
gh api repos/<owner>/<repo>/issues/<N>/comments --paginateUpdate in place when a marked comment exists. Note the endpoint is
/issues/comments/<id>, not a path under /issues/<N>/:
gh api repos/<owner>/<repo>/issues/comments/<comment-id> `
--method PATCH -F body=@<file>Create when no marked comment exists:
gh issue comment <N> --repo <owner/repo> --body-file <file>Never edit or delete a comment that lacks the marker. Those are human-authored, and this skill does not touch them.
This is the written-once behavior for every configurable value the
integration needs. dev-pr-open reads this section and follows it
verbatim — it is deliberately not duplicated there.
Detect. Read the sentinel block in AGENTS.md first. A
recorded value — including no, none, and n/a — is final
and ends the protocol. A resolved answer is never re-asked.
Propose. Derive a candidate from the repository itself, never from a preference baked into a skill:
gh label list --repo <owner/repo>. This skill contributes no
name of its own.Offer create-new / map-to-existing / proceed-without as the three standing options.
Confirm. Ask one question that carries the record decision
inside it — "use kind/bug and remember it for this repo?" — never
a separate second prompt to save the answer.
Record. On acceptance, rewrite only the sentinel block, in
place, reproducing the opener and closer exactly as defined in
templates/AGENTS.template.md:
<!-- >>> dev-* github integration (managed by dev-* skills) >>> -->
<!-- <<< dev-* github integration (managed by dev-* skills) <<< -->Never a second copy, never appended. Never stage, never commit.
Say in your report that AGENTS.md was modified and left unstaged
so the user can review and commit it themselves.
<MMDD> for a numeric slot. For an earlier slot, the user must give
a full path.Issue row. That
one row is this skill's to write; every other line of
featurerequest.md, bugreport.md, and plan.md belongs to the
skill that authored it.analysis.md and approach*.md are never published. Not as an
issue, not as a comment, not as a quotation. Review findings re-enter
the loop as a new dev-request / dev-report, which get their own
issue; a solution shape reaches GitHub only through plan.md. The
prohibition is on the files — plan.md's Approach metadata row
and its ## Approach section are dev-plan's own prose and are
published normally as part of the plan comment.dev-pr-open's Closes #N.gh; it never touches the git index. Pushing and
opening a PR belong to dev-pr-open.gh write. Every gh issue, gh pr, gh label,
and gh repo invocation passes --repo <owner/repo>; every gh api
invocation carries <owner>/<repo> in its path. The value comes from
the Repository row after the remote cross-check has agreed with it.AGENTS.md. If it is absent, fall back to README.md /
CONTRIBUTING.md and state which source you used — but note that an
absent AGENTS.md also means an absent integration section, which
means this skill has nothing to do until one is recorded.© FHIR, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/dev-issue of FHIR/fhir-codegen.
Open the folder on GitHubat commit b5f97c7
Dev Issue 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dev Issue this skillFHIR/fhir-codegen | 154 | — | ~4k | Automated safety check: Pass | MIT | |
| Skill Aligntechygarg/lattice | 198 | — | ~2k | Automated safety check: Pass | MIT | |
| Issue Repliesantoinecellerier/speaker-tuning-to-easyeffects | 142 | — | ~2k | Automated safety check: Pass | MIT | |
| Harness Engineeringgithub/awesome-copilot | 40k | — | ~2k | Automated safety check: Pass | MIT | |
| Weavebench Cua ReproduceAMAP-ML/LongHorizon-Harness | 1.7k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Evidence-Driven Testingmichaelshimeles/skills | 1.3k | 1 repos | ~3.9k | Automated safety check: Pass | None |
techygarg/lattice
Audit and fix all Lattice documentation, README, docs/, PROJECT.md, GitHub issue templates, and CLAUDE.md to ensure they are fully aligned with the current skill inventory.
antoinecellerier/speaker-tuning-to-easyeffects
Guides triaging GitHub issues and drafting or posting replies in this repo.
github/awesome-copilot
Adopt repository-level harness engineering for coding agents.
AMAP-ML/LongHorizon-Harness
Reproduce CUA-Harness experiments on WeaveBench from a GitHub checkout.
michaelshimeles/skills
Records an annotated screen recording of the agent testing an app hands-on, then posts the video and a results summary to the PR and tracker issue.
NVIDIA/OpenShell
Create GitHub issues using the gh CLI. An agent skill from NVIDIA/OpenShell.
FHIR/fhir-codegen
Drafts and iterates on local-development bug reports in the role of a staff-level Tech Lead.
FHIR/fhir-codegen
Drafts and iterates on local-development feature requests in the role of a staff-level Product Manager.
FHIR/fhir-codegen
Performs a two-track code-quality and QA review in the roles of a staff-level Engineering Lead and QA Lead, then synthesizes both critiques into a single analysis.md.
FHIR/fhir-codegen
Explores three competing solution shapes for one request in the roles of three isolated staff-level Engineering Leads, then has a fourth skeptical judge sub-agent select one on the record.
FHIR/fhir-codegen
Drives the entire local inner loop in one invocation, as a conductor over the skills that own each role.
FHIR/fhir-codegen
Builds and iterates on a detailed implementation plan in the role of a staff-level Engineering Lead, working from either a featurerequest.md (from dev-request) or a bugreport.md (from dev-report).
Works with
Categories
Publishes a slot's feature request or bug report to GitHub as an issue, and keeps that issue in sync, in the role of a release-minded engineer. Dev Issue is an agent skill from FHIR/fhir-codegen. Publishes a slot's feature request or bug report to GitHub as an issue, and keeps that issue in sync, in the role of a release-minded engineer.
Dev Issue fits situations like: : filing the GitHub issue for a slot; republishing a refined request; attaching a finalized plan as a single managed comment; recording the repositorys GitHub integration settings.
Run `npx skills add FHIR/fhir-codegen --skill dev-issue -a claude-code`. Or copy the skill folder (.github/skills/dev-issue in FHIR/fhir-codegen) into .claude/skills/dev-issue in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FHIR/fhir-codegen --skill dev-issue -a codex`. Or copy the skill folder (.github/skills/dev-issue in FHIR/fhir-codegen) into .agents/skills/dev-issue in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FHIR/fhir-codegen --skill dev-issue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dev-issue, .gemini/skills/dev-issue, .github/skills/dev-issue and .opencode/skills/dev-issue in your project.
Going by SKILL.md and its folder, Dev Issue needs the command-line tools its instructions call (gh and git).
SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Dev Issue is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dev Issue: Skill Align (techygarg/lattice, 198 stars), Issue Replies (antoinecellerier/speaker-tuning-to-easyeffects, 142 stars), Harness Engineering (github/awesome-copilot, 40k stars) and Weavebench Cua Reproduce (AMAP-ML/LongHorizon-Harness, 1.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FHIR (a GitHub organization) maintains it in FHIR/fhir-codegen, which has 154 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: FHIR/fhir-codegen on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.