Skip to content
Back to skills

028 Agents 59c40ecb

ASecurity

This repo contains an Agent Skill for analyzing FEC (Federal Election Commission) campaign finance filings.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationpythongobashtestinggitapi

Works with

  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 028-agents_59c40ecb --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 028 Agents 59c40ecb?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 028 Agents 59c40ecb
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-028-agents-59c40ecb/badge)](https://www.skillsdirectory.com/skills/tools-only-028-agents-59c40ecb)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Agent Skill: fecfile

This repo contains an Agent Skill for analyzing FEC (Federal Election Commission) campaign finance filings.

## Key Details

- **Skill name**: `fecfile`
- **Dependencies**: `fecfile` - managed via inline script metadata (PEP 723), auto-installed by `uv run`
- **Data source**: FEC API at `docquery.fec.gov`
- **Python**: Requires 3.9+

## Project Structure

- `skills/fecfile/` - The skill itself
  - `SKILL.md` - Main skill entrypoint and usage guide
  - `references/FORMS.md` - Reference for FEC form types (F1, F2, F3, F99)
  - `references/SCHEDULES.md` - Field mappings for Schedules A, B, C, D, E
  - `scripts/fetch_filing.py` - Fetches FEC filing data via the fecfile library
- `README.md` - Installation and usage for end users

## Development Commands

- `uv run skills/fecfile/scripts/fetch_filing.py <FILING_ID>`: Fetch a full filing as JSON.
- `uv run skills/fecfile/scripts/fetch_filing.py <FILING_ID> --summary-only`: Summary only, no itemizations.
- `uv run skills/fecfile/scripts/fetch_filing.py <FILING_ID> --schedule A`: Limit to a single schedule.
- `uv run skills/fecfile/scripts/fetch_filing.py <FILING_ID> --stream`: JSONL streaming for large filings.

## Coding Style & Naming Conventions

- Python uses 4-space indentation and standard library `argparse` conventions.
- Keep functions small and descriptive (e.g., `build_options`, `stream_filing`).
- Prefer straightforward, readable logic over clever abstractions.
- No formatter is enforced; keep code PEP 8–friendly and consistent with `fetch_filing.py`.

## Testing Guidelines

- There is no automated test suite in this repository.
- Validate changes manually by running the script with a known filing ID.
- For large filings, verify `--summary-only` or `--stream` behavior to avoid memory issues.

## Releases

Releases use semver tags (e.g., `1.0.0`) plus a `latest` tag that always points to the most recent stable release.

### Release Process

1. Update the version in `skills/fecfile/SKILL.md` frontmatter:
   ```yaml
   metadata:
     author: Matt Hodges
     version: "1.1.0"
   ```
2. Update `CHANGELOG.md`:
   - Add a new section at the top (below the header) for the new version
   - Use the format `## [X.Y.Z] - YYYY-MM-DD`
   - Document changes under `### Added`, `### Changed`, `### Fixed`, or `### Removed` as appropriate
   - Add a comparison link at the bottom: `[X.Y.Z]: https://github.com/hodgesmr/agent-fecfile/compare/PREV...X.Y.Z`
3. Commit the version bump and changelog update
4. Run the release script:
   ```bash
   ./release.sh
   ```

The script extracts the version from SKILL.md, creates the version tag, updates the `latest` tag, and pushes both.

## Acknowledgments

- Built on the [fecfile](https://github.com/esonderegger/fecfile) library by Evan Sonderegger
- Inspired by [llm-fecfile](https://github.com/dwillis/llm-fecfile) by Derek Willis

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.