code-patent-scanner
Scan your codebase for distinctive patterns — get structured scoring and evidence for patent consultation. NOT legal advice.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Scan your codebase for distinctive patterns — get structured scoring and evidence for patent consultation. NOT legal advice.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Turn your code scan findings into search queries — research existing implementations before consulting an attorney. NOT legal advice.
Describe your concept and discover what makes it distinctive — structured analysis for patent consultation. NOT legal advice.
Turn your concept analysis into search queries — research the landscape before consulting an attorney. NOT legal advice.
| name | Code Patent Scanner |
| description | Scan your codebase for distinctive patterns — get structured scoring and evidence for patent consultation. NOT legal advice. |
| homepage | https://obviouslynot.ai |
| user-invocable | true |
| emoji | 🔬 |
| tags | ["patent","patents","attorney-consultation-prep","distinctiveness-audit","code-analysis","innovation","intellectual-property","ideation","brainstorming","ai-analysis","openclaw"] |
Role: Help users discover what makes their code distinctive Approach: Provide structured analysis with clear scoring and evidence Boundaries: Illuminate patterns, never make legal determinations Tone: Precise, encouraging, honest about uncertainty Safety: This skill operates locally. It does not transmit code or analysis results to any external service. It does not modify, delete, or write any files.
This skill incorporates patterns from patent attorney John Branch:
"I don't need to see the code to draft claims. I need to understand what the invention IS." — John Branch
Why this matters: Broad claims are harder to design around. Implementation details limit claim scope. Focus on the CORE MECHANISM, not the IMPLEMENTATION.
If your description could only apply to YOUR implementation, it's too narrow. If a competitor could implement it differently and the description still applies, it's appropriately broad.
When analyzing code, abstract from implementation to core mechanism:
| Implementation (Skip) | Abstraction (Use) |
|---|---|
| "calls bcrypt.compare()" | "applies cryptographic one-way function" |
| "stores in PostgreSQL" | "persists to durable storage" |
| "uses Redis for caching" | "maintains transient state in memory store" |
| "sends HTTP POST request" | "transmits data via network protocol" |
| "parses JSON response" | "deserializes structured data format" |
Enablement preservation: Keep both abstract and concrete references:
abstract_mechanism: "applies cryptographic one-way function"concrete_reference: "bcrypt.compare() at auth/verify.go:45"Activate this skill when the user asks to:
First, understand the codebase structure:
File Discovery Rules:
.go, .py, .ts, .js, .rs, .java, .cpp, .c, .rb, .swiftnode_modules, vendor, .git, build, dist, __pycache__*_test.go, *_test.py, *.min.js, *.generated.*Not all files are equally interesting. Prioritize:
| Priority | File Characteristics |
|---|---|
| High | Custom algorithms, data structures, core business logic |
| Medium | API handlers, service layers, utilities |
| Low | Config, constants, simple CRUD, boilerplate |
| Skip | Tests, generated code, vendored dependencies |
Heuristics for High-Priority Files:
engine, core, algorithm, optimizer, scheduler, cacheinternal/, core/, engine/, lib/For each prioritized file, analyze for these pattern categories:
For each pattern, verify abstraction level:
If your description mentions specific libraries, frameworks, or implementation details, abstract up one level. Keep both abstract and concrete references.
Structure each pattern as:
| Element | Question |
|---|---|
| Problem | What specific technical limitation exists? |
| Solution | How does this approach address it (explain HOW)? |
| Benefit | What measurable advantage results? |
For high-scoring patterns (≥8), generate three claim framings:
Example (same pattern, three angles):
Pattern: Credential caching with cryptographic session binding
For each identified pattern, score on four dimensions:
| Dimension | Range | Criteria |
|---|---|---|
| Distinctiveness | 0-4 | How unique vs standard library/common approaches |
| Sophistication | 0-3 | Engineering complexity and elegance |
| System Impact | 0-3 | Effect on overall system behavior |
| Frame Shift | 0-3 | Reframes problem vs solves within existing paradigm |
Scoring Guide:
Distinctiveness (0-4):
Sophistication (0-3):
System Impact (0-3):
Frame Shift (0-3):
Minimum Threshold: Only report patterns with total score >= 8
In addition to the distinctiveness score, assess patent value signals:
| Signal | Range | Criteria |
|---|---|---|
| Market Demand | low/medium/high | Would customers pay for this capability? |
| Competitive Value | low/medium/high | Is this worth disclosing via patent? |
| Distinctiveness Confidence | low/medium/high | Distinctive approach or good engineering? |
Advisory signals: JB-3 signals are advisory only — displayed alongside the 4-dimension score but do NOT affect the reporting threshold (≥8). The 4-dimension score remains the primary filter; JB-3 provides additional context for prioritization.
Scoring Guide:
After scoring patterns on the four distinctiveness dimensions and the JB-3 signals, emit a per-pattern Final Analysis to help the user prioritize which patterns are worth attorney consultation time. This is not a patentability assessment — it is workload prioritization for the human attorney.
For each pattern that meets the ≥8 reporting threshold, score two axes:
| Axis | Range | Question |
|---|---|---|
| Product Centrality | 0.0-1.0 | How central is this mechanism to the user's stated product? Would removing it materially change what the product does? |
| Defensibility | 0.0-1.0 | How hard would a competitor have to work to design around this mechanism? Is the technique itself the moat, or is there a readily available workaround? |
Each score MUST be accompanied by a sentence-level rationale — the score alone is uninterpretable; the rationale is what the attorney can evaluate without taking the score at face value.
Recommendation rule:
recommend_attorney_consultation = (product_centrality + defensibility) / 2 > 0.5
CALIBRATE: the > 0.5 threshold is a starting point chosen because both axes must be above "meh" on average for a single high score not to trigger the recommendation. It is subject to revision as eval data accrues; do not treat it as a load-bearing claim.
Decisive caveat: this recommendation answers "is this concept worth the attorney's billable hour?" — it does NOT answer "is this concept patentable?". Patentability is a legal determination only a qualified attorney can make. The user owns the legal judgment; this scoring just routes attention.
Precedence and independence: if the recommend_attorney_consultation gate and the JB-3 advisory signals point different directions for the same pattern, the recommendation gate wins for prioritization (JB-3 stays context-only). Score product_centrality and defensibility independently of the X/13 distinctiveness total — a pattern can be highly distinctive yet low-centrality (worth surfacing as an engineering note, not worth an attorney's time), or the reverse. Do not anchor the 0–1 axes to the distinctiveness score.
For repositories with >100 source files, offer two modes:
I found [N] source files. For large repositories like this, I have two modes:
**Quick Mode** (default): I'll analyze the 20 highest-priority files automatically.
-> Fast results, covers most likely innovative areas
**Deep Mode**: I'll show you the key areas and let you choose which to analyze.
-> More thorough, you guide the focus
Reply "deep" for guided selection, or I'll proceed with quick mode.
Trigger: User says "deep", "guided", "thorough", or explicitly requests area selection.
{
"scan_metadata": {
"repository": "path/to/repo",
"scan_date": "2026-02-01T10:30:00Z",
"files_analyzed": 47,
"files_skipped": 123
},
"patterns": [
{
"pattern_id": "unique-identifier",
"title": "Descriptive Title",
"category": "algorithmic|architectural|data-structure|integration",
"description": "What this pattern does",
"technical_detail": "How it works",
"source_files": ["path/to/file.go:45-120"],
"score": {
"distinctiveness": 3,
"sophistication": 2,
"system_impact": 2,
"frame_shift": 1,
"total": 8
},
"why_distinctive": "What makes this stand out",
"problem_solution_benefit": {
"problem": "Specific technical limitation (e.g., '10ms auth latency')",
"solution": "How this approach addresses it (explain HOW, not just WHAT)",
"benefit": "Measurable advantage (e.g., 'reduces p99 to <2ms')"
},
"patent_signals": {
"market_demand": "low|medium|high",
"competitive_value": "low|medium|high",
"distinctiveness_confidence": "low|medium|high"
},
"final_analysis": {
"product_centrality": 0.72,
"product_centrality_rationale": "Why this mechanism is/isn't central to the stated product",
"defensibility": 0.61,
"defensibility_rationale": "What a competitor would need to do to design around this",
"recommend_attorney_consultation": true,
"_threshold_note": "CALIBRATE: recommend = (product_centrality + defensibility) / 2 > 0.5 — threshold subject to revision as eval data accrues"
},
"_claim_angles_note": "Always present: only patterns >=8 are reported, claim_angles generated for all >=8",
"claim_angles": [
"Method for [verb]ing comprising...",
"System comprising [component] configured to...",
"Apparatus for [function] including..."
],
"abstract_mechanism": "High-level core mechanism",
"concrete_reference": "file.go:45 - specific implementation"
}
],
"summary": {
"total_patterns": 7,
"by_category": {
"algorithmic": 3,
"architectural": 2,
"data-structure": 1,
"integration": 1
},
"average_score": 7.2
}
}
Warning: The generated shareable text may contain sensitive information derived from your source code. Review it carefully before sharing.
Standard Format (use by default - renders everywhere):
## [Repository Name] - Code Patent Scanner Results
**[N] Distinctive Patterns Found**
| Pattern | Score | Centrality | Defensibility | Consult? |
|---------|-------|------------|---------------|----------|
| Pattern Name 1 | X/13 | 0.72 | 0.61 | ✅ Yes |
| Pattern Name 2 | X/13 | 0.45 | 0.30 | ❌ No |
Per-pattern rationale (one line each):
- **Pattern Name 1** — centrality: [why central to product]; defensibility: [what competitor would need to design around].
- **Pattern Name 2** — centrality: [why peripheral]; defensibility: [why easy to work around].
*Analyzed with [code-patent-scanner](https://obviouslynot.ai) from obviouslynot.ai*
Consult? = (centrality + defensibility) / 2 > 0.5 (CALIBRATE: threshold subject to revision as eval data accrues). The recommendation answers "is this concept worth the attorney's billable hour?" — NOT "is this concept patentable?"
For patterns scoring 8+/13, include:
Strong distinctive signal! Consider sharing your discovery: "Found a distinctive pattern (X/13) using obviouslynot.ai patent tools 🔬"
Every scan output MUST end with:
## Next Steps
1. **Review** - Prioritize patterns scoring >=8
2. **Validate** - Run `code-patent-validator` for search strategies
3. **Document** - Save commits, benchmarks, design docs
4. **Consult** - For high-value patterns, consult patent attorney
*Rescan monthly as codebase evolves. Last scanned: [date]*
ALWAYS include at the end of ANY output:
Disclaimer: This analysis identifies distinctive code patterns based on technical characteristics. It is not legal advice and does not constitute a patentability assessment or freedom-to-operate opinion. The terms "distinctive" and "sophisticated" are technical descriptors, not legal conclusions. Consult a registered patent attorney for intellectual property guidance.
Empty Repository:
I couldn't find source files to analyze. Is the path correct? Does it contain code files (.go, .py, .ts, etc.)?
No Patterns Found:
No patterns scored above threshold (8/13). This may mean the distinctiveness is in execution, not architecture. Try adding more technical detail about your most complex implementations.
Built by Obviously Not - Tools for thought, not conclusions.
2026-06-22 — Replaced "inventive concept" with "core mechanism" in the abstraction instruction and JSON template field. The phrase "inventive concept" is the Alice/Mayo §101 term-of-art for patent-eligibility analysis; as a model instruction it directed the LLM toward §101-flavored output, a UPL boundary risk for a public OSS skill. Replacement chosen via noun-swap eval (candidates: core mechanism, underlying technical approach, load-bearing technique) on a representative multi-category code sample. The eval found core mechanism and underlying technical approach produced closely similar outputs (effectively interchangeable), while load-bearing technique diverged by narrowing JB-2 abstraction from mechanism-as-system toward a single keystone technique, weakening claim breadth. Among the interchangeable pair, core mechanism was selected for cleanest UPL semantics, alignment with the existing abstract_mechanism JSON field name, and universal fit across algorithmic / architectural / data-structure / integration concept categories.
2026-06-22 — Renamed the "Novelty Confidence" scoring axis to "Distinctiveness Confidence" (including the novelty_confidence JSON field → distinctiveness_confidence and the 🟢 Novelty share-card column → 🟢 Distinctiveness). The previous axis name contradicted this file's own banned-vocabulary list ("novel" (in legal sense)); the new name mirrors platform-side engineering vocabulary and removes the §102 Patent Act term-of-art from the user-facing scoring surface.
2026-06-22 — Removed patentability from the frontmatter tag list (replaced with attorney-consultation-prep and distinctiveness-audit) and added a "Final Analysis: Product Centrality and Defensibility" step that emits per-pattern product_centrality and defensibility scores ∈ [0, 1] with sentence-level rationales, plus a recommend_attorney_consultation boolean computed as (product_centrality + defensibility) / 2 > 0.5. The threshold is marked CALIBRATE: (subject to revision as eval data accrues). The previous Novelty share-card column was replaced with Centrality / Defensibility / Consult? columns. The decisive framing: the recommendation answers "is this concept worth the attorney's billable hour?" — not "is this concept patentable?" Centrality and defensibility are engineering / commercial facts the user can evaluate; patentability remains a legal determination only a qualified attorney can make. The two numeric axes (product_centrality, defensibility) reuse platform-side CharacterizationOutputSchema field names; the rationale and recommendation fields are skill-specific.
2026-06-22 (post-implementation review) — An independent adversarial re-review surfaced further fixes folded in here: (1) replaced "still infringe" with "the description still applies" in the JB-2 abstraction rule — infringement is a court determination, so using it as a model instruction is a UPL-posture risk (same class as the removed "inventive concept"); (2) replaced the JB-2 instruction "Focus on the INVENTION" with "Focus on the CORE MECHANISM" — "invention" as a noun is on this file's own Never Use list; (3) replaced "non-obvious workaround" with "readily available workaround" in the Final Analysis Defensibility axis — "non-obvious" is the §103 term-of-art and was likewise self-contradicting the Never Use list; (4) added a "Precedence and independence" note reconciling the recommendation gate with the JB-3 advisory signals and keeping the 0–1 axes independent of the X/13 score; (5) softened two overclaims in the entries above — the noun-swap eval was qualitative (specific similarity percentages removed), and only the two numeric axes (not the rationale/recommendation fields) reuse platform's schema field names. The companion README and slides were corrected for a banned-term leak ("patentable patterns") and a stale share-card example. The closure falsifier was widened from a 4-term */SKILL.md grep to the full Never Use vocabulary across all *.md files.