Agent skill

Report Issue Framework

by cyanheads in cyanheads/pubmed-mcp-server

File a bug or feature request against @cyanheads/mcp-ts-core when you hit a framework issue.

Apache-2.0Auto-check passedResearch & Science

Install Report Issue Framework

skills CLI
$ npx skills add cyanheads/pubmed-mcp-server --skill report-issue-framework -a claude-code

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

GitHub CLI
$ gh skill install cyanheads/pubmed-mcp-server report-issue-framework --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/cyanheads/pubmed-mcp-server.git skills-src && mkdir -p .claude/skills && cp -r skills-src/framework-skills/report-issue-framework .claude/skills/report-issue-framework && 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
report-issue-framework
GitHub stars
155
Token cost
~3.2k tokens
SKILL.md length
1,150 words
Files
1
Skills in repo
30
Repo updated
First seen
Licence
Apache-2.0

At a glance

File a bug or feature request against @cyanheads/mcp-ts-core when you hit a framework issue.

  • Works in 5 steps: Confirm framework version — bun pm ls… → Check you're on latest — bun outdated… → Isolate the issue — reproduce with a… → …
  • Config behaves contrary to the documented API — not for server-specific application bugs
  • SKILL.md covers When to Use, Before Filing, Writing Well-Structured Issues and Redact Before Posting, plus 4 more sections
  • Calls gh and bun; reaches github.com and hono.dev

What it does

Report Issue Framework is an agent skill from cyanheads/pubmed-mcp-server. File a bug or feature request against @cyanheads/mcp-ts-core when you hit a framework issue. Use when a builder, utility, context method, or config behaves contrary to the documented API — not for server-specific application bugs.

Its SKILL.md is about 3.2k 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 Research & Science, covering MCP servers. It works with Model Context Protocol. The repository describes itself as: Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms via MCP. STDIO or Streamable HTTP. The licence is Apache-2.0.

When your agent uses it

  • Config behaves contrary to the documented API — not for server-specific application bugs
  • Tasks that involve MCP servers

Example prompts

  • “/report-issue-framework”

Workflow steps

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

  1. Confirm framework version — bun pm ls @cyanheads/mcp-ts-core or check node_modules/@cyanheads/mcp-ts-core/package.json
  2. Check you're on latest — bun outdated @cyanheads/mcp-ts-core. If behind, update and retest before filing.
  3. Isolate the issue — reproduce with a minimal handler or standalone script. Strip server-specific services, config, and dependencies. If…
  4. Search existing issues — don't file duplicates
  5. For documentation- or contract-shaped requests, audit all three doc layers first — proposals to add reference docs, public-API…

What it can do on your machine

Read from SKILL.md and the folder at commit 5a417fb. 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:

    • gh
    • bun

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • hono.dev

    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

Report Issue Framework loads about 3.2k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,150 words of instructions outside code blocks.

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

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 cyanheads/pubmed-mcp-server at commit 5a417fb, republished under its Apache-2.0 licence (© cyanheads). 1,150 words, ~3,211 tokens.

