Skip to content
Agentmart
Submit a tool

arc-article-pipeline

Select a crown-jewel research finding, draft a long-form arc0.me article + an X Article amplification variant (title + body + companion post, emailed…

Skill by arc0btc

IndexedMIT★ 1
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/arc0btc-arc-article-pipeline

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Select a crown-jewel research finding, draft a long-form arc0.me article + an X Article amplification variant (title + body + companion post, emailed ready-to-paste to whoabuddy), hand the blog leg to the autonomous publish lane

Use cases: data, writing, research

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/arc-article-pipeline

What's inside

Skill name
arc-article-pipeline
Description
Select a crown-jewel research finding, draft a long-form arc0.me article + an X Article amplification variant (title + body + companion post, emailed ready-to-paste to whoabuddy), hand the blog leg to the autonomous publish lane
License
MIT
Instructions
111 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Files (43)

  • SKILL.md
  • cli.ts
  • article-10-x-article.json · drafts/
  • article-10-x-article.json.bak-p4-2026-07-17T023942168Z · drafts/
  • article-11-x-article.json · drafts/
  • article-11-x-article.json.bak-p4-2026-07-20T161716019Z · drafts/
  • article-12-x-article.json · drafts/
  • article-12-x-article.json.bak-p4-2026-07-20T161725141Z · drafts/
  • article-13-x-article.json · drafts/
  • article-13-x-article.json.bak-p4-2026-07-22T161712832Z · drafts/
  • article-15-x-article.json · drafts/
  • article-15-x-article.json.bak-p4-2026-07-26T161711352Z · drafts/
  • article-16-x-article.json · drafts/
  • article-16-x-article.json.bak-p4-2026-07-28T161717838Z · drafts/
  • article-17-x-article.json · drafts/
  • article-17-x-article.json.bak-p4-2026-07-30T161711354Z · drafts/
  • article-18-x-article.json · drafts/
  • article-18-x-article.json.bak-p4-2026-08-01T161707577Z · drafts/
  • article-19-x-article.json · drafts/
  • article-19-x-article.json.bak-p4-2026-08-03T161707427Z · drafts/
  • article-20-x-article.json · drafts/
  • article-20-x-article.json.bak-p4-2026-08-05T161712219Z · drafts/
  • article-21-x-article.json · drafts/
  • article-21-x-article.json.bak-p4-2026-08-07T161710826Z · drafts/
  • article-22-x-article.json · drafts/
  • article-22-x-article.json.bak-p4-2026-08-09T161709560Z · drafts/
  • article-23-x-article.json · drafts/
  • article-23-x-article.json.bak-p4-2026-08-11T161709251Z · drafts/
  • article-24-x-article.json · drafts/
  • article-24-x-article.json.bak-p4-2026-08-13T161710920Z · drafts/
  • article-25-x-article.json · drafts/
  • article-25-x-article.json.bak-p4-2026-08-15T161710794Z · drafts/
  • article-26-x-article.json · drafts/
  • article-26-x-article.json.bak-p4-2026-08-17T161712389Z · drafts/
  • article-27-x-article.json · drafts/
  • article-27-x-article.json.bak-p4-2026-08-19T161710819Z · drafts/
  • article-4-x-article.json · drafts/
  • article-5-x-article.json · drafts/
  • article-8-x-article.json · drafts/
  • article-8-x-article.json.bak-p4-2026-07-17T024011768Z · drafts/
  • article-9-x-article.json · drafts/
  • article-9-x-article.json.bak-p4-2026-07-17T024021628Z · drafts/
  • sensor.ts

SKILL.md (first lines)

# Arc Article Pipeline

Restores the operator-amplified long-form channel (P2 of `arc-demand-flywheel`): Arc drafts a
long-form arc0.me piece from a crown-jewel research finding, plus a **long-form X Article
variant** (title + article body + suggested companion post — NOT a tweet thread; operator
correction 2026-07-03) written in **Jason's (@whoabuddy) amplification voice** — quoting/
crediting Arc, never undisclosed fronting. The blog leg hands off to Arc's own autonomous
`blog-publishing` lane; the X Article is emailed to whoabuddy ready to paste into X's article
composer. This skill never posts to X and never flips `draft: false` itself.

## The 3-step contract (mirrors `arc-daily-read`'s P1 design)

1. **`materials`** (deterministic) — selects the next unused relevance-4/5 finding from
   `research/INDEX.md` (crown jewels first, rotation-window dedup against
   `article_queue_log` so topics never repeat), extracts its measured hook + a real
   `file:line` citation. Writes `db/article-materials/article-<N>.json`.
2. **The dispatch-cycle LLM turn** (already SOUL.md-gated as system context) drafts
   `{ blogTitle, blogBody, xArticle: { title, body, companionPost } }` to
   `article-<N>.draft.json`. **Two voice registers**: `blogBody` is Arc's own voice;
   `xArticle` is Jason's amplification voice — a long-form **X Article** (title <=100 chars,
   body 400-1500 words of PLAIN paragraphs since X's article composer renders no markdown,
   measured hook + `file:line` proof in the first two paragraphs) plus a suggested short
   companion post (<=240 chars) for the article share. Nothing includes a CTA or URL — those
   are assembled deterministically by `stage`, closing the exact "hand-typed link
   overflows/truncates" bug class P1 found in the daily read.
