# YS Marketing Skills Kit — clean release

This release contains six marketing Skills, local Python contracts and adapters,
synthetic examples, and offline tests. It has no credentials, customer profile,
queue, approval record, pilot output or live authorization. Live Meta/Sheets
integration has not been established by these tests. Nothing here authorizes
campaign activation, spending, public posting or accepting platform terms.

The [local media guide](docs/local-media-v1.md) covers a dry-run image probe
and an account-scoped image upload API for an already authorized host. Image
upload is fixture-tested, not live-proven; video upload remains conditional.

Start with [macOS/Windows installation](docs/install-v1.md) and the
[operator protocol](docs/operator-onboarding-v1.md). Record a separate
[capability audit](docs/client-capability-audit.md) for each customer. The
canonical Skills are in `skills/`; `.agents/skills/` and `.claude/skills/`
are generated copies. `MANIFEST.json` records every file except itself.

Run `python3 -B tools/verify_release_v1.py`, then
`python3 -B tools/run_tests.py` and
`python3 -B tools/sync_adapters.py --check` from the extracted directory.
Tests are synthetic and run without network. Keep each customer's profile,
credentials and runtime state outside this release directory.

`tools/install_skills.py` previews a Codex or Claude Skill copy and requires
`--apply` to write. It never overwrites an existing Skill. On native Windows,
the Skills and local planning entry points are available, while owner-only
state, lead journals and durable workers require WSL2 until Windows ACL
protection has an equivalent implementation. This gate is enforced in code.

`compose_client_lead_pipeline` assembles two scoped source inboxes and one
Sheets destination only when the customer runtime supplies its own source
authenticators, Google requester and approval verifier. This release supplies
no credential backend, OAuth grant, source webhook or background service.