Download SKILL.mdSave it as .claude/skills/report-issue-framework/SKILL.md (or your agent's skills folder).
name
report-issue-framework
description
File a bug or feature request against @cyanheads/mcp-ts-core when you hit a framework issue. Use when a builder, utility, context method, or config behaves contrary to the documented API — not for server-specific application bugs.
metadata.author
cyanheads
metadata.version
1.14
metadata.audience
external
metadata.type
workflow

When to Use

You've isolated a problem to @cyanheads/mcp-ts-core itself — not your server code, not a misconfiguration, not a missing peer dependency. Typical triggers:

  • Framework builder (tool(), resource(), prompt()) rejects valid input or produces incorrect output
  • createApp() or createWorkerHandler() fails on a valid config
  • Context properties (ctx.log, ctx.state, ctx.inputs, etc.) behave contrary to docs
  • A utility from /utils, /errors, /auth, /storage, /services returns wrong results or throws unexpectedly
  • Type exports are incorrect or missing (compile error on documented usage)
  • The definition linter (bun run lint:mcp) produces false positives or misses real violations

For general gh CLI workflows outside issue filing (PRs, workflows, API access), see the github-cli skill.

Before Filing

  1. Confirm framework version — bun pm ls @cyanheads/mcp-ts-core or check node_modules/@cyanheads/mcp-ts-core/package.json
  2. Check you're on latest — bun outdated @cyanheads/mcp-ts-core. If behind, update and retest before filing.
  3. Isolate the issue — reproduce with a minimal handler or standalone script. Strip server-specific services, config, and dependencies. If the bug disappears when isolated, it's likely in your server code.
  4. Search existing issues — don't file duplicates:
bash
gh issue list -R cyanheads/mcp-ts-core --search "your error message or keyword" --state all

# Assess a close match before commenting — is it already linked to a fix or referenced elsewhere?
gh issue view <number> -R cyanheads/mcp-ts-core              # body
gh issue view <number> -R cyanheads/mcp-ts-core --comments   # thread only — without a TTY it prints no body
gh api 'repos/cyanheads/mcp-ts-core/issues/<number>/timeline' --paginate \
  --jq '.[] | select(.event=="cross-referenced") | .source.issue | "\(.repository.full_name)#\(.number) — \(.title)"'
  1. For documentation- or contract-shaped requests, audit all three doc layers first — proposals to add reference docs, public-API conventions, attribute/event catalogs, or stability commitments often duplicate surface that already exists. Check src/ for behavior, docs/ for human-facing reference, and framework-skills/ for agent-facing reference. Skill files marked audience: external are the framework's public contract — treat them as authoritative when evaluating whether a documentation gap exists. Also verify the constants or types you'd reference aren't already exported from @cyanheads/mcp-ts-core or one of its subpaths.

Writing Well-Structured Issues

Good issues are terse and fact-dense. Budget: a bug reads in ~150 words, a feature in ~250, code and logs excluded. Every section past the form's required fields must earn its place — a section you could delete without changing the fix is noise. One or two sentences per bullet; if a bullet runs long, split it or cut it.

  • Cut what dilutes the signal. Mechanism walkthroughs (link the PR or doc instead), ceremonial framings ("This issue covers…"), conversation references ("as discussed", "per offline"), restated context the reader already has, and kitchen-sink Additional context blocks. If a paragraph isn't pulling weight, drop it.
  • Lead with specifics. Name the tool, function, module, or symptom. "Currently createApp() throws ConfigurationError when MCP_HTTP_PORT is set to 0" beats "There's a problem with the config." A reader should know what's broken or missing before the end of the first sentence.
  • Embed library/service links on first mention. [Hono](https://hono.dev/), [linkedom](https://github.com/WebReflection/linkedom). Link to the canonical repo or homepage so readers can verify the dependency and reach docs in one click.
  • Use owner/repo#N for cross-repo issue references. GitHub auto-renders them as linked references (e.g. cyanheads/pubmed-mcp-server#34). Bare #N only works for same-repo issues.
  • Add a Related: #N line near the top when the issue grows from prior context (discussions, other issues, PRs). Makes provenance clickable.
  • Cite cross-references once per body. Link an issue/PR in Related:, the description, or Additional context — not all three. The reader sees them all; redundant linking dilutes signal.
  • Prefer Markdown tables for comparisons. When showing options, tiers, strategies, or tradeoffs — tables are the highest-density format for scanning N rows × M attributes.
  • Use Depends on: owner/repo#N to declare ordering explicitly when implementation is blocked on another issue landing first.
  • Skip collaborator-framing sign-offs. Lines like "Happy to open a PR", "let me know if you'd like", "willing to contribute", "if that's the preferred flow" read as noise. A PR link beats an offer; if you're the maintainer filing against your own repo, the offer is redundant. End the body at the last substantive point.

Redact Before Posting

GitHub issues are public. Do not include secrets, credentials, API keys, or tokens. Redact sensitive values from env vars, headers, and logs before submitting. Replace with obvious placeholders: REDACTED, sk-...REDACTED. Do not rely on partial masking — partial keys can still be exploited.

Filing a Bug

The repo has YAML form issue templates. Use --web to open the form in the browser (preferred when available), or pass --title + --body for non-interactive use.

Browser (interactive)
bash
gh issue create -R cyanheads/mcp-ts-core --template "Bug Report" --web
Show full SKILL.md (481 more words)Show less
CLI (non-interactive)

Structure the --body to match the template's form fields. Description is two or three sentences; the reproduction is the minimal code and the observed output, nothing else. Add ### Additional context only when it changes the fix (a workaround, a related issue, the one log line that matters) — omitted by default.

bash
gh issue create -R cyanheads/mcp-ts-core \
  --title "bug(scope): concise description" \
  --label "bug" \
  --assignee "@me" \
  --body "$(cat <<'ISSUE'
### mcp-ts-core version

<installed version from node_modules/@cyanheads/mcp-ts-core/package.json — not the ^ range>

### Runtime

Bun

### Runtime version

<bun --version>

### Transport

stdio

### OS

macOS 15.x

### Description

Brief explanation of the bug — what you expected vs what happened.

### Reproduction

```ts
import { tool, z } from '@cyanheads/mcp-ts-core';

export const broken = tool('broken_example', {
  description: 'Minimal repro.',
  input: z.object({ id: z.string().describe('ID') }),
  output: z.object({
    name: z.string().describe('Name'),
    extra: z.string().optional().describe('Optional field'),
  }),
  async handler(input, ctx) {
    return { name: 'test' }; // omitting optional field causes validation error
  },
});
```

### Actual behavior

```
Error: Output validation failed: ...
```

### Expected behavior

Omitting an optional output field should pass validation.
ISSUE
)"
Title conventions

Format: bug(<scope>): concise description

ScopeWhen
toolTool builder, handler, format, annotations
resourceResource builder, handler, list, params
promptPrompt builder, generate, args
contextContext, logger, state, progress, elicit
configAppConfig, parseConfig, env parsing
errorsMcpError, error factories, typed contracts (errors[] / ctx.fail), conformance lint, httpErrorFromResponse, auto-classification
authAuth modes, scope checking, JWT/OAuth
storageStorageService, providers
transportstdio/http transport, SSE, session handling
workercreateWorkerHandler, Worker runtime
utilsUtilities (formatting, parsing, pagination, etc.)
linterDefinition linter false positives/negatives
typesType exports, type inference
servicesLLM, Speech, Graph services
depsDependency issues, peer dep conflicts
Labels

Every issue needs exactly one primary label. Stack secondary labels on top when applicable.

Primary (required — pick one):

LabelWhen
bugSomething broken
enhancementFeature request or improvement
documentationDocumentation is wrong, missing, or misleading

Secondary (optional — stack on top of primary):

LabelWhen
regressionWorked before, broken after an update
performanceMemory, CPU, latency, or resource usage
securityVulnerability, CVE, or hardening work
breaking-changeFix/feature will break public API
blocked-by-sdkFix requires changes in @modelcontextprotocol/sdk
surplus-token-ideaWorth exploring when token budget allows

Combine labels: --label "bug" --label "regression".

Attaching logs or stack traces

For long output, write to a file and attach. Note: --body-file replaces the entire body — it does not supplement a --body flag. For structured bugs with logs, either embed the log content in the Additional context section of a normal --body, or file the issue first and add the log as a comment:

bash
bun run rebuild && bun run start:stdio 2>&1 | head -100 > /tmp/mcp-error.log

# As part of a new issue (the log becomes the entire body — no template fields)
gh issue create -R cyanheads/mcp-ts-core \
  --title "bug(transport): stdio crashes on large payload" \
  --label "bug" \
  --assignee "@me" \
  --body-file /tmp/mcp-error.log

# Or as a comment on an existing issue
gh issue comment <number> -R cyanheads/mcp-ts-core --body-file /tmp/mcp-error.log

Filing a Feature Request

Browser (interactive)
bash
gh issue create -R cyanheads/mcp-ts-core --template "Feature Request" --web
CLI (non-interactive)

The first three headings are the Feature Request form's own fields, in its order — Use case and Proposed API are required by the form, so a body without them does not satisfy it. Out of scope is one or two lines. Nothing else by default: a Scope, Flow, Design / Tradeoffs, or Depends on block is added only when the reader cannot act without it, and each stays to a few lines.

bash
gh issue create -R cyanheads/mcp-ts-core \
  --title "feat(scope): concise description" \
  --label "enhancement" \
  --assignee "@me" \
  --body "$(cat <<'ISSUE'
### Use case

One or two sentences: who hits this gap in the framework and why it matters. Name the specific builder, utility, context method, or config field. Kept short on purpose — a field that invites a paragraph gets padded with background and skipped by the next reader.

Related: #N

### Proposed API

What you want the framework to do, then the API as a consumer would call it. Link external libraries on first mention: [lib name](https://github.com/owner/repo).

```ts
import { withRetry } from '@cyanheads/mcp-ts-core/utils';

const result = await withRetry(() => fetchExternal(url), {
  maxAttempts: 3,
  backoff: 'exponential',
});
```

### Alternatives considered

What you tried or evaluated instead, and why it didn't fit.

### Out of scope

- Adjacent work that belongs in a separate issue
ISSUE
)"

Following Up

bash
# Check issue status, then its comment thread (--comments without a TTY prints no body)
gh issue view <number> -R cyanheads/mcp-ts-core
gh issue view <number> -R cyanheads/mcp-ts-core --comments

# Add context or respond to maintainer questions
gh issue comment <number> -R cyanheads/mcp-ts-core --body "Additional context..."

# List your open issues
gh issue list -R cyanheads/mcp-ts-core --author @me

Checklist

  • Confirmed bug is in @cyanheads/mcp-ts-core, not server code
  • Running latest (or documented) framework version
  • Searched existing issues — no duplicate found
  • If documentation or contract enhancement: confirmed src/, docs/, framework-skills/, and public exports don't already cover the surface
  • All secrets, credentials, and tokens redacted
  • Primary label assigned (bug / enhancement / documentation)
  • If bug: version, runtime, repro code, actual vs expected behavior included
  • If feature: Use case and Proposed API present (the form's required fields), Alternatives considered third; Out of scope defined
  • Inside the budget — ~150 words for a bug, ~250 for a feature, code and logs excluded — and every section past the form's fields earns its place

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

Files

Just SKILL.md in framework-skills/report-issue-framework of cyanheads/pubmed-mcp-server.

Open the folder on GitHubat commit 5a417fb

Compare with similar skills

Report Issue Framework 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.

Report Issue Framework compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Report Issue Framework this skillcyanheads/pubmed-mcp-server155—~3.2kAutomated safety check: PassApache-2.0
Read GitHubAgentTeam-TaichuAI/ScienceClaw6702 repos~638Automated safety check: PassNone
FirstdataMLT-OSS/FirstData183—~3.1kAutomated safety check: PassMIT
Serply Search MCPsickn33/agentic-awesome-skills47k1 repos~1.5kAutomated safety check: PassMIT
Bgpt MCPClawBio/ClawBio1.2k1 repos~3.2kAutomated safety check: PassMIT
Setup MedsciAperivue/medsci-skills329—~960Automated safety check: PassMIT

Similar skills

  • Read GitHub

    AgentTeam-TaichuAI/ScienceClaw

    Read and search GitHub repository documentation via gitmcp.io MCP service.

    670 GitHub starsUsed in 2 repos~638 tokens
    Research & ScienceAuto-check passed
  • Firstdata

    MLT-OSS/FirstData

    Find official portals, APIs, and download paths for authoritative primary data sources (governments, international organizations, research institutions, etc.).

    183 GitHub stars~3.1k tokensUpdated 5 days ago
    Research & ScienceAuto-check passed
  • Serply Search MCP

    sickn33/agentic-awesome-skills

    Search Google, Bing, Google News and Google Scholar, and read public pages, with the Serply MCP server.

    47k GitHub starsUsed in 1 repo~1.5k tokens
    Research & ScienceAuto-check passed
  • Bgpt MCP

    ClawBio/ClawBio

    Search scientific papers via the BGPT MCP server and retrieve structured experimental data — methods, results, conclusions, quality scores, and 25+ metadata fields per paper.

    1.2k GitHub starsUsed in 1 repo~3.2k tokens
    Research & ScienceAuto-check passed
  • Setup Medsci

    Aperivue/medsci-skills

    A skill your agent uses when a skill fails for a missing tool or the environment needs checking.

    329 GitHub stars~960 tokensUpdated 2 days ago
    Research & ScienceAuto-check passed
  • G1

    brycewang-stanford/Auto-Empirical-Research-Skills

    VS-Enhanced Journal Matcher with Journal Intelligence MCP — Real-time journal data pipeline with checkpoint-based human decisions.

    4.5k GitHub stars~3.7k tokensUpdated 2 days ago
    Research & ScienceAuto-check passed

More from cyanheads/pubmed-mcp-server

All 30 skills in this repo
  • Add App Tool

    cyanheads/pubmed-mcp-server

    Scaffold an MCP App tool + UI resource pair. An agent skill from cyanheads/pubmed-mcp-server.

    155 GitHub stars~3.2k tokensUpdated 3 days ago
    Auto-check passed
  • Add Prompt

    cyanheads/pubmed-mcp-server

    Scaffold a new MCP prompt template. An agent skill from cyanheads/pubmed-mcp-server.

    155 GitHub stars~1.6k tokensUpdated 3 days ago
    Auto-check passed
  • Add Resource

    cyanheads/pubmed-mcp-server

    Scaffold a new MCP resource definition. An agent skill from cyanheads/pubmed-mcp-server.

    155 GitHub stars~3k tokensUpdated 3 days ago
    Auto-check passed
  • Add Service

    cyanheads/pubmed-mcp-server

    Scaffold a new service integration. An agent skill from cyanheads/pubmed-mcp-server.

    155 GitHub stars~3.6k tokensUpdated 3 days ago
    Auto-check passed
  • Add Test

    cyanheads/pubmed-mcp-server

    Scaffold a test file for an existing tool, resource, or service.

    155 GitHub stars~4.1k tokensUpdated 3 days ago
    Auto-check passed
  • API Auth

    cyanheads/pubmed-mcp-server

    Authentication, authorization, and multi-tenancy patterns for @cyanheads/mcp-ts-core.

    155 GitHub stars~2.7k tokensUpdated 3 days ago
    Auto-check passed

Questions about Report Issue Framework

What does Report Issue Framework do?

File a bug or feature request against @cyanheads/mcp-ts-core when you hit a framework issue. Report Issue Framework is an agent skill from cyanheads/pubmed-mcp-server. File a bug or feature request against @cyanheads/mcp-ts-core when you hit a framework issue.

When should I use Report Issue Framework?

Report Issue Framework fits situations like: config behaves contrary to the documented API — not for server-specific application bugs; tasks that involve MCP servers.

How do I install Report Issue Framework in Claude Code?

Run `npx skills add cyanheads/pubmed-mcp-server --skill report-issue-framework -a claude-code`. Or copy the skill folder (framework-skills/report-issue-framework in cyanheads/pubmed-mcp-server) into .claude/skills/report-issue-framework in your project. Claude Code loads it when a task matches its description.

How do I install Report Issue Framework in Codex?

Run `npx skills add cyanheads/pubmed-mcp-server --skill report-issue-framework -a codex`. Or copy the skill folder (framework-skills/report-issue-framework in cyanheads/pubmed-mcp-server) into .agents/skills/report-issue-framework in your project. Codex loads it when a task matches its description.

Can I use Report Issue Framework 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 cyanheads/pubmed-mcp-server --skill report-issue-framework -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/report-issue-framework, .gemini/skills/report-issue-framework, .github/skills/report-issue-framework and .opencode/skills/report-issue-framework in your project.

What does Report Issue Framework need to run?

Going by SKILL.md and its folder, Report Issue Framework needs the command-line tools its instructions call (gh and bun).

Does Report Issue Framework access the network?

SKILL.md names 2 domains. In commands or code: github.com and hono.dev; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Report Issue Framework 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 Report Issue Framework use?

Report Issue Framework is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Report Issue Framework use?

About 3.2k tokens (SKILL.md is roughly 13k 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 Report Issue Framework?

Skills that share tags, products or a category with Report Issue Framework: Read GitHub (AgentTeam-TaichuAI/ScienceClaw, 670 stars), Firstdata (MLT-OSS/FirstData, 183 stars), Serply Search MCP (sickn33/agentic-awesome-skills, 47k stars) and Bgpt MCP (ClawBio/ClawBio, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Report Issue Framework?

cyanheads (a GitHub user) maintains it in cyanheads/pubmed-mcp-server, which has 155 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 4, 2026.

Source: cyanheads/pubmed-mcp-server on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.