AGENTS.md · git:20261019.9814f00 · 2026-10-19 · sha256 cecdc4496b678031

AGENTS.md git:20261019.9814f00A

Immutable. This exact content never changes and is served at /api/v1/blob/cecdc4496b678031.

# Repository Guidelines

This is the public AdsAgent tri-channel skill pack (Meta, Google Ads, TikTok)
consumed by AI agents as a plugin. It ships Markdown skills, contracts, and
stdlib-only Python validators; there are no runtime dependencies or lock files.
Tool names are public; never add tool descriptions, payload schemas, risk-control
numbers, private repository names, or backend details here — the repository is
public.

## Validation

- `uv run --no-project --managed-python --python 3.12 --with pytest==9.0.2 python -m pytest -q`
- `uv run --no-project --managed-python --python 3.12 python scripts/validate_tri_channel_pack.py`
- `uv run --no-project --managed-python --python 3.12 python scripts/validate_public_tool_manifests.py`
- `uv run --no-project --managed-python --python 3.12 python scripts/validate_release_manifest_tag.py`

Skills live only in `skills/`. `.claude-plugin/marketplace.json` sets the
`adsagent` source to `./`. Directory review scans this whole repository.
Claude, Cursor, Codex, and Glama all read that root. Do not add a second
skill tree, and do not read the process environment in this repository.
Pass paths as arguments.

## Changes

- One PR per logical change, with a short imperative title and a body that states
  what changed and pastes the check results.
- Do not skip, mark, or delete failing tests to get green.
- Releases are batched. Feature PRs add their notes under `Unreleased` in
  `CHANGELOG.md` and do not touch `VERSION`; a release batch bumps `VERSION`,
  the manifests that mirror it, and the changelog together.
- Release order: tag the release commit and create the GitHub release first,
  then update `VERSION` and `release-manifest.json` on main. The manifest on
  main must never reference an unpublished tag — sync clients fetch the
  tagged manifest and fail with 404 until the tag exists.
  `scripts/validate_release_manifest_tag.py` enforces this in CI.
- Never force-add generated bootstrap files or in-repo virtual environments.