Skip to content

feat: Roadie Studio writing tool — draft + submit-for-review articles via chat #44

Description

@chubes4

Summary

Roadie today is a polished platform concierge for the team tier — it can manage artist profiles, link pages, user profiles, community posts, file GitHub issues, and propose/apply code (inc/tools/register.php:65-75). What it CANNOT do is help a team member with their actual core job: writing and submitting an article. There is no manage_studio_post / submit_article tool.

This issue proposes a Studio-aware writing tool so a contributor can say "help me draft my Soul Fly recap and submit it for review" and Roadie scaffolds the post and walks them through the submit-for-review flow — entirely on Studio (blog 12), per the confirmed model that Studio is the team's back room and the main blog stays the public front.

Driver

Onboarding Tucker McManus (new contributor → promoted to extra_chill_team on 2026-06-03). Her core job is writing articles. Roadie can explain Studio conversationally but can't do any of her writing workflow. For a writing-first contributor, a platform-management concierge is the wrong shape of help — she needs a writing sidekick.

Why Roadie is well-positioned for this

Roadie already has the two things this needs:

  1. Page + site awareness. extrachill_roadie_build_client_context() (inc/frontend-chat.php:135-170) injects page_url, page_title, site, and site_host into the prompt every turn (with a Referer fallback, and site derived server-side from the WP runtime — not client-trusted). So when a user on studio.extrachill.com asks for writing help, Roadie already knows they're in Studio and can act in context.
  2. The team tier + guidance teaching surface. The "Available Tool Domains" manual (inc/agent-mode/register.php:239-260) already teaches team users what Roadie can do — a new writing tool would slot into that manual so users discover it conversationally.

Proposed tool surface

A new platform tool manage_studio_post (gated to team/admin tier like the existing seven, via extrachill_roadie_filter_tools_by_tier() inc/tools/register.php:107-138), backed by an ability. Capabilities:

  • Create a Studio draft — title + block content on the current Studio site (blog 12), status=draft, authored as the calling user. Mirrors what the Studio Blog tab does via /wp/v2/posts (extrachill-studio/src/blocks/studio/tabs/compose/index.ts:255-277), but callable from chat.
  • Append/edit draft content — let the user iterate ("add a paragraph about the opener", "tighten the intro") with Roadie respecting the editorial voice guidance (register.php:198-208: suggest, don't overwrite).
  • Submit for review — flip the draft to status=pending on Studio (stays on blog 12 — NOT main; see extrachill-studio#29 owner clarification 2026-06-03). This is the contributor's terminal action.
  • List my Studio drafts — author-scoped (&author=<self>), so it never leaks others' work — same scoping the compose tab already enforces (compose/index.ts:191-204).

Hard constraints / design rules

  • Must NOT write to the main blog (blog 1). The main blog is the public-facing publication. Studio submissions stay on Studio; promotion to main is a separate reviewer-initiated step (tracked in extrachill-studio#29 / feat: page-awareness directive — Roadie treats page_url as the current page #75) and is explicitly out of scope here.
  • Tier-gated. team/admin only — use the existing tier filter; public callers must never see this tool.
  • Author-scoped reads. Never expose other users' drafts.
  • Respect editorial voice. Roadie suggests and drafts; it does not silently overwrite the user's words.
  • Reuse, don't reinvent. Prefer wrapping core /wp/v2/posts + WP core pending status (the native approval primitive) over any new storage. No new tables, no new approval system.
  • Layer purity. EC-specific logic stays in extrachill-roadie / extrachill-studio; Data Machine stays generic.

Acceptance criteria

  • A team-tier user can ask Roadie to create a Studio draft and a post appears on blog 12 with status=draft, authored as them.
  • The user can iterate on the draft content through chat.
  • "Submit for review" sets the draft to pending on blog 12 (never main).
  • "List my drafts" returns only the calling user's Studio drafts.
  • The tool is invisible to public tier; visible to team/admin.
  • The "Available Tool Domains" guidance manual documents the new tool so users discover it conversationally.
  • No write path to the main blog (blog 1) exists in this tool.

Out of scope

  • Cross-site promotion to main (extrachill-studio#29, feat: page-awareness directive — Roadie treats page_url as the current page #75).
  • Image/attachment handling beyond what core post create already does.
  • Taxonomy assignment (Studio has no artist/venue/festival taxonomies — those are main-side; handled at promotion).
  • Email-to-reviewer-on-submit (separate small enhancement; would reuse Studio's Transcribe email pattern).

Related

  • extrachill-studio#29 — cross-site blog post lifecycle (the promotion step this tool stops short of)
  • extrachill-studio#75 — first-class Studio→main publishing flow (manual hand-carry today)
  • extrachill-users#45 — the extra_chill_team role that gates this tool
  • Page-awareness: extrachill-roadie/inc/frontend-chat.php:135-170
  • Tier gating: extrachill-roadie/inc/tools/register.php:107-138
  • Guidance manual: extrachill-roadie/inc/agent-mode/register.php:239-260

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions