.agents/skills/paperclip-page/SKILL.md
Use this skill to publish a static directory to the configured Paperclip pages
host, for example https://pages.paperclip.ing/<slug>/.
index.html at its root.aws CLI v2, curl, and jq are available on PATH for live publishes.PAPERCLIP_PAGE_BUCKETPAPERCLIP_PAGE_BASE_URLAWS_REGIONPAPERCLIP_PAGE_DEFAULT_PREFIXPAPERCLIP_PAGE_AWS_PROFILEscripts/publish.sh <dir> --dry-run to validate local structure and see
the resolved URL/prefix.--slug <slug> when the user gave a stable URL path.--slug to derive one from the source directory name..agents/skills/paperclip-page/scripts/publish.sh ./site --slug my-page
Updates are additive overwrites only. The helper never deletes remote objects.
.agents/skills/paperclip-page/scripts/publish.sh ./site --slug my-page --update
When the target prefix already exists, --update requires local ownership proof
from ./site/.paperclip-page/state.json generated by an earlier publish from
that same source directory. Without that state, create a new slug instead of
overwriting another page.
aws s3 sync --delete or require s3:DeleteObject in v1.--no-follow-symlinks and fails if any source symlink is
present..paperclip-page/state.json.404.html operator-managed; publishes
always target <slug>/... or <default-prefix>/<slug>/....Slug already exists: choose a different slug or use --update from the
original source directory containing .paperclip-page/state.json.Missing index.html: build the static site first or point the helper at the
directory that contains the root HTML file.Found symlink: replace symlinks with real files before publishing.AccessDenied: confirm the uploader IAM policy allows ListBucket,
GetObject, and PutObject for the configured bucket/prefix, and that the
agent received the Paperclip Secrets.See README.md next to this skill for operator setup, AWS policy examples,
credential rotation, and install/attach commands.