Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions plugin/skills/claim-analyzing/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,14 @@ Perform detailed claim analysis by comparing product specification against paten
- Invoke `Skill: investigation-fetching` with request "Get elements for patent <patent-id>"

**2b. Check Feature Coverage for Each Element**:
- For each patent element, invoke `Skill: investigation-fetching` with request "Search feature: <element_label>"
- **If feature NOT found**: Do NOT record as 'absent' automatically
- For each patent element, invoke `Skill: investigation-fetching` with request "Search feature: <element_description>"
- **If feature NOT found**: Do NOT record as 'absent' automatically — collect it
- After checking ALL elements, if any unmatched elements remain, present them to the user in a single batch using `AskUserQuestion` (max 4 questions per call, group by unique functionality — do NOT ask about duplicate capabilities across patents)
- Check test environment: `echo $SKILL_BENCH_TEST_CASE`
- **If SKILL_BENCH_TEST_CASE is set** (testing mode): Use `Skill: skill-bench-harness:question-responder` with "Does the product have this feature: <element_description>?"
- **If SKILL_BENCH_TEST_CASE is set** (testing mode): Use `Skill: skill-bench-harness:question-responder` for each unmatched element
- **If SKILL_BENCH_TEST_CASE is NOT set** (normal mode): Use `AskUserQuestion` tool
- If positive: Invoke `Skill: investigation-recording` to record feature with `presence='present'`
- If negative: Invoke `Skill: investigation-recording` to record feature with `presence='absent'`
- If positive: Invoke `Skill: investigation-recording` to record feature with `presence='present'`
- If negative: Invoke `Skill: investigation-recording` to record feature with `presence='absent'`

**2c. Comparison Analysis**:
- Compare product features against patent elements
Expand Down
13 changes: 10 additions & 3 deletions plugin/skills/evaluating/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,16 @@ Analyze screened patents by decomposing claims into elements and storing analysi
```

4. **Analyze and Record Elements** (for each patent — LLM interpretation task):
- Read claims from the DB: `sqlite3 patents.db "SELECT claim_number, claim_text FROM claims WHERE patent_id = '<patent_id>'"`
- For EACH claim, decompose into constituent elements (A, B, C...)
- Invoke `Skill: investigation-recording` with request "Record elements for patent <patent-id>: <elements_data>"
- For EACH claim (independent AND dependent), execute the following:
1. Read ONLY that claim: `sqlite3 patents.db "SELECT claim_number, claim_text FROM claims WHERE patent_id = '<patent_id>' AND claim_number = <number>"`
2. Decompose into constituent elements based on the means/steps described in the claim text
3. Invoke `Skill: investigation-recording` with request "Record elements for patent <patent-id>: <elements_data>"

**CRITICAL Rules for Element Decomposition**:
- Read claims ONE AT A TIME — do NOT read all claims with `SELECT ... WHERE patent_id = ...`
- Do NOT reference `specification.md` during decomposition — decompose based on claim text alone
- Cut elements by the number of means/steps in the claim — do NOT force a specific number of elements
- Decompose ALL claims including dependent claims — do not skip dependent claims

5. **Verify Results**: Confirm all claims and elements are recorded in the database

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Search Feature

Searches for a specific feature by name in the database.
Searches for a matching feature by keyword against both feature name and description.

## SQL Query

Expand All @@ -12,13 +12,19 @@ SELECT
category,
presence
FROM features
WHERE feature_name = '<feature_name>';
WHERE feature_name LIKE '%<search_term>%' OR description LIKE '%<search_term>%';
"
```

## Parameters

| Parameter | Type | Description |
| ----------- | ---- | ---------------------------------------------------- |
| search_term | TEXT | Keyword to match against feature_name or description |

## Output Format

Single feature record if found:
Matching feature records:

```json
[
Expand Down
7 changes: 7 additions & 0 deletions plugin/skills/screening/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ Filter collected patents by legal status and relevance to prepare for evaluation
- If a reference is "borderline", mark it as 'relevant' rather than 'irrelevant'
- Missing a risk is worse than reviewing an extra document

**No Shortcut Judgment**:

- You MUST fetch each patent and read the `abstract_text` before making a judgment
- Do NOT judge relevance based on title alone — titles can be misleading or too generic
- Do NOT skip fetching patents to speed up processing
- Every patent must go through the full fetch → read abstract → judge → record flow

**Skill-Only Database Access**:

- Use `investigation-recording` skill for elements recording (LLM interpretation task)
Expand Down
Loading