AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Agent/seo Bot

skill-latticecast-agent-skills-seo-bot · by LatticeCast

Cross-product SEO article generator. Reads 3 CSVs (TA × promotion × product), loops the full Cartesian product, and spawns one fresh `claude -p` worker per article. Saves to LatticeCast articles table via lc_api.sh.

No reviews yet
0 installs
21 views
0.0% view→install

Install

$ agentstack add skill-latticecast-agent-skills-seo-bot

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access Used
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-latticecast-agent-skills-seo-bot)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Agent/seo Bot? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

seo-bot — Cross-Product Article Generator

Spawns N×M×K fresh claude -p workers, one per (TA × promo × product) combo. Each worker writes one article in isolation; the orchestrator just loops + uploads via lc_api.sh.

Architecture (same shape as agentic-hive)

Project root (e.g. seo-system/)
├── .env                   # LC_API, LC_USER, LC_PASS, ARTICLES_TABLE_ID, …
├── .env.example           # config template
├── lc_api.sh              # sourced from developing/lattice-cast skill
└── seo-bot/
    ├── run.sh             # entry point (sources .env, calls orch)
    ├── orchestrator.sh    # pure shell — reads CSVs, loops product
    ├── worker.sh          # bash infra + `claude -p` for ONE article
    ├── audiences.csv      # TA personas
    ├── promotions.csv     # promotions / campaigns
    └── products.csv       # featured products

Config contract

.env must define:

| Var | Purpose | |---|---| | LC_API | Base URL, e.g. http://localhost:13491/api/v1 | | LC_USER | Login user_name for /login/password | | LC_PASS | Login password for /login/password | | ARTICLES_TABLE_ID | Table ID for the articles table | | TITLE_COLUMN_ID | Column ID for the title field in articles |

How it works

  1. bash seo-bot/run.sh → sources .env, runs orchestrator
  2. Orchestrator (rule-based, no LLM):
  • Parse audiences.csv, promotions.csv, products.csv (header row + title,description)
  • Build cross product (3 × 4 × 2 = 24 typically; generic for any size)
  • Query existing rows via lc_row_list on ARTICLES_TABLE_ID
  • Skip combos already covered (idempotent — safe to rerun)
  • For each missing combo, exec worker.sh with the 3 (title, desc) pairs
  • Sleep 1s between workers (rate-limit per CLAUDE.md)
  1. Worker (bash + LLM):
  • Compose a prompt embedding the three contexts
  • timeout 120 claude -p --dangerously-skip-permissions ""
  • Worker writes ONE markdown file to ~/.tmp/article-.md
  • Bash creates row via lc_row_create then uploads doc via lc_doc_write
  • No LLM in the upload path — bash handles it deterministically
  1. Orchestrator logs in, derives LC_AUTH_HEADER at runtime, and emits

ALL_DONE when count reached; otherwise exits non-zero

Each worker is a fresh process — no shared context between articles.

CSV format

UTF-8, comma-delimited, first row is header. Two columns: title,description.

title,description
akai,26-year-old male office worker. WFH 3d/wk. Loves bouldering.
meiwen,22-year-old female grad student. Industrial design. Tight budget.

Title becomes the article-name component (used for the unique articles.Title like akai-spring-2026-ergopro-chair). Description is fed to the LLM as persona/context.

Article-title contract

Worker uploads with Title = "${a_title}-${b_title}-${c_title}".

This title is the dedupe key and the verifier's signal — it must be unique across all combos. Don't change the format unless you also update orchestrator's contains skip-check.

Worker rules

  • One combo only. Don't mention any other persona/promo/product.
  • ≥400 chars of substantive prose. The driver enforces this.
  • First line is # .
  • No filler / no echoing the prompt.
  • Don't curl from inside the worker — bash handles upload via

lc_row_create + lc_doc_write. Same rule as agentic-hive.

Rate limit

sleep 1 between workers in the orchestrator. From seo-system/CLAUDE.md: > API rate limit: wait 1 second between each API call

Idempotency

Re-running run.sh after partial completion picks up where it left off — already-uploaded titles are skipped via lc_row_list.

Composition

Sources lc_api.sh from developing/lattice-cast skill (the thin LatticeCast HTTP wrapper). Project .env provides LC_API, LC_USER, LC_PASS, and table/column IDs. The bot logs in and derives LC_AUTH_HEADER at runtime. The bot itself contains no LatticeCast-specific code beyond the lc_* function calls.

When to use this skill

  • You have 3 source dimensions and want every cross-product article

written without context leak between articles.

  • You want deterministic, idempotent, rerunnable batch generation.
  • You want cheap parallelism: each claude -p is independent.

For single-article writing: just use claude directly in the seo-system project — pilot Claude reads CLAUDE.md, runs get_context.sh, and writes ad-hoc.

Reference scripts

[example-scripts/run.sh](example-scripts/run.sh) [example-scripts/orchestrator.sh](example-scripts/orchestrator.sh) [example-scripts/worker.sh](example-scripts/worker.sh) [example-scripts/audiences.csv](example-scripts/audiences.csv) [promotions.csv](example-scripts/promotions.csv) [products.csv](example-scripts/products.csv)

Copy these into /seo-bot/, replace CSVs with your real sources, ensure /.env defines LC_API, LC_USER, LC_PASS, ARTICLES_TABLE_ID, TITLE_COLUMN_ID, and that lc_api.sh is available to source. Then bash seo-bot/run.sh.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.