3. **`stage --article <N>`** (deterministic) — validates the draft (citation present verbatim
   and up front, word counts in range, title/companion lengths, no markdown in the X Article
   body, no hand-authored arc0.me/whop.com URLs, finding not in the recent rotation window),
   claims the `article_queue_log` row (linearized, retry-safe), creates the blog draft via the
   real `blog-publishing create` CLI, appends deterministic `?a=wb-amp`-tagged closings to
   both variants, deploys an **isolated preview** (see below), syncs the blog leg to
   `blog-publishing`'s autonomous discovery path (`draft: true` preserved), writes the
   X Article variant to `skills/arc-article-pipeline/drafts/article-<N>-x-article.{md,json}`,
   and emails the ready-to-paste X Article draft to whoabuddy via Arc's existing
   amplification-email lane.

## CLI

```
bun skills/arc-article-pipeline/cli.ts materials [--article N] [--slug <slug>]
bun skills/arc-article-pipeline/cli.ts stage --article <N> [--dry-run]
bun skills/arc-article-pipeline/cli.ts status
bun skills/arc-article-pipeline/cli.ts fix-preview --article <N>
bun skills/arc-article-pipeline/cli.ts hand-off --article <N> [--supersede]
bun skills/arc-article-pipeline/cli.ts rework-x --article <N> [--supersede] [--dry-run]
```

`--slug` forces a specific finding (bypasses rotation) — useful for demos/testing; default
behavior rotates automatically, crown jewels first. `rework-x` regenerates an already-staged
article's X variant as an X Article from a session-drafted
`db/article-materials/article-<N>.xarticle.json` and re-sends the email; `--supersede` marks
the email subject as replacing an earlier (thread-format) send.

## Preview isolation (hard constraint: never flip production)

`blog-publishing create` writes to `github/arc0btc/arc0me-site/content/...` — safe, since that
directory is never read by the Astro build (only `publish`, never called by this pipeline,
syncs a post into `src/content/docs/blog/`, the only directory the deployed site serves).

For a real, curl-able preview URL, `stage` rsyncs the live `arc0me-site` **once** into a
non-git scratch copy at `db/article-pipeline-preview/site/`, drops the draft's `.mdx` into that
copy's `src/content/docs/blog/`, builds, and deploys with `npx wrangler deploy --env staging`
(the `workers_dev` env already defined in `wrangler.jsonc` — a workers.dev subdomain, not
`arc0.me`). **`--env production` never appears anywhere in this skill.** Because the scratch
copy has no `.git`, and the live `arc0me-site` repo's tracked files are never touched, the
`blog-deploy` skill's auto-deploy sensor (which watches the LIVE repo's git HEAD SHA) cannot be
triggered by this pipeline.

## Firing (who posts what)

- **Blog:** autonomous — `stage` syncs the final draft (`draft: true`) into
  `blog-publishing/sensor.ts`'s discovery path; Arc's own sensor queues review+publish on its
  normal hourly cadence, the same live-by-default path every other Arc blog post uses. No
  operator gate (P2 amendment, operator correction).
- **X:** the emailed **X Article draft** (title + body + companion post, links pre-tagged
  `?a=wb-amp`) is pasted into X's article composer and posted from the **@whoabuddy** account
  by Jason himself (Arc has no credentials for Jason's personal account — by design; the
  framing is "@whoabuddy amplifying Arc," quote/credit, never undisclosed fronting).

## Sensor

Cadence: every 48h (the phase's "every-other-day or faster" floor). Queues ONE dispatch task
with the 3-step instruction sequence above. Kill-switch (`outbound_enabled`) and dedup
(`pendingTaskExistsForSource`) checked. **Never posts to X** — the pipeline stops at "staged"
(blog leg on Arc's own publish-lane timeline, X leg delivered by email only).

## Schema

`article_queue_log` (additive, `db/arc.sqlite`): `article_n` (PK), `finding_slug`, `post_id`
(pinned the moment the blog draft exists, so a crash-resume reuses it instead of minting a
second date-stamped draft), `status` (`staging` -> `staged`), `hook`, `file_line`,
`x_variant_path`, `preview_url`, `created_at`, `staged_at`, `email_sent_at` (idempotency
marker: a crash-resume never re-sends the amplification email; only the explicit
`hand-off`/`rework-x` commands re-send, and they refresh it).

## File conventions (one article = up to four draft files)

| File | Written by | Role |
|---|---|---|
| `db/article-materials/article-<N>.json` | `materials` | Deterministic brief for the drafting LLM |
| `db/article-materials/article-<N>.draft.json` | LLM turn | Full draft `{ blogTitle, blogBody, xArticle }`, consumed by `stage` |
| `db/article-materials/article-<N>.xarticle.json` | session/LLM | X-variant-only raw draft `{ title, body, companionPost }`, consumed by `rework-x` |
| `drafts/article-<N>-x-article.{json,md}` | `stage`/`rework-x` | Staged X Article. The `.json` sidecar (raw `body` + assembled `finalBody`) is **canonical**; the `.md` is its human-readable rendering |

## When to Load

Load when the sensor's dispatch task fires, or when manually running the materials/stage
commands. Pair with `arc-daily-read` (the other findings-first channel) and `blog-publishing`
(the underlying blog CLI this skill shells out to).

From arc0btc/arc-starter, MIT.

More from arc0btc/arc-starter

Signals

Stars
1
Forks
4
Open issues
3
Last commit (this folder)
Aug 19, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from arc0btc

Cite this page

arc-article-pipeline skill. Agent Mart. https://agentmart.dev/skills/arc0btc-arc-article-pipeline (last updated 2026-10-24)