Skill Details
Runtime
Any model
Example user message
[userMessage]: - `[YOUR_SKILL]`: "Helps users work with PDF documents. Use this skill whenever the user mentions PDF files." (pasted frontmatter, quoted verbatim) — plus the buyer's note: fills AcroForm fields in an existing PDF using field names and user-supplied values. - `[SIBLING_SKILLS]`: none provided.
Example agent response
**DEMONSTRATION MODE line not needed** — real input detected (pasted frontmatter + buyer note), not empty/placeholder. Running the full pipeline against it.
```
+==================================================================+
| AGENT SKILL TRIGGER ARCHITECT — ANALYSIS REPORT |
| Skill under test: pdf-form-filler Date: 2026-07-21 |
+==================================================================+
```
```
+-- [1] SIGNAL CARD -------------------------------------------------+
| Skill job (1 sentence): When the user wants to fill an existing |
| PDF form, this skill populates its AcroForm fields using field |
| names and user-supplied values. |
| Domain nouns : [PDF, PDF documents, PDF files, AcroForm, fields] |
| Job verbs : [fill, populate, "work with" (vague)] |
| Length check : 89 chars (OK, well under 1024) |
| Vagueness : WARN — quoted description contains no domain verb |
| like "fill" and no artifact term like "AcroForm"/ |
| "form field"; it only says "work with PDF |
| documents" [UNCONF, inferred from the quote] |
+---------------------------------------------------------------------+
```
```
+-- [2] TRIGGER-MAP (POSITIVE) --------------------------------------+
| # | Query family | Example query | Evidence |
|---+----------------------+-------------------------------+----------|
| 1 | Direct command | "fill out this PDF form with | "Helps |
| | | my name and address" | users work|
| | | | with PDF |
| | | | documents"|
| | | | [CONF] |
| 2 | Casual ask | "can you put my info into | UNCONF |
| | | this PDF?" | (buyer |
| | | | note) |
| 3 | Indirect symptom | "this PDF form won't let me | UNCONF |
| | | type in the fields" | |
| 4 | Typo / variant | "fil in the pdf form feilds" | "whenever|
| | | | the user |
| | | | mentions |
| | | | PDF files"|
| | | | [CONF] |
| 5 | Artifact-in-hand | uploads .pdf + "complete | UNCONF |
| | | this for me" | (buyer |
| | | | note) |
+----------------------------------------------------------------------+
```
```
+-- [3] BOUNDARY-LOCK (NEGATIVE) --------------------------------------+
| # | Must-NOT-fire family | Reason | Evidence |
|---+------------------------+---------------------------+--------------|
| 1 | Read/view/summarize | Job fills fields, does | "whenever |
| | PDF ("what does this | not read or describe | the user |
| | PDF say?") | content — but current | mentions PDF |
| | | description fires on ANY | files" [CONF]|
| | | PDF mention — BLOCKING | — over-broad |
| 2 | PDF creation ("create | Job fills existing | UNCONF |
| | a PDF report") | AcroForm fields, does not | (buyer note) |
| | | author new PDFs | |
| 3 | Non-AcroForm / flat | Job requires existing | GAP — |
| | PDFs (no fillable | form fields; description | description |
| | fields) | never mentions AcroForm | never names |
| | | at all | this at all |
| 4 | PDF conversion (to | Wrong artifact operation, | GAP — confirm|
| | Word/image) | outside filling scope | with owner |
| 5 | PDF security/unlock/ | Adjacent domain, wrong | GAP — confirm|
| | password removal | verb entirely | with owner |
| 6 | Merge/split PDFs | Shares "PDF" token but is | "whenever |
| | (near-miss) | a document-assembly verb, | the user |
| | | not a fill verb — current | mentions PDF |
| | | description would still | files" [CONF]|
| | | fire on this | — over-broad |
+------------------------------------------------------------------------+
```
```
+-- [4] COLLISION-SCAN ----------------------------------------------+
| SKIPPED — INPUT ABSENT ([SIBLING_SKILLS] not provided) |
+----------------------------------------------------------------------+
```
```
+-- [5] REWRITTEN DESCRIPTION (≈340 / 1024 chars) ---------------------+
| Fills existing AcroForm fields in a PDF form using provided field |
| names and values. Use when the user wants to enter, populate, or |
| auto-fill data into a PDF's existing form fields (e.g. "fill out |
| this PDF", "put my info in this form", or an uploaded PDF plus |
| values to insert). Do NOT use for: reading or summarizing PDF |
| content, creating new PDFs, merging/splitting/converting PDFs, or |
| removing PDF passwords/security — this skill only writes values |
| into fields that already exist in the document. |
+------------------------------------------------------------------------+
| Changes vs original: |
| + added: "AcroForm", "fields", verbs (fill/populate/auto-fill), |
| explicit negative boundary clause naming 4 near-miss families |
| - removed: "work with PDF documents" (no verb/artifact), "whenever|
| the user mentions PDF files" (matches on bare keyword "PDF") |
+------------------------------------------------------------------------+
```
```
+-- [6] TEST-GATE: 20 QUERIES (verdicts are PREDICTIONS, not runs) ---+
| # | Query | Verdict | Rationale |
|---+----------------------------------------------+------------+-----------|
| 1 | "Fill out this PDF form with my name/address"| ACTIVATE | map #1 |
| 2 | "Can you put my info into this PDF?" | ACTIVATE | map #2 |
| 3 | "This PDF form won't let me type in fields" | ACTIVATE | map #3 |
| 4 | "fil in the pdf form feilds" | ACTIVATE | map #4 |
| 5 | [uploads PDF] "complete this for me" | ACTIVATE | map #5 |
| 6 | "Enter Name=John, DOB=1990 into the PDF's | ACTIVATE | map #1 |
| | fields" | | |
| 7 | "What's the weather today?" | STAY SILENT| unrelated |
| 8 | "Help me write a Python script" | STAY SILENT| unrelated |
| 9 | "Fill out this Excel spreadsheet" | STAY SILENT| wrong |
| | | | artifact |
| 10| "Draft an email to my landlord" | STAY SILENT| unrelated |
| 11| "What's the capital of France?" | STAY SILENT| unrelated |
| 12| "Summarize my meeting notes" | STAY SILENT| unrelated |
| 13| "Summarize what this PDF says" | STAY SILENT| boundary#1|
| 14| "Create a PDF report of my expenses" | STAY SILENT| boundary#2|
| 15| "Merge these three PDFs into one" | STAY SILENT| boundary#6|
| 16| "This PDF is password protected, unlock it?" | STAY SILENT| boundary#5|
| 17| "Convert this PDF to a Word doc" | STAY SILENT| boundary#4|
| 18| "Extract the text from this PDF into a sheet" | STAY SILENT| near boundary#1|
| 19| "This PDF has no fillable fields — can you | AMBIGUOUS | GAP q3 |
| | still add text where the blanks are?" | | (boundary#3)|
| 20| "Fill this PDF form and then email it to my | AMBIGUOUS | GAP — |
| | landlord" | | compound |
| | | | request, |
| | | | scope call|
+--------------------------------------------------------------------------+
| Scorecard (to fill by owner after live execution): |
| predicted vs observed: __/20 match collisions seen: __ |
+--------------------------------------------------------------------------+
```
```
+-- [7] VERDICT --------------------------------------------------------+
| Decision : REWRITE REQUIRED |
| Confidence: [MEDIUM 60-85%] |
| Blocking issues : 1 Patch issues : 3 Gaps : 3 |
| Why REWRITE, not PATCH: the original description ("whenever the user |
| mentions PDF files") is a bare-keyword match with no verb constraint |
| — it fires on read, summarize, merge, convert, and unlock queries, |
| none of which the skill performs. That's severe over-triggering, not |
| a minor boundary gap, so the description itself must be replaced — |
| the Phase 5 rewrite above is that replacement. |
| Next action : paste the rewritten description into SKILL.md |
| frontmatter; owner resolves GAP q3 (does the skill support flat/ |
| non-AcroForm PDFs?) and confirms the PDF-security and PDF-conversion |
| boundary rows, which currently rest on no quoted evidence at all. |
+--------------------------------------------------------------------------+
```
**Activation Matrix (summary):**
```
+-- ACTIVATION MATRIX ---------------------------------------------+
| | MUST FIRE | MUST NOT FIRE | OWNER DECIDES
By purchasing this skill, you agree to our terms of service
Your SKILL.md works — when it fires. Paste your skill in your own words (no prompt syntax to learn) and this fixes the activation layer: rewrites your trigger description, locks positive and negative boundaries, scans sibling skills for collisions, and ships a 20-query trigger test set with a RELEASE / PATCH / REWRITE verdict.
...more
Added 5 days ago
