## Why agent-author produces paired agent definition files (Claude Code .md + Copilot .agent.md) but had no companion audit skill to validate them. agent-audit fills that gap, giving the same structured PASS/FAIL report that skill-audit provides for SKILL.md files. ## Implementation Notes - validate.sh uses scope detection (walk up for plugin.json / .git) to locate the counterpart file and determine whether plugin-silently-ignored fields (hooks, mcpServers, permissionMode) should be flagged - CC-only and silently-ignored field lists are read from references/field-inventory.md at runtime rather than hardcoded — provenance back to the research corpus; see ADR-0019 - Single-file invocation (pass either file, counterpart derived) chosen over directory or name+root — see ADR-0018 - 12 bats tests cover provider detection, scope detection, all FAIL paths, and clean-pair pass ## Impact - kyberforge bumped to v1.1.2 - agent-author close step should be updated to reference agent-audit (#11) - Provenance/sources chain check deferred to #60 ADR: docs/adr/0018-agent-audit-single-file-invocation.md ADR: docs/adr/0019-agent-audit-field-inventory-reference.md Refs: #11 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0147vXtL5sP6vorDdqXGJJU9
48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# scripts/
|
|
|
|
Executable code bundled with this skill. Agents run scripts in this directory
|
|
to perform repeatable operations rather than reinventing the logic each run.
|
|
|
|
## When to add a script
|
|
|
|
Add a script when agents independently reinvent the same logic across runs —
|
|
building the same parser, chart, or validation routine from scratch each time.
|
|
Bundle it here once, tested and reliable.
|
|
|
|
## Script requirements (agentskills.io)
|
|
|
|
Scripts must be designed for non-interactive, agentic execution:
|
|
|
|
- **No interactive prompts** — agents run in non-interactive shells.
|
|
Accept all input via flags, env vars, or stdin. A script that blocks on
|
|
TTY input hangs indefinitely.
|
|
- **Expose `--help`** — this is how agents learn your script's interface.
|
|
Keep the output concise; it enters the agent's context window.
|
|
- **Structured output** — write data (JSON, CSV, TSV) to stdout.
|
|
Write progress, warnings, and diagnostics to stderr.
|
|
- **Idempotent** — prefer "create if not exists" over "create and fail on
|
|
duplicate". Agents may retry on failure.
|
|
- **Meaningful exit codes** — `0` for success, non-zero for failure.
|
|
Use distinct codes for different failure types; document them in `--help`.
|
|
- **Dry-run support** — add `--dry-run` for destructive operations.
|
|
|
|
## Self-contained scripts
|
|
|
|
Bundle dependencies inline so the agent can run the script with a single command.
|
|
|
|
Python (PEP 723 + uv):
|
|
```python
|
|
# /// script
|
|
# dependencies = ["requests>=2.31,<3"]
|
|
# requires-python = ">=3.11"
|
|
# ///
|
|
import requests
|
|
```
|
|
```bash
|
|
uv run scripts/my-script.py
|
|
```
|
|
|
|
## If no scripts are needed
|
|
|
|
Delete this README and the `scripts/` directory entirely.
|