ai-agents-development
Build AI agents and knowledge bases for Falcon Foundry apps. TRIGGER when user asks to "create an AI agent", "add a Foundry…
Audit an existing Falcon Foundry app for documented anti-patterns and fix the safe ones, like npm audit. TRIGGER when user asks to "audit my Foundry app", "check my app for problems", "review this Foundry app", "scan for anti-patterns", "why might this deploy fail", or runs
Claude Code
$ npx -y skills add CrowdStrike/foundry-skills --skill app-audit --agent claude-code
Codex
$ npx skills add CrowdStrike/foundry-skills --skill app-audit -a codex -y
Cursor
$ npx skills add CrowdStrike/foundry-skills --skill app-audit -a cursor -y
Gemini CLI
$ npx skills add CrowdStrike/foundry-skills --skill app-audit -a gemini-cli -y
GitHub Copilot
$ npx skills add CrowdStrike/foundry-skills --skill app-audit -a github-copilot -y
OpenCode
$ npx skills add CrowdStrike/foundry-skills --skill app-audit -a opencode -y
Windsurf
$ npx skills add CrowdStrike/foundry-skills --skill app-audit -a windsurf -y
name: app-audit description: Audit an existing Falcon Foundry app for documented anti-patterns and fix the safe ones, like npm audit. TRIGGER when user asks to "audit my Foundry app", "check my app for problems", "review this Foundry app", "scan for anti-patterns", "why might this deploy fail", or runs `audit_app.py`. DO NOT TRIGGER for creating a new app (use development-workflow) or for debugging an error the user already has (use debugging-workflows). version: 1.7.0 updated: 2026-10-30 tags: [foundry, audit, lint, best-practices] author: CrowdStrike license: MIT compatibility: Claude Code >=1.0 metadata: category: quality
Run the bundled script against the app directory (the one with `manifest.yml`). It reads the manifest and the files it points to, calls no API, and needs only `pyyaml`:
python3 skills/app-audit/scripts/audit_app.py path/to/app # report python3 skills/app-audit/scripts/audit_app.py path/to/app --json # machine-readable python3 skills/app-audit/scripts/audit_app.py path/to/app --fix # apply the safe fixes, then report
It exits `1` when an error-level finding remains. Each finding names the skill and section that explains it; read that section before changing anything.
| Check | Severity | Why | |-------|----------|-----| | `function-count` | warn | More than 20 functions. Each is a separate container build, and a fresh install with 43 failed where the same handlers in 11 functions deployed. | | `handler-name-length` | error | Handler names must be 5 to 64 characters (the CLI's own limits). | | `handler-name-duplicate` | error | Handler names must be unique within a function. | | `request-property-undeclared` | error | A workflow passes a property the function's `request_schema` doesn't declare, so it's silently dropped. | | `response-key-missing` | warn | A workflow reads a `FaaS` output key the handler's `response_schema` doesn't declare. | | `unknown-function-action` | error | A workflow calls `functions.<name>.<handler>` that isn't in the manifest. | | `missing-workflow-integration` | error | A workflow calls a handler that has no `workflow_integration`, so deploy fails. | | `provision-on-install-missing` | warn, fixable | Installing won't create the workflow. Leave it off only when the app provisions the workflow itself through the Workflows API, as rapid-response and scalable-rtr do. | | `provision-on-install-false` | info | Fine when deliberate. | | `pycache-not-ignored` | warn, fixable | A local `__pycache__/` would deploy. The CLI already skips hidden paths like `.venv/`. | | `secret-in-env` | warn | A function reads a key, token, secret, or password from an environment variable, which is visible in app exports. | | `server-url-protocol` | error | An OpenAPI server URL with variables starts with `https://` or `http://`, so the protocol doubles. | | `server-variable-default` | warn | A server variable has a `default` but no `enum`, which renders as a one-value dropdown. | | `ui-not-built` | error | A page or extension has no `dist/`; deploy never builds the UI. | | `ui-stale-build` | warn | `src/` is newer than `dist/`, so deploy would ship the previous build. | | `invalid-file` | error | `manifest.yml`, a workflow, or an API spec it points to doesn't parse, so the checks that read it were skipped. |
`--fix` applies only the fixes marked fixable: it adds the `__pycache__` pattern to `ignored:` and `provision_on_install: true` to workflows that lack it. Both are single-line insertions that leave the rest of the file as written. Tell the user what `--fix` will change before running it, and show the diff afterward.
Everything else needs judgment, so handle it with the user:
Run the audit again after fixing, and run `foundry apps validate --no-prompt` before deploying. The audit complements validation and doesn't replace it.
The checks are static, so treat a finding as a strong lead, not proof. A warning can be deliberate (a large app may need many functions, and an app that provisions its own workflows skips `provision_on_install`). If a finding looks wrong for the app in front of you, say why instead of forcing a fix.
AI coding assistant skills for building CrowdStrike Falcon Foundry apps. Build Foundry apps from a natural language prompt — API integrations, workflows, UI pages, functions, collections, AI agents, and knowledge bases — all scaffolded with the Foundry CLI
Build AI agents and knowledge bases for Falcon Foundry apps. TRIGGER when user asks to "create an AI agent", "add a Foundry…
Expose external APIs to Falcon Foundry via OpenAPI specs. TRIGGER when user asks to "create an API integration", "adapt an…
Upgrade a Falcon Foundry app that was installed from a template to a newer version of that template, in place. TRIGGER when user…
Design JSON Schema collections and CRUD patterns for Falcon Foundry apps. TRIGGER when user asks to "create a collection",…
Systematic troubleshooting for Falcon Foundry CLI errors, manifest validation failures, deploy failures, artifact runtime errors,…
Orchestrates the complete Falcon Foundry app lifecycle from requirements through deployment. TRIGGER when user asks to "create a…
Ask which skill or flow fits your situation. A router over the skills in this repo.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…
Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…