SnapFX AGENTS.md

Project instructions for SnapFX, including its coding workflow, testing rules, documentation files, and standards for an application with drag-and-drop features.

In plain words
What is it for?
Adding features, fixing bugs with regression tests, running the project checks, and updating relevant project documentation.
Why use it?
They make code changes easier to verify and keep tests, status documents, roadmaps, and release notes aligned with the implementation.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/beowolve/snapfx/agents-md
Clone the repo
git clone --depth 1 https://github.com/Beowolve/SnapFX

Made for: Codex, OpenCode.

Per session 2,010 This file is loaded in full into every session.
When invoked 2,010 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.02010 $0.02010
Opus 5 $0.01005 $0.01005
Sonnet 5 $0.00402 $0.00402
Haiku 4.5 $0.00201 $0.00201

Measured 2d ago against content hash a871ff1e9520, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

SnapFX AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 67 lines

How it starts

The opening of the file, as written. The whole thing — 67 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AI Agent Definitions

These instructions are shared for all AI agents working on this workspace.

Core Workflow

  • Always add or update unit tests for new behavior, bug fixes, or refactors.
  • For bug fixes, first add or update a test that reproduces the issue and verify it fails before implementing the fix.
  • Exception: if a bug is only reproducible via user interaction and cannot be automated yet, document manual reproduction/verification steps and add or improve logging so the failure path is observable.
  • Always run unit tests after code changes when possible (./gradlew test).
  • Always review STATUS.md, DONE.md, and ROADMAP.md after changes and update each file only when the change is relevant to that file's scope (STATUS = current state/open issues, DONE = completed milestones/capabilities, ROADMAP = planned/proposed work).
  • Keep CHANGELOG.md up to date for release-visible changes (Unreleased during development, grouped by tags for releases).
  • Update other *.md files if the change affects their content or accuracy.
  • Keep changes scoped and avoid unrelated edits.
  • After successful changes, prepare a small, focused commit (stage relevant files and propose a commit message).
  • Always git add new files when preparing a commit.
  • Before creating a commit, always show the proposed commit message to the user and get confirmation.
  • Commit-message focus rule: for feature commits, describe the delivered user-visible/technical feature scope (not temporary sprint/phase labels), and do not list intermediate bug fixes encountered during feature development unless the commit is primarily a bug-fix commit.
  • Keep commits minimally mixed: one logical topic/fix per commit; avoid bundling unrelated changes.
  • Default to one commit per fix/feature so changes stay clearly separated and release notes remain precise.
  • For fix commits, use a multi-line commit message body with at least one explanation line per fix.
  • Use git-cliff-compatible commit prefixes in the subject line (feat:, fix:, docs:, test:, refactor:, perf:, ci:, build:, chore:); domain prefixes like floating:, dnd:, ui:, demo: are also allowed when they map to cliff groups.
  • If a fixed collaboration rule is agreed with the user, add it to this AGENTS.md immediately.
  • Treat AGENTS.md as the source of truth for all persistent collaboration rules in this workspace.
  • API-to-settings parity rule: every SnapFX API function must be represented in the MainDemo Settings tab to keep manual verification accessible.
  • Design-decision documentation rule: every significant design/architecture decision must be documented in JavaDoc (API/algorithm intent), in ARCHITECTURE.md (system behavior), and as an ADR file under docs/adr/.
  • JavaDoc completeness rule: for every new or changed public/protected API element (class, method, enum constant, public field), add/update full JavaDoc immediately in the same change (@param, @return, @throws where applicable), run ./gradlew :snapfx-core:javadoc --rerun-tasks, and do not defer missing JavaDoc cleanup to later follow-up work.
  • As soon as a focused, sensible commit is ready, proactively show the proposed commit message without waiting for the user to ask.
  • If MainDemo visuals change (layout, window composition, look and feel, styling, icons, controls), always run ./scripts/update-main-demo-preview.ps1 and include the updated docs/images/main-demo.png.
  • Versioning is controlled by gradle-jgitver in build.gradle.kts; do not reintroduce custom version calculators in the build script.
  • Use tag-driven releases (vX.Y.Z) as the only release source of truth; do not create tags per commit.
  • Maintainability-refactor tagging rule: when roughly half of the planned pre-v1.0.0 maintainability refactor scope is fully completed, create tag v0.7.0; when that refactor scope is fully completed, move project/release baseline to v0.8.0.
  • Naming/package convention rule: except for SnapFX and BuildInfo, framework classes should use the Dock prefix; extracted/refactored implementation types must be placed in thematic packages (for example org.snapfx.shortcuts) instead of a catch-all org.snapfx.internal.snapfx, and related types for one concern should stay co-located in that thematic package.
  • Utility packaging rule: place extracted classes in org.snapfx.util only when they are true cross-domain utilities; otherwise keep them in the most fitting thematic package for their concern.
  • Branch workflow policy: while base implementation is ongoing, work directly on main; once develop exists, integrate features into develop and cut release tags from main after merge.
  • Pre-release compatibility policy: until the first public Maven release, prefer best technical fixes over backward compatibility; breaking API changes are acceptable when they improve correctness/maintainability. After the first Maven release, public API compatibility becomes mandatory unless explicitly planned as a breaking release.
  • Status documentation consistency rule: in STATUS.md, DONE.md, and ROADMAP.md, status bullets must always include a status icon prefix (, 🚧, 📋, 💡, , ⚠️), never plain - Added/Updated/Completed/....
  • Change-history rule: STATUS.md should stay current-state focused; versioned historical details belong in CHANGELOG.md.
  • Status/DONE readability rule: keep STATUS.md as a concise current-state snapshot (no changelog/commit-style bullet history), keep DONE.md at milestone level only, and keep per-test-case breakdowns/count churn out of both files (details belong in CI output, test reports, or CHANGELOG.md when release-relevant).
  • Refactor-progress documentation rule: during ongoing multi-step refactor tracks, do not log each implementation slice in STATUS.md or ROADMAP.md; keep both files high-level and update them at milestone/phase boundaries or when the tracked refactor scope is completed.
  • Changelog style rule: write CHANGELOG.md entries in concise release-note style (grouped outcomes), not as step-by-step internal worklog/task-sequencing bullets.
  • Changelog category rule: structure Unreleased (and new release sections going forward) using git-cliff-style categories in this order (include applicable sections only): Features, Fixes, UI and Interaction, Refactoring, Tests, Documentation, Build and Tooling, Other Changes.
  • Changelog scope rule: do not add AGENTS.md-only collaboration/workflow rule changes to CHANGELOG.md; keep those developer-internal rule updates out of release notes.
  • Markdown encoding rule: preserve UTF-8 and avoid shell text-rewrite commands that can alter Unicode; prefer apply_patch for markdown edits.
  • Temporary-file rule: markdown files matching *_temp.md are local working notes only, must not be committed, and must not be referenced from repository status/history docs.
  • Diff minimization rule: for all file changes, prefer minimal targeted edits and avoid full-file rewrites when smaller diffs are sufficient; only rewrite entire files when explicitly requested or technically required.
  • Logic deduplication rule: when new behavior overlaps existing behavior (for example restore/fallback flows), reuse or extract the existing implementation path instead of re-implementing parallel logic.
  • Unicode escape readability rule: when icon constants use \u... notation in code, add an inline comment showing the rendered icon.

Read the full file on GitHub · 67 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 67 lines · 2,010 tokens per session scan A a871ff1e9520

Subscribe to this mod's changes

SnapFX AGENTS.md is an instructions file published in the GitHub repository Beowolve/SnapFX (22 stars, last pushed 4mo ago), licensed MIT. It adds 2,010 tokens to every session, about $0.0100 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.