Skip to content

feat: add llmfill skill — AI Word form filling - #3021

Open
niuhuluzhihao wants to merge 1 commit into
github:mainfrom
niuhuluzhihao:add-llmfill-skill
Open

feat: add llmfill skill — AI Word form filling#3021
niuhuluzhihao wants to merge 1 commit into
github:mainfrom
niuhuluzhihao:add-llmfill-skill

Conversation

@niuhuluzhihao

Copy link
Copy Markdown

What this adds

A new llmfill Agent Skill that auto-fills .docx forms, questionnaires, surveys, and templates using reference documents, a private knowledge base (RAG), web search, or pure LLM generation. Built for document-automation and batch form-completion workflows: DDQs, due diligence, compliance, HR, and application forms.

Why

Form-filling is a repetitive, document-heavy task that benefits from bundled resources — a stdlib-only Python CLI, reference docs, and worked examples — which is exactly the progressive-disclosure shape Agent Skills are designed for. The skill wraps the LLMFill service behind a minimal-permission CLI so a Copilot coding agent can fill forms end-to-end (upload -> poll -> download -> report cost) without leaving its session.

What's included

skills/llmfill/
├── SKILL.md                 # on-demand instructions + machine-readable permissions frontmatter
├── scripts/
│   ├── llmfill.py            # Python 3.10+ stdlib-only CLI entrypoint
│   ├── api_client.py         # HTTP client (multipart, polling, error parsing)
│   └── config.py             # config store (~/.llmfill/config.json, 600 perms)
├── references/
│   ├── api-documents.md      # document fill API
│   ├── api-knowledge.md      # knowledge base API
│   ├── api-account.md        # account / config / whoami
│   ├── curl-guide.md         # curl-only path when Python is unavailable
│   └── errors.md             # unified error code table
├── examples/
│   ├── fill-a-form.md        # end-to-end fill walkthrough (with polling)
│   └── build-kb.md           # knowledge-base create + ingest walkthrough
└── tests/
    └── test_llmfill.py        # script-layer tests (network monkeypatched)

All bundled assets are well under the 5 MB per-asset limit (largest is ~36 KB).

Validation

  • npm run skill:validatellmfill passes; all 419 skills valid
  • npm run build (npm start) — docs/README.skills.md updated with the llmfill row
  • Re-ran npm start to confirm idempotency (no further diff)
  • Folder name llmfill matches name: in SKILL.md frontmatter
  • description is within the 10–1024 char limit
  • Branch cut from main (not staged)
  • PR targets main

Usage notes

  • The skill calls a single default endpoint (https://www.llmfill.com); custom endpoints require explicit user approval (fail-closed, persisted to approved_origins).
  • API tokens (aif_-prefixed) are long-lived credentials configured by the user in ~/.llmfill/config.json (600 perms); the agent never touches the token in interactive flows.
  • Documents are uploaded to the remote service for processing — the skill prompts for user confirmation before uploading sensitive material.

Test plan

  • gh skills install github/awesome-copilot llmfill installs cleanly (after merge)
  • python scripts/llmfill.py --help prints available subcommands
  • python scripts/llmfill.py whoami (with a configured token) returns account/quotas
  • pytest skills/llmfill/tests/ passes locally (network monkeypatched)

🤖🤖🤖

🤖🤖🤖

Add a self-contained skill that auto-fills .docx forms, questionnaires,
surveys, and templates using reference documents, a knowledge base,
or web search. Targets DDQs, due diligence, compliance, and batch
form-completion workflows.

Structure (skills/llmfill/):
- SKILL.md — on-demand instructions, minimal-permission frontmatter
- scripts/llmfill.py — Python 3.10+ stdlib-only CLI (fill, kb, whoami)
- scripts/api_client.py, config.py — API client + config (600 perms)
- references/ — API docs, curl guide, error codes
- examples/ — end-to-end fill + build-kb walkthroughs
- tests/test_llmfill.py — script-layer tests (network monkeypatched)

Updates docs/README.skills.md via npm run build (idempotent re-run clean).
@github-actions github-actions Bot added new-submission PR adds at least one new contribution skills PR touches skills labels Sep 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔒 PR Risk Scan Results

Scanned 12 changed file(s).

Severity Count
🔴 High 0
🟠 Medium 0
ℹ️ Info 4
Severity Rule File Line Match
ℹ️ skill-script-touched skills/llmfill/scripts/api_client.py 1 skills/llmfill/scripts/api_client.py
ℹ️ skill-script-touched skills/llmfill/scripts/config.py 1 skills/llmfill/scripts/config.py
ℹ️ skill-script-touched skills/llmfill/scripts/llmfill.py 1 skills/llmfill/scripts/llmfill.py
ℹ️ skill-script-touched skills/llmfill/tests/test_llmfill.py 1 skills/llmfill/tests/test_llmfill.py

This is an automated soft-gate report. Findings indicate review targets and do not block merge by themselves.

@github-actions

Copy link
Copy Markdown
Contributor

🔍 Vally Lint Results

✅ All checks passed

Scope Checked
Skills 1
Agents 0
Total 1
Severity Count
❌ Errors 0
⚠️ Warnings 0
ℹ️ Advisories 0

Summary

Level Finding
ℹ️ ✅ llmfill (2/2 checks passed)
ℹ️ ✓ [spec-compliance] All 1 skill(s) are spec-compliant.
ℹ️ ✓ spec-compliance: All spec checks passed.
ℹ️ ✓ [valid-refs] All file references across 1 skill(s) are valid.
ℹ️ ✓ valid-refs: All file references resolve to existing files within the skill directory.
ℹ️ 1 skill(s) linted, 1 passed
Full linter output
### Linting skills/llmfill
✅ llmfill (2/2 checks passed)
    ✓ [spec-compliance] All 1 skill(s) are spec-compliant.
        ✓ spec-compliance: All spec checks passed.
    ✓ [valid-refs] All file references across 1 skill(s) are valid.
        ✓ valid-refs: All file references resolve to existing files within the skill directory.

1 skill(s) linted, 1 passed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-submission PR adds at least one new contribution skills PR touches skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant