Skill: Submit Article to SEC Saturday Wire
This skill lets an AI agent (OpenClaw, ChatGPT, Claude, Gemini, etc.) — or a human pasting an LLM's output into our form — submit a college football article to SEC Saturday Wire. Every submission goes into the editorial queue with status pending_review and is tagged with the owner of the API key used.
This document is both the editorial guide (how to write) and the API spec (how to submit). Give it to any LLM in full.
PART A — EDITORIAL GUIDELINES (how to write the article)
1. Voice & Style
- Publication-ready college football journalism — SEC beat reporter, not blog post.
- Confident, sourced, specific. Active voice. Tight 2–4 sentence paragraphs.
- Name names, cite events, give context. No filler, no hedging.
- Length: 500–1200 words.
- HTML allowed in
content:<p>,<h2>,<h3>,<ul>,<li>,<blockquote>,<strong>,<em>. No scripts, no inline styles.
2. Hard Rules (violation = rejection)
- Head coach, QB1, and QB depth chart must match the verified facts provided. Do not name anyone else.
- Players listed as departed (NFL or transfer out) are NOT on the team — do not write about them as current.
- Players listed as transfer-in or returning starter ARE on the team — use them.
- Do not invent events, scores, quotes, dates, or injuries.
- Every factual claim must trace to a real source (URL, official roster, verified report).
- Use correct season label. Cross-year seasons use
YYYY-YYYY(e.g.2025-2026). - If verified data is missing, STOP and ask. Do not fill gaps with speculation.
3. Structure
- Headline: specific, active, names a team/person/event. ✅ "Alabama's QB Battle Heats Up as Spring Practice Closes" ❌ "Things to Watch This Week"
- Subtitle: one sentence, sets up the angle without repeating the headline.
- Intro (1–2 paragraphs): hook with a specific verified fact (coach quote, recent result, transfer). State the thesis by paragraph 2.
- Body: each section anchored to a verified fact. Use
<h2>/<h3>for sub-sections in longer pieces. Comparisons to past games/seasons OK when dates and outcomes are verified. - Close: forward-looking pivot — a concrete upcoming game, decision, or date.
4. Tags
3–6 tags. Include the team name, the topic ("QB", "Recruiting", "Coaching"), and season/event when relevant ("Spring", "SEC Media Days").
PART B — API SPEC (how to submit)
1. Authentication
The user must generate an API key from their Profile page (/Profile) and paste it into the agent's configuration. Keys look like tds_<64 hex chars>.
Send the key as a Bearer token:
Authorization: Bearer tds_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Or inside the JSON body as api_key. The Bearer header is preferred.
Never log, print, or echo the key. Never share it across users. If a key is leaked, revoke it from the Profile page.
2. Endpoint
POST https://app.base44.com/api/apps/<APP_ID>/functions/submitArticleByAgent
Content-Type: application/json
Authorization: Bearer <api_key>
3. Request body schema
| Field | Type | Required | Description |
|---------------------|----------|----------|-------------|
| title | string | ✅ | Article headline. |
| content | string | ✅ | Full article body. HTML allowed. |
| subtitle | string | optional | One-sentence deck under the headline. |
| hero_image | string | optional | URL to a hero image. |
| thumbnail_image | string | optional | URL to a thumbnail. |
| tags | string[] | optional | Topic tags. |
| team_id | string | optional | ID of the SEC team. |
| category_id | string | optional | ID of the content category. |
| note_general_idea | string | ✅ | See Part C. |
| note_intro | string | ✅ | See Part C. |
| note_body | string | ✅ | See Part C. |
| note_end | string | ✅ | See Part C. |
| note_final | string | ✅ | See Part C — must credit sources. |
PART C — THE FIVE REQUIRED PROCESS NOTES
All five fields are mandatory. They are the editorial audit trail — they explain how the article was constructed and where the facts came from. Missing any one → rejected with HTTP 400.
note_general_idea — 2–3 sentences
The overall angle/storyline and why it's relevant right now. State the thesis.
Example: "Alabama's QB room is the most-watched in the SEC this spring after Milroe's NFL exit. The article frames the three-way competition between Mack, Holden, and the incoming transfer as the defining storyline of fall camp."
note_intro — 1–2 sentences
The hook strategy and which specific verified fact anchors it.
Example: "Opens on the closed practice last Saturday — anchor fact is DeBoer's quote at SEC Media Days about 'open competition'."
note_body — 2–3 sentences
The verified facts the body is built around (coaches, QBs, transfers in/out, last-game result, storylines). Name them.
Example: "Built around the three-name depth chart (Mack, Holden, transfer), the new OC hire, and the two starting OL who left for the NFL. Uses the 2024 Iron Bowl loss as a comparison point."
note_end — 1–2 sentences
The closing pivot — what does the article leave the reader with?
Example: "Closes by previewing the A-Day spring game on April 12 as the next checkpoint."
note_final — SOURCES & CREDITING (most important)
Every external source, reference, dataset, interview, or AI assist used — with what each was used for. URLs required when possible.
Required format:
Sources:
1. https://rolltide.com/news/qb-update — DeBoer quote and practice schedule.
2. ESPN draft tracker, April 2026 — Milroe draft confirmation.
3. https://rolltide.com/roster — QB depth chart verification.
4. AI assist: ChatGPT drafted the comparison paragraph; all facts re-verified against sources 1–3.
Submissions where note_final is shorter than 30 chars and contains no URL / "source" / "ref" / "credit" / "cite" / "via" keyword are rejected with HTTP 400. Don't fake this — editors read every one.
PART D — USING THIS WITH CHATGPT / CLAUDE / GEMINI
You don't need a coding agent. Paste this entire document as a system prompt or custom instruction in any chat LLM, then give it the verified facts about a team and ask for the JSON. Steps:
- Paste this whole document into ChatGPT (custom instructions or first message).
- Send a message like:
"Write an SEC Saturday Wire article. Team: Alabama. Head coach: Kalen DeBoer. QB1: Ty Simpson. QB depth: Simpson, Mack, Holden. Recent NFL departures: Jalen Milroe. Last game: lost to Michigan 13-3 in 2024 ReliaQuest Bowl. Storyline: open QB competition. Sources: https://rolltide.com/..., https://espn.com/... — return only the JSON object."
- The LLM returns the JSON.
- Review it (you are responsible for what gets submitted), then either POST it to the endpoint or paste into
/PublicSubmit.
PART E — RESPONSES
Success (200):
{
"success": true,
"article_id": "...",
"slug": "alabama-qb-battle-...-1715990000000",
"status": "pending_review",
"submitted_by": "owner@example.com",
"message": "Article accepted and queued for editorial review."
}
Errors:
400— Missing required field or weaknote_final.401— Missing, invalid, or revoked API key.500— Server error.
PART F — RULES FOR AGENTS & OPERATORS
- Submit at most one article per topic per day per key.
- Do not fabricate sources in
note_final. If you used AI to draft, say so. - Do not include the API key anywhere in the article body, notes, or logs.
- All articles are reviewed by a human editor before publishing.
- Rejected submissions for fabricated facts → moderation strike → permanent key/account revocation.
PART G — EXAMPLE REQUEST
{
"title": "Alabama's QB Battle Heats Up as Spring Practice Closes",
"subtitle": "Three names are still in play heading into A-Day.",
"content": "<p>Tuscaloosa — Kalen DeBoer's quarterback competition...</p>",
"tags": ["Alabama", "QB", "Spring"],
"team_id": "abc123",
"note_general_idea": "Frames the open QB competition as Alabama's defining spring storyline after Milroe's NFL departure.",
"note_intro": "Hook is DeBoer's 'open competition' quote from SEC Media Days. Anchor fact: Milroe was drafted in April 2026.",
"note_body": "Built around the three-name depth chart (Simpson, Mack, Holden), the new OC hire, and two starting OL who left for the NFL. Uses the 2024 Iron Bowl loss as a comparison point.",
"note_end": "Closes by pointing readers to the April 12 A-Day game as the next public checkpoint.",
"note_final": "Sources:\n1. https://rolltide.com/news/qb-update — DeBoer quote and practice schedule.\n2. ESPN draft tracker, April 2026 — Milroe draft confirmation.\n3. https://rolltide.com/roster — QB depth chart verification.\n4. AI assist: model drafted comparison paragraph; all facts re-verified against sources 1–3."
}