Borrowing it
Nothing to install: this file belongs to vanillagreencom/kendex. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/vanillagreencom/kendex/main/.agents/skills/app-deploy/SKILL.mdgit clone --depth 1 https://github.com/vanillagreencom/kendexWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/vanillagreencom/kendex/app-deploy)<a href="https://agentmods.dev/skills/vanillagreencom/kendex/app-deploy"><img src="https://agentmods.dev/badge/skills/vanillagreencom/kendex/app-deploy/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/vanillagreencom/kendex/app-deploy"><img src="https://agentmods.dev/badge/skills/vanillagreencom/kendex/app-deploy.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00019 | $0.03639 |
| Opus 5.5 | $0.00008 | $0.01456 |
| Sonnet 5.5 | $0.00004 | $0.00728 |
| Haiku 4.5 | $0.00002 | $0.00364 |
Grade C, and why
app-deploy scanned grade C with 1 finding 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 9d 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.
Hidden instructionshighPrompt injection
Directives inside HTML comments, invisible characters or bidirectional overrides are read by the model and not by the person reviewing the file.
<!-- kendex:project-instructions:start --> How it starts
The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Project Instructions
Problems with a kendex-owned skill go through kendex report; check ownership in the file first.
Release kendex
Choose the version by the release-version rule, from the program entries alone. Compatible catalog content writes no kendex fragment and causes no kendex release. Follow the release standard for released execution code, breaking changes and compatibility.
Before collation, run tools/release-previous-tag. It prints the newest published stable vX.Y.Z release tag and fetches it from origin. Use that tag for the file comparison with HEAD. Stop if the lookup, fetch or comparison fails.
- From a clean index and working tree, set
COMMIT_GUARDS_CHANGELOG_COLLATE=1in the environment and run.agents/skills/commit-guards/scripts/changelog-entries --collate. It folds the program fragments intoCHANGELOG.md'sUnreleasedunder their sections. A nonzero exit halts the release: fix the cause before retrying. - Bump the workspace
versioninCargo.tomland the version incrates/app/tauri.conf.json. Both must equal the tag minus thev, or the update feed no-ops or loops. Move the collated entries under a new## [<version>] - <date>heading, leaving an empty## [Unreleased]above it. The collator writes no link footer: point[Unreleased]:atcompare/v<version>..HEADand add[<version>]: https://github.com/vanillagreencom/kendex/releases/tag/v<version>above the previous version's line. - Commit with
COMMIT_GUARDS_CHANGELOG_COLLATE=1. That declaration makesCHANGELOG.mdcount as the entry for the version bump undercrates/; thecommit-msglane refuses the commit without it. The committed release branch fixes this release's changelog entries. Later queue fragments stay for the next release only when their kinds fit the collated version. An Added fragment needs a minor or major; a Breaking fragment needs a major. Merge with the github skill'spr-merge. Readgh pr view <PR> --json state,mergeCommit,headRefOid. Requirestateto beMERGEDand recordmergeCommit.oidas the release commit. This is the merged commit, including the new commit from a squash merge. Fetchorigin mainandrefs/pull/<PR>/head. Requiregit merge-base --is-ancestor <mergeCommit.oid> origin/mainto pass. The release workflow readschangelog.dat this proven collation head and requires that it contain onlychangelog.d/README.md. Run.agents/skills/commit-guards/scripts/changelog-entries --release <mergeCommit.oid>to check the installed code's release level. Stop on a failed read, ancestry check or changelog check. If the queue or release check names an incompatible entry and required level, re-collate the unpublished release with those entries at the correct version. Commit the inputs cleanly before step 1 and repeat step 2. Select the correction pull request's merge commit. Record the requested tag, pull request number and merged commit, then start the release workflow onmain:
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.
- 9d ago Changed · +2 lines 2ff84c2e1f51
- 13d ago Changed f2c40f05bfbe
- 14d ago Changed 07463b622006
- 15d ago Changed · +2 lines f5e53a3b1074
- 16d ago Changed · +18 lines 4fc8c7282af2
- 17d ago Changed fdf801a751e3
- 19d ago Changed de41f5378c46
- 20d ago Changed · +2 lines 03e88db70589
- 21d ago Changed f53675aff0df
- 22d ago First seen · 63 lines · 19 tokens per session scan C 0aa7498419d4
app-deploy is a skill published in the GitHub repository vanillagreencom/kendex (87 stars, last pushed yesterday), licensed MIT. It adds 19 tokens to every session and 3,639 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it C with 1 finding (hidden instructions). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
rp
Always read this skill when the user mentions "rp" or "repoprompt", or before accessing a repository outside the current RepoPrompt workspace. Covers workspace discovery, binding, root verification, and workspace hygiene.
prose-review
Review prose written for others (e.g., user-facing documentation, prompts for other LLMs, reports, plans, inline comments, docstrings) for local jargon leakage, orphaned references, missing grounding, and audience or genre mismatch. Always run on prose you produce or materially edit, except for routine conversational…
text-search
Search indexed text corpora with qmd. For indexed content, prefer qmd over grep.
commit
A commit candidate is the exact patch that will enter the commit. A coherent change has one task or issue as its reason for existing.
releasing-code
Prepare, publish, or repair a software release and write its release notes. Use for cutting a versioned release or editing release notes. NOT for updating an installed package, publishing articles, or discussing a release; for general documentation use documenting-code.
release
Release a new version of pi-extensions: bump individual package versions (independent mode), update CHANGELOGs and READMEs, create per-package git tags, publish a GitHub release, and publish packages to npm via pnpm release. Use when the user asks to "cut a release", "release vX.Y.Z", "publish a new version", "create…