From 579284c9beceb9a0ced18f4744e4764c52da2ae2 Mon Sep 17 00:00:00 2001 From: Affaan Mustafa Date: Mon, 11 May 2026 11:33:43 -0400 Subject: [PATCH] docs: salvage USPTO and gget skills --- .claude-plugin/marketplace.json | 2 +- .claude-plugin/plugin.json | 2 +- AGENTS.md | 4 +- README.md | 6 +- README.zh-CN.md | 2 +- docs/zh-CN/AGENTS.md | 4 +- docs/zh-CN/README.md | 6 +- manifests/install-modules.json | 2 + package.json | 2 + skills/scientific-db-uspto-database/SKILL.md | 177 +++++++++++++++++++ skills/scientific-pkg-gget/SKILL.md | 166 +++++++++++++++++ 11 files changed, 360 insertions(+), 13 deletions(-) create mode 100644 skills/scientific-db-uspto-database/SKILL.md create mode 100644 skills/scientific-pkg-gget/SKILL.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index fd15d697..ef54409c 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -11,7 +11,7 @@ { "name": "ecc", "source": "./", - "description": "The most comprehensive Claude Code plugin — 53 agents, 200 skills, 69 legacy command shims, selective install profiles, and production-ready hooks for TDD, security scanning, code review, and continuous learning", + "description": "The most comprehensive Claude Code plugin — 53 agents, 202 skills, 69 legacy command shims, selective install profiles, and production-ready hooks for TDD, security scanning, code review, and continuous learning", "version": "2.0.0-rc.1", "author": { "name": "Affaan Mustafa", diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index c7776a27..5d3dd78c 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "ecc", "version": "2.0.0-rc.1", - "description": "Battle-tested Claude Code plugin for engineering teams — 53 agents, 200 skills, 69 legacy command shims, production-ready hooks, and selective install workflows evolved through continuous real-world use", + "description": "Battle-tested Claude Code plugin for engineering teams — 53 agents, 202 skills, 69 legacy command shims, production-ready hooks, and selective install workflows evolved through continuous real-world use", "author": { "name": "Affaan Mustafa", "url": "https://x.com/affaanmustafa" diff --git a/AGENTS.md b/AGENTS.md index efd163ab..30ec15e5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — Agent Instructions -This is a **production-ready AI coding plugin** providing 53 specialized agents, 200 skills, 69 commands, and automated hook workflows for software development. +This is a **production-ready AI coding plugin** providing 53 specialized agents, 202 skills, 69 commands, and automated hook workflows for software development. **Version:** 2.0.0-rc.1 @@ -146,7 +146,7 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat ``` agents/ — 53 specialized subagents -skills/ — 200 workflow skills and domain knowledge +skills/ — 202 workflow skills and domain knowledge commands/ — 69 slash commands hooks/ — Trigger-based automations rules/ — Always-follow guidelines (common + per-language) diff --git a/README.md b/README.md index 07afc741..b4b56c80 100644 --- a/README.md +++ b/README.md @@ -351,7 +351,7 @@ If you stacked methods, clean up in this order: /plugin list ecc@ecc ``` -**That's it!** You now have access to 53 agents, 200 skills, and 69 legacy command shims. +**That's it!** You now have access to 53 agents, 202 skills, and 69 legacy command shims. ### Dashboard GUI @@ -1341,7 +1341,7 @@ The configuration is automatically detected from `.opencode/opencode.json`. |---------|-------------|----------|--------| | Agents | PASS: 53 agents | PASS: 12 agents | **Claude Code leads** | | Commands | PASS: 69 commands | PASS: 31 commands | **Claude Code leads** | -| Skills | PASS: 200 skills | PASS: 37 skills | **Claude Code leads** | +| Skills | PASS: 202 skills | PASS: 37 skills | **Claude Code leads** | | Hooks | PASS: 8 event types | PASS: 11 events | **OpenCode has more!** | | Rules | PASS: 29 rules | PASS: 13 instructions | **Claude Code leads** | | MCP Servers | PASS: 14 servers | PASS: Full | **Full parity** | @@ -1446,7 +1446,7 @@ ECC is the **first plugin to maximize every major AI coding tool**. Here's how e |---------|------------|------------|-----------|----------| | **Agents** | 53 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 | | **Commands** | 69 | Shared | Instruction-based | 31 | -| **Skills** | 200 | Shared | 10 (native format) | 37 | +| **Skills** | 202 | Shared | 10 (native format) | 37 | | **Hook Events** | 8 types | 15 types | None yet | 11 types | | **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks | | **Rules** | 34 (common + lang) | 34 (YAML frontmatter) | Instruction-based | 13 instructions | diff --git a/README.zh-CN.md b/README.zh-CN.md index 26ec9495..ee847fc9 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -160,7 +160,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/" /plugin list ecc@ecc ``` -**完成!** 你现在可以使用 53 个代理、200 个技能和 69 个命令。 +**完成!** 你现在可以使用 53 个代理、202 个技能和 69 个命令。 ### multi-* 命令需要额外配置 diff --git a/docs/zh-CN/AGENTS.md b/docs/zh-CN/AGENTS.md index 54643bce..47c4a094 100644 --- a/docs/zh-CN/AGENTS.md +++ b/docs/zh-CN/AGENTS.md @@ -1,6 +1,6 @@ # Everything Claude Code (ECC) — 智能体指令 -这是一个**生产就绪的 AI 编码插件**,提供 53 个专业代理、200 项技能、69 条命令以及自动化钩子工作流,用于软件开发。 +这是一个**生产就绪的 AI 编码插件**,提供 53 个专业代理、202 项技能、69 条命令以及自动化钩子工作流,用于软件开发。 **版本:** 2.0.0-rc.1 @@ -147,7 +147,7 @@ ``` agents/ — 53 个专业子代理 -skills/ — 199 个工作流技能和领域知识 +skills/ — 202 个工作流技能和领域知识 commands/ — 69 个斜杠命令 hooks/ — 基于触发的自动化 rules/ — 始终遵循的指导方针(通用 + 每种语言) diff --git a/docs/zh-CN/README.md b/docs/zh-CN/README.md index e6099ea2..063e5593 100644 --- a/docs/zh-CN/README.md +++ b/docs/zh-CN/README.md @@ -224,7 +224,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/" /plugin list ecc@ecc ``` -**搞定!** 你现在可以使用 53 个智能体、200 项技能和 69 个命令了。 +**搞定!** 你现在可以使用 53 个智能体、202 项技能和 69 个命令了。 *** @@ -1134,7 +1134,7 @@ opencode |---------|-------------|----------|--------| | 智能体 | PASS: 53 个 | PASS: 12 个 | **Claude Code 领先** | | 命令 | PASS: 69 个 | PASS: 31 个 | **Claude Code 领先** | -| 技能 | PASS: 200 项 | PASS: 37 项 | **Claude Code 领先** | +| 技能 | PASS: 202 项 | PASS: 37 项 | **Claude Code 领先** | | 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** | | 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** | | MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** | @@ -1242,7 +1242,7 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以 |---------|------------|------------|-----------|----------| | **智能体** | 53 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 | | **命令** | 69 | 共享 | 基于指令 | 31 | -| **技能** | 200 | 共享 | 10 (原生格式) | 37 | +| **技能** | 202 | 共享 | 10 (原生格式) | 37 | | **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 | | **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 | | **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 | diff --git a/manifests/install-modules.json b/manifests/install-modules.json index dfe0929a..bc7eb2da 100644 --- a/manifests/install-modules.json +++ b/manifests/install-modules.json @@ -297,6 +297,8 @@ "skills/exa-search", "skills/research-ops", "skills/scientific-db-pubmed-database", + "skills/scientific-db-uspto-database", + "skills/scientific-pkg-gget", "skills/scientific-thinking-literature-review", "skills/scientific-thinking-scholar-evaluation" ], diff --git a/package.json b/package.json index e67b02b6..2b759fe4 100644 --- a/package.json +++ b/package.json @@ -214,6 +214,8 @@ "skills/remotion-video-creation/", "skills/research-ops/", "skills/scientific-db-pubmed-database/", + "skills/scientific-db-uspto-database/", + "skills/scientific-pkg-gget/", "skills/scientific-thinking-literature-review/", "skills/scientific-thinking-scholar-evaluation/", "skills/returns-reverse-logistics/", diff --git a/skills/scientific-db-uspto-database/SKILL.md b/skills/scientific-db-uspto-database/SKILL.md new file mode 100644 index 00000000..22816f4f --- /dev/null +++ b/skills/scientific-db-uspto-database/SKILL.md @@ -0,0 +1,177 @@ +--- +name: uspto-database +description: USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs. +origin: community +--- + +# USPTO Database + +Use this skill when a task needs official United States patent or trademark +records from USPTO systems. + +## When to Use + +- Searching granted patents or pre-grant publications. +- Checking patent application status, file-wrapper data, assignments, or + public prosecution history. +- Looking up trademark status, documents, or assignment history. +- Building reproducible prior-art, portfolio, or IP landscape research logs. +- Comparing USPTO records with secondary tools such as Google Patents, + Lens.org, Semantic Scholar, or company patent pages. + +Do not use this skill to give legal advice. Treat it as a data-gathering and +record-verification workflow. + +## Source Selection + +Prefer official USPTO or USPTO-supported surfaces first: + +- Open Data Portal (ODP): current home for migrated USPTO datasets and APIs. +- Patent File Wrapper: public patent application bibliographic data and file + wrapper records. +- PatentSearch API: PatentsView search API for granted patents and pre-grant + publication datasets. +- TSDR Data API: trademark status and document retrieval. +- Patent and Trademark Assignment Search: ownership transfer records. +- PTAB data in ODP: Patent Trial and Appeal Board proceedings. + +Use secondary sources only as convenience indexes. When the answer matters, +cross-check the official record. + +## Authentication and Secrets + +Many USPTO API flows require an API key. Store keys in environment variables or +a secret manager, never in committed files or pasted transcripts. + +Common environment names: + +```bash +export USPTO_API_KEY="..." +export PATENTSVIEW_API_KEY="..." +``` + +For PatentSearch, send the key with the `X-Api-Key` header. For TSDR, follow +the current USPTO API Manager instructions and rate-limit guidance. + +## PatentSearch Workflow + +Use PatentSearch for broad patent and pre-grant publication search when the +question is about trends, inventors, assignees, classifications, dates, or +portfolio slices. + +Workflow: + +1. Identify the endpoint from the current PatentSearch reference or Swagger UI. +2. Build a JSON query with explicit filters. +3. Request only the fields needed for the analysis. +4. Sort and paginate deterministically. +5. Record the endpoint, query body, date, data currency note, and result count. + +Python request skeleton: + +```python +import os +import requests + +API_KEY = os.environ["PATENTSVIEW_API_KEY"] +BASE = "https://search.patentsview.org/api/v1" + +payload = { + "q": { + "_and": [ + {"patent_date": {"_gte": "2024-01-01"}}, + {"assignees.assignee_organization": {"_text_any": ["Google", "Alphabet"]}}, + ] + }, + "f": ["patent_id", "patent_title", "patent_date"], + "s": [{"patent_date": "desc"}], + "o": {"per_page": 100, "page": 1}, +} + +response = requests.post( + f"{BASE}/patent/", + headers={"X-Api-Key": API_KEY, "Content-Type": "application/json"}, + json=payload, + timeout=30, +) +response.raise_for_status() +print(response.json()) +``` + +Before reusing a query, verify current endpoint names, field paths, request +parameters, and API-key availability in the live PatentSearch docs. + +## Trademark/TSDR Workflow + +Use TSDR when the task needs trademark case status, documents, images, owner +history, or prosecution events. + +Workflow: + +1. Normalize the serial number or registration number. +2. Check the current TSDR API instructions and required API-key header. +3. Fetch status first, then documents only if needed. +4. Respect the lower rate limit for PDF, ZIP, and multi-case downloads. +5. Capture retrieval date and serial/registration identifier in the output. + +For large trademark pulls, prefer documented bulk-data flows rather than +screen-scraping public pages. + +## File Wrapper and Prosecution History + +For application status, transaction history, and prosecution documents: + +- Start with ODP Patent File Wrapper search. +- Use exact identifiers when available: application number, publication number, + patent number, or party name. +- Record whether the record is a granted patent, pre-grant publication, or + pending application. +- Cross-check document dates and status against the record detail page before + citing them. + +## Assignment Workflow + +For patent or trademark ownership: + +1. Search official assignment data by patent/application/registration number, + assignor, assignee, or reel/frame when available. +2. Record conveyance text, execution date, recordation date, and parties. +3. Distinguish assignment records from current legal ownership conclusions. +4. If ownership is material, flag the result for attorney or subject-matter + review. + +## Reproducible Output + +Every USPTO research pass should include a log table: + +```markdown +| Source | Date searched | Identifier/query | Filters | Results | Notes | +| --- | --- | --- | --- | ---: | --- | +| PatentSearch | 2026-05-11 | `assignee=Alphabet AND date>=2024` | patent endpoint | 118 | API docs checked before run | +| TSDR | 2026-05-11 | `serial=90000000` | status only | 1 | API-key flow, no document bulk pull | +``` + +For final writeups, separate: + +- official record facts +- inferred analysis +- secondary-source convenience matches +- unresolved gaps or records that require legal review + +## Review Checklist + +- Did you use an official USPTO or USPTO-supported source first? +- Did you verify current endpoint and field names before running code? +- Are API keys kept out of files, shell history, and output logs? +- Does the query log include the date searched and exact request shape? +- Are rate limits respected? +- Are legal conclusions avoided or explicitly escalated? +- Are secondary sources labeled as secondary? + +## References + +- [USPTO APIs catalog](https://developer.uspto.gov/api-catalog) +- [USPTO Open Data Portal](https://data.uspto.gov/) +- [PatentSearch API reference](https://search.patentsview.org/docs/docs/Search%20API/SearchAPIReference/) +- [PatentSearch API updates](https://search.patentsview.org/docs/) +- [TSDR API bulk download FAQ](https://developer.uspto.gov/faq/tsdr-api-bulk-download) diff --git a/skills/scientific-pkg-gget/SKILL.md b/skills/scientific-pkg-gget/SKILL.md new file mode 100644 index 00000000..0808cb8a --- /dev/null +++ b/skills/scientific-pkg-gget/SKILL.md @@ -0,0 +1,166 @@ +--- +name: gget +description: gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs. +origin: community +--- + +# gget + +Use this skill when a task needs quick bioinformatics lookup across genomic +reference databases with the `gget` CLI or Python package. + +## When to Use + +- Finding Ensembl IDs, gene metadata, transcript details, or sequences. +- Running quick BLAST or BLAT lookups without building a full local pipeline. +- Fetching reference genome links and annotations from Ensembl. +- Querying protein structure, pathway, cancer, expression, or disease-association + modules through a single interface. +- Creating a reproducible first-pass evidence log before moving to heavier + tools such as Biopython, Snakemake, Nextflow, BLAST+, or database-specific + clients. + +Use a dedicated workflow instead of `gget` when the task requires regulated +clinical interpretation, high-throughput production pipelines, or fine-grained +control over database versions and local indexes. + +## Installation + +Use a clean Python environment. + +```bash +python -m venv .venv +. .venv/bin/activate +python -m pip install --upgrade pip +python -m pip install --upgrade gget +gget --help +``` + +If `uv` is available: + +```bash +uv venv +. .venv/bin/activate +uv pip install gget +``` + +Before relying on an older environment, upgrade `gget` and re-check the module +docs. The upstream databases queried by `gget` change over time. + +## Basic Patterns + +CLI shape: + +```bash +gget [arguments] [options] +``` + +Python shape: + +```python +import gget + +result = gget.search(["BRCA1"], species="human") +print(result) +``` + +Common workflow: + +1. Identify the species, assembly, gene ID type, and database needed. +2. Check the current module documentation for arguments. +3. Run a small query first. +4. Save output with an explicit filename and date. +5. Record module name, version, arguments, and database assumptions. + +## Common Modules + +Use current upstream docs for exact arguments. These modules are common first +choices: + +- `gget search`: find Ensembl IDs from search terms. +- `gget info`: retrieve metadata for Ensembl, UniProt, or related IDs. +- `gget seq`: fetch nucleotide or amino-acid sequences. +- `gget ref`: retrieve reference genome download links. +- `gget blast`: run a quick BLAST query. +- `gget blat`: locate a sequence against supported genome assemblies. +- `gget muscle`: run multiple sequence alignment. +- `gget diamond`: run local sequence alignment against reference sequences. +- `gget alphafold` and `gget pdb`: inspect protein-structure references. +- `gget enrichr`, `gget opentargets`, `gget archs4`, `gget bgee`, `gget cbio`, + and `gget cosmic`: explore enrichment, target, expression, cancer, and disease + association data. + +Do not assume every module supports every Python version or dependency set. +Some optional scientific dependencies have narrower version support than the +core package. + +## Quick Examples + +Find genes: + +```bash +gget search -s human brca1 dna repair -o brca1-search.json +``` + +Fetch gene metadata: + +```bash +gget info ENSG00000012048 -o brca1-info.json +``` + +Fetch a sequence: + +```bash +gget seq ENSG00000012048 -o brca1-seq.fa +``` + +Run a small BLAST query: + +```bash +gget blast "MEEPQSDPSVEPPLSQETFSDLWKLLPEN" -l 10 -o blast-results.json +``` + +Python example: + +```python +import gget + +genes = gget.search(["BRCA1", "DNA repair"], species="human") +info = gget.info(["ENSG00000012048"]) +sequence = gget.seq("ENSG00000012048") +``` + +## Reproducibility Log + +For scientific outputs, include enough metadata to replay the query. + +```markdown +| Date | gget version | Module | Query | Species/assembly | Output | Notes | +| --- | --- | --- | --- | --- | --- | --- | +| 2026-05-11 | `gget --version` | search | `BRCA1 DNA repair` | human | `brca1-search.json` | Docs checked before run | +``` + +Also record: + +- Python version and environment manager. +- Any optional dependency installed through `gget setup`. +- Database-specific identifiers returned by the query. +- Whether output is JSON, CSV, FASTA, or a DataFrame export. +- Any failures that were resolved by upgrading `gget`. + +## Review Checklist + +- Did you upgrade or verify the installed `gget` version? +- Did you check the current upstream module docs before using arguments? +- Is the species or assembly explicit? +- Are identifiers preserved exactly, including Ensembl/UniProt prefixes? +- Is the result labeled as database output rather than clinical interpretation? +- Is the query reproducible from the saved command or Python snippet? +- Are optional dependencies installed in an isolated environment? + +## References + +- [gget documentation](https://pachterlab.github.io/gget/) +- [gget updates](https://pachterlab.github.io/gget/en/updates.html) +- [gget GitHub repository](https://github.com/pachterlab/gget) +- [gget Bioinformatics paper](https://doi.org/10.1093/bioinformatics/btac836)