Skip to content
Back to skills

Stitch Prompt Card

ASecurity

Turn a public TikTok stitch target into one quote reply card per chosen hook. This stitch prompt card studio reads the quoted video and comments, then makes quote reply stills from the reply lines you already wrote. Use it for quote reply cards, stitch prompt cards, and TikTok quote reply stills.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agentspythonbashapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 14 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add beatra-ai/beatra-skills --skill stitch-prompt-card --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Stitch Prompt Card?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Stitch Prompt Card
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/beatra-ai-stitch-prompt-card/badge)](https://www.skillsdirectory.com/skills/beatra-ai-stitch-prompt-card)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: "stitch-prompt-card"
description: "Turn a public TikTok stitch target into one quote reply card per chosen hook. This stitch prompt card studio reads the quoted video and comments, then makes quote reply stills from the reply lines you already wrote. Use it for quote reply cards, stitch prompt cards, and TikTok quote reply stills."
---

# Stitch Prompt Card

Turn a public TikTok stitch target into one quote reply card per
chosen hook. Deliver 1 to 6 stills. Cover the opening hook first.

## Scope and adjacent routes

Use this Skill when an operator needs quote reply cards for a TikTok
stitch or quote post, not a stitched clip.

Route pin screenshot stills to `comment-pin-card`. Route a spoken
script to `tiktok-script-studio`. Route Douyin FAQ stills to
`douyin-video-comments-to-faq`.

This package reads a TikTok video and comments, then makes stills. It
does not stitch or animate a clip, and it does not post a reply on
TikTok. If this connection has no TikTok lookup, work from pasted
lines only.

## Collect the quote and reply

Hard inputs are:

- either a public TikTok share URL the host can open, or the caption
  and comments already copied;
- the reply lines the operator already wrote;
- how many cards the pack should contain, or permission to use the
  default of 4.

Reuse already-known language and brand look. Ask only for a missing
hard input. A count outside 1 to 6 is still doable: confirm that pack
size and its live cost.

Do not invent a caption, a comment, a username, a like count, or a
reply. File access is not consent.

Inspect every still the operator supplies. Record MIME type, width,
height, aspect ratio, byte size, and whether it has an alpha channel.
For a local file, upload only through the bundled client after
inspection (`scripts/mcp_client.py` / `beatra.assets.upload`). Keep
the returned artifact id. Never pass a local path to
`beatra.images.generate`.

## Plan the free cover list

Write a labeled quote-reply cover plan before any paid lookup or
image. Default four slots unless the operator names another count in
1 to 6. Each slot records the quoted caption or comment, the written
reply line, layout, canvas, and whether a brand still drives the look.
Leave a missing reply off the paid list.

That list is the free visible result from whatever the operator
already pasted. Planning is not approval.

Safe defaults:

- one `beatra.images.generate` call per slot;
- `model: "auto"` unless the operator chose a live SKU;
- `count` 1 per slot;
- 9:16 2K unless the operator named another destination ratio.

## Look up the video and comments on their own cards

A share URL does not authorize a lookup. When the operator wants this
connection to read a public TikTok post, follow
[comment lookup](references/comment-lookup.md). Search, inspect, then
show a six-field lookup card for each prepaid execute and wait.

Video get and comments list are separate lookups. The next comments
page is another charge.

1. Work — one public TikTok video get or one comments page
   (`beatra.social.execute` with the inspected `operation_key`).
2. Credits — the live price `beatra.social.tools.get` just returned.
   Quote that live number, not a remembered one.
3. Count — one prepaid lookup. The next page is another charge.
4. Identity — one new opaque `client_request_id` per execute.
5. If we stop here — the pasted cover plan remains usable.
6. If the balance is insufficient — relay the official message and
   its top-up URL exactly. Translate the prose; keep the URL. Do
   not retry until the operator says they have topped up.

This package uses only `social.tiktok.video.get_by_url` and
`social.tiktok.video.comments.list`. Do not show `schema_hash` to the
operator. A confirmed lookup does not authorize generate.

## Confirm generate separately

Before any billable image, read the current `beatra.models.list` card
for `text_to_image`:

```json
{"capability": "text_to_image"}
```

Keep `model` as `auto` and `count` at `1` per card. Show one current
generate production card and wait:

1. Work — one quote reply still per chosen hook
   (`beatra.images.generate`).
2. Credits — the live `text_to_image` price just read. Do not reuse a
   remembered number.
3. Count — one paid call per card. Do not batch hooks into one
   `count`.
4. Identity — one new opaque `client_request_id` per card. A changed
   quote, reply, prompt, file, model, or canvas mints a new ID.
5. If we stop here — the labeled cover plan remains usable.
6. If the balance is insufficient — relay the official message and
   its top-up URL exactly. Translate the prose; keep the URL. Do
   not retry until the operator says they have topped up.

A confirmed lookup does not authorize generate. Submit once through
bundled `scripts/mcp_client.py`. Poll `beatra.tasks.get`. Deliver
actual bytes plus `billing.net_charged_credits`.

## Review, deliver, and recover

Review printed words against the chosen caption, comments, and written
reply lines. Report only the text the host can actually see.

After a returned `task_id`, poll that task. If the create response is
lost, search with `beatra.tasks.list` and verify with
`beatra.tasks.get` before replay. Reuse an ID only with
byte-identical arguments. Cancel only when the operator asks.

## Execution

Invoke every remote Beatra operation only through this package's bundled
`scripts/mcp_client.py`. Put the MCP tool name after `call` and send one
JSON object on standard input.

```bash
python3 scripts/mcp_client.py call beatra.models.list
```

```json
{"capability": "text_to_image"}
```

```text
printf '%s' '{"query":"comments","platform":"tiktok","capability_family":"comments"}' | python3 scripts/mcp_client.py call beatra.social.tools.search
```

Do not configure or call a host Beatra Connector, and do not use
REST/OpenAPI as a fallback.

## Account balance

When the user asks how many credits remain or whether a live estimate fits,
call `beatra.wallet.get`. When they ask what was charged, call
`beatra.wallet.ledger`. Both are read-only. Do not invent an account-balance or
top-up tool. Do not make `wallet.get` a required step before every paid submit.

When a model card comes back carrying a `top_up` block, relay its tiers as the
card lists them and in that order. Do not rank them, do not talk one down, and
do not pick one for the user. Which tier suits them is their call, made on
the wallet page with the whole list in front of them. Never quote a tier from
memory.

## References by task

- For cover lists, lookup, generate payloads, and recovery, read
  [Stitch prompt workflow](references/workflow.md) and
  [comment lookup](references/comment-lookup.md).
- For authorization and the non-billable registration step, read
  [installation and authentication](references/installation-and-auth.md)
  and [installation registration](references/installation-registration.md).
- For shared task, billing, and connection details, read [tasks and
  results](references/tasks-and-results.md), [billing, errors, and
  recovery](references/billing-errors-and-recovery.md), and [Bundled MCP
  Client diagnostics](references/mcp-connection.md).
- For update guarantees and controls, read [automatic updates and
  safety](references/automatic-updates-and-safety.md). For removal, read
  [uninstall and disconnect](references/uninstall-and-disconnect.md).

## Runtime and safe automatic updates

The bundled client silently checks for a newer release at most once
every 24 hours per installation. When a newer version is available, it
installs automatically without separate confirmation. It downloads only
from the fixed official Beatra discovery and immutable CDN paths for
this package, channel, and locale, verifies discovery data, archive,
manifest, and every packaged file, and replaces only package-owned
files.

Update checks, downloads, verification, replacement, rollback, and
recovery fail open: the current installation remains usable and the
original command continues. An update failure never authorizes retrying
a paid lookup or image request. The setting persists for this
installation. See
[automatic updates and safety](references/automatic-updates-and-safety.md).

```text
python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check
```

Files in this skill

  • SKILL.md8.2 KB
  • manifest.json2.4 KB
  • references/automatic-updates-and-safety.md1.9 KB
  • references/billing-errors-and-recovery.md3.6 KB
  • references/comment-lookup.md1.8 KB
  • references/installation-and-auth.md5.7 KB
  • references/installation-registration.md1 KB
  • references/mcp-connection.md1.2 KB
  • references/tasks-and-results.md2.2 KB
  • references/uninstall-and-disconnect.md2.7 KB
  • references/workflow.md2.4 KB
  • scripts/authorize.py21.8 KB
  • scripts/mcp_client.py60.1 KB
  • scripts/uninstall.py10.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…