Skip to content
Legal
Skill

/jurisdiction

Use when applying CN, US, or PCT patent jurisdiction rules, claim formats, procedures, or timelines.

From plugin
oh-my-patent
1167 skills14 agents9 commands

Claude Code

$ npx -y skills add illusionaireal/oh-my-patent --skill jurisdiction --agent claude-code

SKILL.md

jurisdiction.SKILL.md
name: jurisdiction
description: Use when applying CN, US, or PCT patent jurisdiction rules, claim formats, procedures, or timelines.

Jurisdiction Rules Skill

Provides patent jurisdiction rules for CN, US, and PCT: examination type and default timeline, fee schedule, jurisdiction-specific requirements, claim format, and the examination timeline range.

> This file documents the **actual** exports of `src/skills/jurisdiction.ts`. > Every symbol, field name and number below is taken from that file. If you change > the implementation, change this document in the same commit — this document used > to describe an API that never existed, which is worse than having none.

Usage

The implementation is `src/skills/jurisdiction.ts`. From inside this skill's directory the relative import is `../jurisdiction.js`; consumers outside the package should import from the package entry, which re-exports all seven symbols (`src/index.ts`).

import { getJurisdictionRules, JurisdictionCode } from '../jurisdiction.js';

const rules = getJurisdictionRules(JurisdictionCode.CN);

Exports

| Export | Kind | Notes | | --- | --- | --- | | `JurisdictionCode` | enum | `CN` / `US` / `PCT` — the only supported values | | `JurisdictionRules` | interface | see Output Types | | `ClaimFormat` | interface | see Output Types | | `ExaminationTimeline` | interface | see Output Types | | `getJurisdictionRules(code)` | function | throws on an unsupported code | | `getClaimFormat(code)` | function | throws on an unsupported code | | `getExaminationTimeline(code)` | function | throws on an unsupported code |

Supported Jurisdictions

CN (中国)

  • **Country**: 中国
  • **Examination Type**: 实质审查
  • **Default Timeline**: 24 months
  • **Examination Timeline**: 18–36 months (typical 24)
  • **Claim Format**: `一种[产品/方法],其特征在于,包括:[技术特征]`
  • **Dependent Claim Prefix**: `根据权利要求[N]所述的[产品/方法],其特征在于`
  • **Multiple Dependent Claims**: not allowed; max 10 claims
  • **Fees**: filing 950 / examination 2500 / grant 200 / maintenance 900
  • **Special Requirements**: Chinese language required / National phase entry required for PCT / Grace period: 6 months for disclosure

US (United States)

  • **Country**: United States
  • **Examination Type**: Substantive Examination
  • **Default Timeline**: 36 months
  • **Examination Timeline**: 24–48 months (typical 36)
  • **Claim Format**: `A [product/method] comprising: [technical features]`
  • **Dependent Claim Prefix**: `The [product/method] of claim [N], wherein`
  • **Multiple Dependent Claims**: allowed; max 20 claims
  • **Fees**: filing 300 / examination 700 / grant 1000 / maintenance 12000
  • **Special Requirements**: First to file system / 12-month grace period / Provisional applications available

PCT (Patent Cooperation Treaty)

  • **Country**: PCT International
  • **Examination Type**: International Search and Examination
  • **Default Timeline**: 30 months
  • **Examination Timeline**: 12–30 months (typical 18)
  • **Claim Format**: `A [product/method] comprising: [technical features]`
  • **Dependent Claim Prefix**: `The [product/method] of claim [N], wherein`
  • **Multiple Dependent Claims**: allowed; max 10 claims
  • **Fees**: filing 2500 / examination 2200 / grant 0 / maintenance 0
  • **Special Requirements**: 30-month national phase entry / International Search Report included / International Preliminary Examination optional

Examples

Example 1: jurisdiction rules

import { getJurisdictionRules, JurisdictionCode } from '../jurisdiction.js';

const cnRules = getJurisdictionRules(JurisdictionCode.CN);

console.log(cnRules.code);             // "CN"
console.log(cnRules.country);          // "中国"
console.log(cnRules.examinationType);  // "实质审查"
console.log(cnRules.defaultTimeline);  // 24
console.log(cnRules.fees.filing);      // 950
console.log(cnRules.specialRequirements);
// ["Chinese language required", "National phase entry required for PCT", "Grace period: 6 months for disclosure"]

Example 2: examination timeline

The timeline is **not** a field of `JurisdictionRules` — it has its own getter.

import { getExaminationTimeline, JurisdictionCode } from '../jurisdiction.js';

const cn = getExaminationTimeline(JurisdictionCode.CN);
console.log(cn.minMonths, cn.maxMonths, cn.typical); // 18 36 24

const us = getExaminationTimeline(JurisdictionCode.US);
console.log(us.minMonths, us.maxMonths, us.typical); // 24 48 36

const pct = getExaminationTimeline(JurisdictionCode.PCT);
console.log(pct.minMonths, pct.maxMonths, pct.typical); // 12 30 18

Example 3: claim format

import { getClaimFormat, JurisdictionCode } from '../jurisdiction.js';

const cn = getClaimFormat(JurisdictionCode.CN);
console.log(cn.independentClaimTemplate);
// "一种[产品/方法],其特征在于,包括:[技术特征]"
console.log(cn.dependentClaimPrefix);
// "根据权利要求[N]所述的[产品/方法],其特征在于"
console.log(cn.multipleDependentClaims, cn.maxClaims); // false 10

const us = getClaimFormat(JurisdictionCode.US);
console.log(us.multipleDependentClaims, us.maxClaims); // true 20

Example 4: validating a jurisdiction code

There is **no** `isValidJurisdiction()` helper. The getters throw on an unsupported value, so validation means checking membership before calling them:

import { JurisdictionCode, getJurisdictionRules } from '../jurisdiction.js';

const SUPPORTED = Object.values(JurisdictionCode) as string[];

function isValidJurisdiction(value: string): value is JurisdictionCode {
  return SUPPORTED.includes(value);
}

isValidJurisdiction('CN');  // true
isValidJurisdiction('XX');  // false

// Unsupported codes throw rather than returning a default:
// getJurisdictionRules('XX' as JurisdictionCode)  ->  Error: Unsupported jurisdiction: XX

Note that this skill covers CN, US and PCT only. These are the workflow's only supported jurisdictions: the single definition is the `JurisdictionCode` enum in `src/skills/jurisdiction.ts` (exported as `SUPPORTED_JURISDICTIONS` / guard

Read more
@illusionaireal
Ships withoh-my-patent

<img src="./assets/brand/png/logo-primary.png" width="720" alt="oh-my-patent — Archimedes raising a patent document with a WOW! expression"> Meet Archimedes. Turn your “Eureka!” into a patent disclosure.

1167 skills14 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
116
Star history of illusionaireal/oh-my-patent on GitHub, a chart by star-history.com

Other skills on oh-my-patent.

oh-my-patent

oh-my-patent

Turn technical ideas or source materials into traceable patent disclosures; search planning, patent review, figures and project…

More skills from other plugins.

agent-email

agent-email

Agent 专用邮箱统一管理:让 Claude Code、Codex 等平台的 Agent 用一套命令收发邮件、整理收件箱、分发任务。支持网易 ClawEmail(claw.163.com)和腾讯 Agent Mail(QQ…

@cat-xierluo@cat-xierluoInstall Skill

Questions about jurisdiction.

Which coding agents can use jurisdiction?
jurisdiction installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.