Receipt for every post
After each approved post goes out, write one row to the Distribution table: channel, live link, tracked link, who approved it and when, so what was published is a record, not a claim.
In Lobstack: Skills › Library › Add
What your agent will do.
Every time something is published for a launch, newsletter or campaign. It is what the results are later read against.
- 01
If there is no table called Distribution, ask to create it with create_table: Campaign, Channel, Live link, Tracked link, Approved by, Published at, Status. Creating it is a person's yes, once.
- 02
After each publish, read back the live URL the service returned. A post with no live URL is not published; mark it failed and say why.
- 03
Write the row with upsert_rows, matching on Campaign and Channel, so a repost updates the row instead of adding a second.
- 04
Approved by is the person who said yes on the card, never the agent.
- 05
At the end, list the campaign's rows: what is live, what failed, what is still a draft.
Never write a row for a post you did not see go live.
The whole SKILL.md: 28 lines of Markdown.
Add it in the app from Skills › Library, or copy it and paste it into Skills › Add a skill.
---name: distribution-receiptdescription: "After each approved post goes out, write one row to the Distribution table: channel, live link, tracked link, who approved it and when, so what was published is a record, not a claim."metadata: title: "Receipt for every post" category: marketing tags: [marketing, distribution, reporting]--- ## When to use this Every time something is published for a launch, newsletter or campaign.It is what the results are later read against. ## How 1. If there is no table called Distribution, ask to create it with create_table: Campaign, Channel, Live link, Tracked link, Approved by, Published at, Status. Creating it is a person's yes, once.2. After each publish, read back the live URL the service returned. A post with no live URL is not published; mark it failed and say why.3. Write the row with upsert_rows, matching on Campaign and Channel, so a repost updates the row instead of adding a second.4. Approved by is the person who said yes on the card, never the agent.5. At the end, list the campaign's rows: what is live, what failed, what is still a draft. Never write a row for a post you did not see go live.
- Marketing
SEO page audit
Audit named pages for how well search engines and AI answers can find and understand them: titles, headings, meta, links, structured data and speed. Ranked fixes.
SKILL.md · App - Marketing
Email sequence
Draft a 3 to 5 email sequence (onboarding, nurture or win-back) with one goal, the timing, and a single ask per email. Drafts only; never sends.
SKILL.md · App - Marketing
Tracked links per channel
Give every channel in a launch its own tracked link — source, medium, campaign — so the results can be read per channel instead of guessed.
SKILL.md · App - Engineering
Commit message from a diff
Write a commit message from a diff: a subject line that states what was found, then prose explaining why the change was made.
SKILL.md · App - Engineering
Triage a failing build
Triage a red CI run: find the first real failure, attribute it to a change, and say whether the code is wrong or the runner was.
SKILL.md · App - Engineering
Review what a linter cannot
Review a change for what a linter cannot see: whether it is correct, what it breaks elsewhere, and which parallel list it forgot to update.
SKILL.md · App