feat: batch subagent creation + orchestration fixes#557
Conversation
The script used $RED, $YELLOW, $NC, $GREEN before defining them. Under set -euo pipefail, this caused 'unbound variable' errors when running on main branch (the else branch sourced shared-constants.sh but the if branch never did). Define colors at the top of the script.
- Mark claude CLI fallback as DEPRECATED in resolve_ai_cli() - Add warning log when claude fallback is used - Add 'Orchestration Requirements' block to supervisor header comments - Add 'Autonomous Orchestration' section to AGENTS.md with cron pulse docs - Update AGENTS.md supported tools description (opencode CLI, not claude-code) - Fix agent-test-helper.sh CLI detection order (opencode first) - Update comments throughout to reference opencode workers only The supervisor cron pulse is mandatory for autonomous operation. Without it, the supervisor is passive and requires manual pulse calls.
…subagent (t124) t153: Git merge/cherry-pick/rebase conflict resolution skill covering detection, marker anatomy, resolution strategies, common patterns, post-resolution verification, and AI-assisted tips. t124: Tirith terminal security guard subagent covering 7 rule categories (homograph, injection, pipe-to-shell, dotfile, transport, ecosystem, credential exposure), installation, shell hooks, and aidevops integration.
…t078) t101: Apple-inspired 'Would this confuse my mom?' UX evaluation framework with 6 principles, severity ranking, effort/impact matrix, CRO patterns, and browser automation integration. t078: Lumen (Rust, 1.8k stars) AI-powered git diff viewer, commit message generator, change explainer, and natural language git commands. Supports 8 providers including OpenAI, Claude, Gemini, Ollama. t098: Already existed (playwright-emulation.md, 585 lines).
t095: XcodeBuildMCP (3.9k stars) - Xcode MCP server for building, testing, deploying iOS/macOS apps. 76 MCP tools across 12 workflow groups. t096: Maestro (10.2k stars) - E2E mobile automation with YAML flows, cross-platform support (React Native, Flutter, hybrid), Studio IDE. t097: iOS Simulator MCP (1.5k stars) - simulator interaction via MCP with tap, swipe, type, screenshot, video recording, accessibility tree. Featured in Anthropic's Claude Code Best Practices.
t100: AXe CLI (1.1k stars) - iOS simulator accessibility automation via Apple's Accessibility APIs. Single binary, tap/swipe/type/screenshot/video. t077: LinkedIn content subagent covering post types, OAuth API access, content best practices, analytics, and automation patterns. t076: Platform persona adaptations for LinkedIn, Instagram, YouTube, X/Twitter, and Blog with cross-platform repurposing workflow.
…ption (t072) t075: Content calendar workflow with gap analysis, topic suggestions, lifecycle tracking, platform scheduling, and TODO.md-compatible format. t074: DocStrange document extraction subagent (NanoNets, 1.3k stars). Single-package PDF/DOCX/PPTX extraction with MCP server and schema-based JSON output. Complements t073 Docling stack. t072: Refined transcription subagent - trimmed from 205 to 160 lines, added model selection guidance table, consolidated code examples, stripped unnecessary tool permissions from frontmatter.
…060) t071: Voice AI model landscape - TTS, STT, S2S providers and local models t062: Vercel Agent Skills format and integration with aidevops skill system t060: Jujutsu (jj) VCS research - git-compatible with undo, first-class conflicts
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. WalkthroughThis PR standardizes the AI CLI stack to prioritize opencode (deprecating claude), expands agent orchestration documentation with autonomous operation guidance, and introduces comprehensive documentation for 15+ new tools spanning mobile automation, content management, security, voice AI, and Git workflows. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 14
🤖 Fix all issues with AI agents
In @.agents/scripts/supervisor-helper.sh:
- Around line 1742-1749: The issue: the script calls undefined log_warning in
the claude CLI fallback, which will fail under set -e; update the fallback to
call the existing log_warn function (or define log_warning) so the logging call
succeeds; locate the block that checks "if command -v claude" and replace
log_warning with log_warn (or add a compatible log_warning wrapper that
delegates to log_warn) and keep the rest of the flow (echo "claude" and return
0) unchanged.
In @.agents/seo/mom-test-ux.md:
- Around line 53-59: Replace the non-existent CLI flag usage "playwright
screenshot --aria-snapshot" with the canonical ARIA snapshot test workflow:
remove references to the "--aria-snapshot" flag and the misuse of "playwright
screenshot", and instead show creating an actual Playwright test that navigates
to the page and calls the ARIA snapshot matcher (e.g., toMatchAriaSnapshot on a
locator such as page.getByRole('main')), then instruct readers to update
snapshots with "npx playwright test --update-snapshots"; if ARIA snapshots
aren’t central to this doc, replace the example with a file:line reference to
the official Playwright ARIA snapshot docs instead.
In @.agents/tools/content/content-calendar.md:
- Around line 31-34: Replace the standalone example command "gsc-helper.sh
query-report --min-impressions 500 --max-ctr 0.02 --days 90" in
.agents/tools/content/content-calendar.md with an authoritative reference:
either cite the source that defines that CLI usage (e.g., link or doc section in
seo/google-search-console.md if it documents gsc-helper.sh) or change the
example to a file:line reference pointing to the canonical implementation/usage
(for example the file that contains the gsc-helper.sh help text), and update the
surrounding text to mention the file:line reference instead of an unreferenced
code snippet.
- Around line 31-34: The workflow references a missing helper script and doc:
implement a new executable script named gsc-helper.sh (or a Go/JS CLI with that
entrypoint) that provides the subcommand query-report with flags
--min-impressions, --max-ctr, and --days and wire it to Google Search Console
data retrieval and filtering, and add the corresponding documentation file
seo/google-search-console.md describing usage and required credentials;
alternatively, if you can't implement now, replace the command in
content-calendar.md with a clear TODO note pointing to where gsc-helper.sh and
seo/google-search-console.md will live and remove the non-functional example so
the workflow is not presented as runnable.
In @.agents/tools/deployment/agent-skills.md:
- Around line 52-80: Replace the illustrative directory template, SKILL.md
frontmatter block, and installation examples with pointers to the authoritative
sources: remove the generic "Directory structure template" and the duplicated
"SKILL.md frontmatter" (the duplicated name: skill-name pattern) and instead
reference the single source-of-truth frontmatter defined in the existing
add-skill source; likewise replace the three installation command examples with
a file:line reference to the canonical installation snippet; update headings
"SKILL.md frontmatter", "Directory structure template", and "Installation
command examples" to point readers to those authoritative file:line references
and remove the duplicated frontmatter block so only the single source-of-truth
remains.
In @.agents/tools/git/jujutsu.md:
- Around line 61-85: Replace the unverified CLI examples in
.agents/tools/git/jujutsu.md with authoritative references: either pull the
exact example lines from the official Jujutsu documentation (and add a
citation/URL footnote) or replace each command example (e.g., "jj new", "jj
describe -m", "jj diff", "jj log", "jj status", "jj squash", "jj split", "jj
edit <rev>", "jj rebase -r/-s <rev> -d <dst>", "jj git fetch", "jj git push",
"jj init --git-repo=.", "jj git clone <url>", "jj git init", "jj bookmark set
main") with file:line references to the authoritative internal doc; update the
header of the code block to note the source and ensure the examples exactly
match that source to comply with the .agents/**/*.md guideline.
In @.agents/tools/mobile/axe-cli.md:
- Around line 36-75: The examples in the "Touch, Gestures, and Input", "Hardware
Buttons and Timing", and "Screenshots, Video, and Accessibility" sections are
not backed by an authoritative source; replace each standalone command example
(e.g., axe tap, axe gesture, axe button, axe screenshot, axe record-video, axe
stream-video, axe describe-ui) with either (a) a citation/link to the official
AXe CLI docs or specification that verifies the exact flags and behavior, or (b)
a file:line reference to a vetted internal implementation (e.g., the source that
defines tap/gesture/button/screenshot handlers), and update the text to
reference that source; ensure every code block contains a short note like
"source: <URL or file:line>" per .agents guidelines.
In @.agents/tools/mobile/ios-simulator-mcp.md:
- Around line 51-66: Replace the inline configuration snippets in
.agents/tools/mobile/ios-simulator-mcp.md with authoritative references: either
cite the official MCP configuration docs (include the exact doc URL or section)
or change the examples to file:line references pointing to the actual config
files (~/.config/opencode/mcp.json or ~/.cursor/mcp.json) and the snippet
location; update the text around the symbols "mcpServers", "ios-simulator",
"command", and "args" to reference those authoritative sources instead of
presenting standalone code blocks.
- Around line 21-27: Update the unpinned install snippet `npx -y
ios-simulator-mcp` to pin the minimum safe release by changing it to `npx -y
ios-simulator-mcp@^1.3.3` so installations default to v1.3.3 or newer (addresses
CVE-2025-52573/GHSA-6f6r-m9pv-67jw); modify the install line where the `npx -y
ios-simulator-mcp` snippet appears and ensure the markdown text around it still
reads correctly.
In @.agents/tools/mobile/xcodebuild-mcp.md:
- Around line 40-60: Mark the CLI and JSON examples as non-authoritative or
replace them with authoritative file:line references: update the "claude mcp add
XcodeBuildMCP -- npx -y xcodebuildmcp@beta mcp" snippet and the JSON block
containing "mcpServers" / "XcodeBuildMCP" to either (a) prepend a clear
"Non-authoritative example" note above both the bash and JSON snippets, or (b)
replace each snippet with a reference to the verified source (e.g., the
canonical config file and exact line range) that documents "xcodebuildmcp@beta"
and the "XcodeBuildMCP" server entry; ensure the change mentions the example
command "claude mcp add XcodeBuildMCP" so reviewers can locate and verify the
original content.
In @.agents/tools/security/tirith.md:
- Around line 30-111: The examples in the Installation, Shell Hook Setup,
Configuration and Bypass sections of .agents/tools/security/tirith.md are not
backed by authoritative sources; replace each ad-hoc code/example with either
(a) a citation/link to the official Tirith docs or upstream project pages, or
(b) file:line references to a verified internal policy file containing the exact
commands; update the "Installation" block (brew/npm/cargo/mise lines), "Shell
Hook Setup" block (eval/tirith init examples), the YAML "Configuration" snippet
(version/allowlist/fail_mode keys), and the "Bypass" example (TIRITH=0 ...) to
point to the chosen authoritative source or to internal file:line references,
and add a short note under each section indicating where the authoritative
reference lives (e.g., "See: <official-url> or <repo>/path/to/policy:LINE").
In @.agents/tools/social-media/linkedin.md:
- Around line 40-68: The LinkedIn API examples in the "OAuth 2.0 Setup" and "Key
Endpoints" sections (including the curl example that posts to "/v2/posts" and
the listed endpoints) are not authoritative; replace those inline examples with
either direct citations/links to the official LinkedIn developer documentation
or with explicit internal file:line references to an approved canonical doc, and
remove or mark any code blocks as examples only if you include the authoritative
source; update the markdown in .agents/tools/social-media/linkedin.md
accordingly so the "OAuth 2.0 Setup", "Key Endpoints", and the curl POST example
explicitly reference the official LinkedIn docs or the internal doc:line
locator.
- Around line 24-35: Update the "Post Types" table in
.agents/tools/social-media/linkedin.md to include inline citations/links to the
official LinkedIn/Microsoft Learn UGC Post API or relevant LinkedIn docs for
each limit (e.g., attach a source link next to "Text post" to confirm the 3,000
char limit and links for "Carousel", "Document", "Video", "Image post", and
"Poll"); for any limits that are not present in the official docs, mark them as
"unverified" or "recommended" and link to the nearest authoritative page (UGC
Post API, Media Upload, Rich Content/Assets docs) so readers can verify as the
API evolves and easily locate the specific endpoint or doc section (update
entries for the Type labels "Text post", "Article", "Carousel", "Document",
"Poll", "Image post", and "Video" accordingly).
In @.agents/tools/voice/voice-ai-models.md:
- Around line 29-35: Update the TTS pricing table in
.agents/tools/voice/voice-ai-models.md by adding a "last-updated" timestamp
(e.g., "as of Feb 2026") near the table header, and replace ambiguous price
cells with explicit model variants and billing periods: for OpenAI include
"OpenAI TTS (tts-1, tts-1-hd $30/1M chars)", for Google specify "Google Cloud
TTS (standard), Chirp 3 HD $30/1M chars", and for Gemini-TTS note "token-based
pricing, see provider docs"; correct Cartesia Sonic to list current subscription
tiers and monthly prices explicitly (Pro $4–8/mo, Startup $39/mo, Scale $239/mo)
and annotate which ranges are monthly vs per‑1M chars where applicable. Ensure
each pricing cell clearly states the model variant and billing unit (per month
or per 1M chars/tokens).
🧹 Nitpick comments (9)
.agents/scripts/pre-edit-check.sh (1)
81-85: Consider consolidating color definitions across scripts.Since multiple scripts in
.agents/scripts/likely use similar color definitions, you might consider extracting these to a shared constants file (e.g.,shared-colors.sh) to reduce duplication and prevent similar issues. However, given that line 166 already sourcesshared-constants.sh, this fix keeps the critical definitions local for immediate script execution..agents/tools/mobile/maestro.md (1)
25-25: Static star count will go stale.
10.6k starsis a snapshot. Consider removing the count or noting it's approximate, to avoid misleading readers over time. This is a minor nit — not blocking.Suggested change
-- **GitHub**: https://github.com/mobile-dev-inc/maestro (10.6k stars, Apache-2.0) +- **GitHub**: https://github.com/mobile-dev-inc/maestro (Apache-2.0).agents/tools/content/docstrange.md (1)
80-91: MCP config path is macOS-only.Line 80 references
~/Library/Application Support/Claude/claude_desktop_config.jsonwhich is macOS-specific. Since the framework supports Linux as well (Lumen doc referencesbrewfor macOS/Linux), consider noting the Linux path or making it platform-aware..agents/AGENTS.md (1)
202-227: Autonomous Orchestration section is well-structured but consider trimming the code block.The section follows the progressive disclosure pattern (brief overview → pointer to full docs), which is good. However, the 6-command code block (Lines 209-222) is fairly detailed for root AGENTS.md. Most tasks won't involve batch orchestration, so this may fall below the >80% relevance threshold.
Consider condensing to just the most essential commands (e.g.,
cron install+pulse+dashboard) and deferring the rest to the full docs.Suggested trimmed version
**Supervisor** (`supervisor-helper.sh`): Manages parallel task execution with SQLite state machine. ```bash -# Add tasks and create batch -supervisor-helper.sh add t001 --repo "$(pwd)" --description "Task description" -supervisor-helper.sh batch "my-batch" --concurrency 3 --tasks "t001,t002,t003" - # Install cron pulse (REQUIRED for autonomous operation) supervisor-helper.sh cron install -# Manual pulse (cron does this automatically every 2 minutes) -supervisor-helper.sh pulse --batch <batch-id> - # Monitor supervisor-helper.sh dashboard --batch <batch-id> -supervisor-helper.sh status <batch-id></details> As per coding guidelines, `.agents/AGENTS.md`: "Organize agent documentation with instructions budget of ~50-100 max in root AGENTS.md, using progressive disclosure with pointers to subagents" and "Keep every instruction in root AGENTS.md relevant to >80% of tasks." </blockquote></details> <details> <summary>.agents/tools/mobile/xcodebuild-mcp.md (1)</summary><blockquote> `42-48`: **Align CLI guidance with opencode-only policy.** This doc still foregrounds Claude Code setup. To avoid drift from the opencode-only orchestration policy, label Claude usage as legacy/deprecated or move it behind a “Legacy” note. </blockquote></details> <details> <summary>.agents/tools/mobile/axe-cli.md (1)</summary><blockquote> `69-72`: **Call out ffmpeg as a prerequisite for the stream example.** The stream-to-ffmpeg pipeline assumes ffmpeg is installed; add a one-line prerequisite to avoid CI/agent confusion in automation runs. </blockquote></details> <details> <summary>.agents/tools/mobile/ios-simulator-mcp.md (1)</summary><blockquote> `23-25`: **Consider marking Claude CLI as legacy here too.** To keep docs consistent with opencode-only orchestration, add a “Legacy/Deprecated” note for Claude CLI usage. </blockquote></details> <details> <summary>.agents/tools/voice/voice-ai-models.md (1)</summary><blockquote> `141-145`: **Consider: Duplicate cross-references.** The Related section duplicates cross-references from lines 16-19. While this repetition aids navigation in a longer document, consider whether a single reference location would reduce maintenance burden. </blockquote></details> <details> <summary>.agents/tools/voice/transcription.md (1)</summary><blockquote> `62-66`: **Add model download instructions for whisper.cpp.** The command at line 65 assumes the model file `models/ggml-large-v3-turbo.bin` already exists, but no download instructions are provided. Users following this example may not know how to obtain the model file. <details> <summary>📥 Proposed addition for model download step</summary> ```diff Optimized for Apple Silicon and CPU inference. Build from source: https://github.com/ggml-org/whisper.cpp +# Download model (first time only) +bash models/download-ggml-model.sh large-v3-turbo + ```bash ./build/bin/whisper-cli -m models/ggml-large-v3-turbo.bin -f audio.wav -otxt -osrt</details> </blockquote></details> </blockquote></details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
| # DEPRECATED: claude CLI fallback - will be removed | ||
| if command -v claude &>/dev/null; then | ||
| log_warning "Using deprecated claude CLI fallback. Install opencode: npm i -g opencode" | ||
| echo "claude" | ||
| return 0 | ||
| fi | ||
| log_error "Neither opencode nor claude CLI found. Install one to dispatch workers." | ||
| log_error "opencode CLI not found. Install it: npm i -g opencode" | ||
| log_error "See: https://opencode.ai/docs/installation/" |
There was a problem hiding this comment.
Fix undefined log_warning call (will exit under set -e).
log_warning isn’t defined in this script (only log_warn exists). Under set -euo pipefail, hitting the claude fallback will terminate the supervisor.
🐛 Suggested fix
- log_warning "Using deprecated claude CLI fallback. Install opencode: npm i -g opencode"
+ log_warn "Using deprecated claude CLI fallback. Install opencode: npm i -g opencode"🤖 Prompt for AI Agents
In @.agents/scripts/supervisor-helper.sh around lines 1742 - 1749, The issue:
the script calls undefined log_warning in the claude CLI fallback, which will
fail under set -e; update the fallback to call the existing log_warn function
(or define log_warning) so the logging call succeeds; locate the block that
checks "if command -v claude" and replace log_warning with log_warn (or add a
compatible log_warning wrapper that delegates to log_warn) and keep the rest of
the flow (echo "claude" and return 0) unchanged.
| ```bash | ||
| # ARIA snapshot (preferred - fast, structured, no vision tokens) | ||
| playwright screenshot --aria-snapshot https://example.com/pricing | ||
|
|
||
| # Full screenshot (for layout/visual issues) | ||
| playwright screenshot https://example.com/pricing --full-page | ||
| ``` |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
Playwright CLI screenshot command --aria-snapshot flag documentation
💡 Result:
There is no --aria-snapshot flag for the Playwright CLI screenshot command in the official docs/CLI reference. The CLI docs explicitly point you to discover the current screenshot options via npx playwright screenshot --help (and overall CLI options via npx playwright --help). [1]
“Aria snapshots” are a separate feature: they produce a YAML representation of the accessibility tree and are generated/used via Playwright tests (e.g., expect(locator).toMatchAriaSnapshot(...), updated with npx playwright test -u/--update-snapshots) and via the Code Generator UI (“Assert snapshot” / “Aria snapshot” tab)—not via the screenshot CLI. [2]
Sources: [1] [2]
🌐 Web query:
Playwright screenshot ARIA snapshot command line
💡 Result:
Screenshot (CLI)
npx playwright screenshot --full-page https://example.com example.png(See also npx playwright screenshot --help for options like --wait-for-timeout.) [1]
ARIA snapshot (there isn’t a single “aria snapshot” CLI like screenshot)
ARIA snapshots are produced via Playwright Test assertions (or via Codegen), then written/updated using the test runner. [2]
1) Add an ARIA snapshot assertion in a test
import { test, expect } from '@playwright/test';
test('aria snapshot', async ({ page }) => {
await page.goto('https://example.com');
await expect(page.getByRole('main')).toMatchAriaSnapshot({ name: 'main.aria.yml' });
});[2]
2) Generate / update the .aria.yml snapshot from the command line
npx playwright test --update-snapshots
# or: npx playwright test -u[2][3]
Optional (print YAML to stdout):
const yaml = await page.locator('body').ariaSnapshot();
console.log(yaml);[2]
Sources: [1] [2] [3]
Remove non-existent --aria-snapshot flag and use correct ARIA snapshot workflow.
The playwright screenshot --aria-snapshot flag does not exist in the official Playwright CLI. ARIA snapshots are generated through Playwright tests, not the screenshot command. Replace this example with the correct approach:
// In test file
import { test, expect } from '@playwright/test';
test('aria snapshot', async ({ page }) => {
await page.goto('https://example.com/pricing');
await expect(page.getByRole('main')).toMatchAriaSnapshot({ name: 'pricing.aria.yml' });
});Then update snapshots via:
npx playwright test --update-snapshotsThis example violates the .agents/**/*.md guideline requiring code examples to be authoritative. If ARIA snapshots aren't the focus of this doc, use a file:line reference to canonical instructions instead.
🤖 Prompt for AI Agents
In @.agents/seo/mom-test-ux.md around lines 53 - 59, Replace the non-existent
CLI flag usage "playwright screenshot --aria-snapshot" with the canonical ARIA
snapshot test workflow: remove references to the "--aria-snapshot" flag and the
misuse of "playwright screenshot", and instead show creating an actual
Playwright test that navigates to the page and calls the ARIA snapshot matcher
(e.g., toMatchAriaSnapshot on a locator such as page.getByRole('main')), then
instruct readers to update snapshots with "npx playwright test
--update-snapshots"; if ARIA snapshots aren’t central to this doc, replace the
example with a file:line reference to the official Playwright ARIA snapshot docs
instead.
| ```bash | ||
| # Extract high-impression, low-CTR queries as content gaps (see seo/google-search-console.md) | ||
| gsc-helper.sh query-report --min-impressions 500 --max-ctr 0.02 --days 90 | ||
| ``` |
There was a problem hiding this comment.
Use authoritative examples or replace with file:line references.
This command example should be tied to an authoritative source or replaced with a file:line reference per .agents guidance.
As per coding guidelines: “.agents/**/*.md: Use code examples only when authoritative, otherwise use file:line references”.
🤖 Prompt for AI Agents
In @.agents/tools/content/content-calendar.md around lines 31 - 34, Replace the
standalone example command "gsc-helper.sh query-report --min-impressions 500
--max-ctr 0.02 --days 90" in .agents/tools/content/content-calendar.md with an
authoritative reference: either cite the source that defines that CLI usage
(e.g., link or doc section in seo/google-search-console.md if it documents
gsc-helper.sh) or change the example to a file:line reference pointing to the
canonical implementation/usage (for example the file that contains the
gsc-helper.sh help text), and update the surrounding text to mention the
file:line reference instead of an unreferenced code snippet.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Search for gsc-helper.sh in the repository
echo "=== Searching for gsc-helper.sh ==="
rg -n "gsc-helper\.sh" . --type md --type sh
echo ""
echo "=== Locating gsc-helper.sh file ==="
find . -name "gsc-helper.sh" -type f
echo ""
echo "=== Checking for seo/google-search-console.md ==="
ls -la seo/google-search-console.md 2>/dev/null || echo "File not found"
echo ""
echo "=== Searching for any references to gsc or google-search-console ==="
rg -n "gsc|google-search-console" . --type md | head -20Repository: marcusquinn/aidevops
Length of output: 2731
Implement missing helper script and documentation—this workflow is non-functional.
The referenced gsc-helper.sh script does not exist in the repository, and neither does the documentation file seo/google-search-console.md that it depends on. The command at line 33 cannot execute without these components. Either implement these missing pieces or replace this section with a placeholder/TODO until the infrastructure is ready.
🤖 Prompt for AI Agents
In @.agents/tools/content/content-calendar.md around lines 31 - 34, The workflow
references a missing helper script and doc: implement a new executable script
named gsc-helper.sh (or a Go/JS CLI with that entrypoint) that provides the
subcommand query-report with flags --min-impressions, --max-ctr, and --days and
wire it to Google Search Console data retrieval and filtering, and add the
corresponding documentation file seo/google-search-console.md describing usage
and required credentials; alternatively, if you can't implement now, replace the
command in content-calendar.md with a clear TODO note pointing to where
gsc-helper.sh and seo/google-search-console.md will live and remove the
non-functional example so the workflow is not presented as runnable.
| ```text | ||
| skill-name/ | ||
| SKILL.md # Instructions for the agent (required) | ||
| scripts/ # Helper scripts for automation (optional) | ||
| references/ # Supporting documentation (optional) | ||
| ``` | ||
|
|
||
| **SKILL.md frontmatter:** | ||
|
|
||
| ```yaml | ||
| --- | ||
| name: skill-name | ||
| description: One sentence describing when to use this skill | ||
| metadata: | ||
| author: author-name | ||
| version: "1.0.0" | ||
| --- | ||
| ``` | ||
|
|
||
| The body contains agent instructions: how the skill works, usage examples, | ||
| expected output format, and troubleshooting guidance. | ||
|
|
||
| ## Installation | ||
|
|
||
| ```bash | ||
| npx skills add vercel-labs/agent-skills # Native CLI | ||
| aidevops skill add vercel-labs/agent-skills # aidevops (preferred) | ||
| /add-skill vercel-labs/agent-skills --name vercel-deploy # With custom name | ||
| ``` |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major
🧩 Analysis chain
🏁 Script executed:
cd /tmp && cat -n .agents/tools/deployment/agent-skills.md | sed -n '52,80p'Repository: marcusquinn/aidevops
Length of output: 136
🏁 Script executed:
rg -n "agent skills|add-skill|vercel-deploy|SKILL.md|skills add" .agents/Repository: marcusquinn/aidevops
Length of output: 16147
🏁 Script executed:
cat -n .agents/tools/deployment/agent-skills.md | sed -n '52,80p'Repository: marcusquinn/aidevops
Length of output: 1012
🏁 Script executed:
# Search for exact matches of the SKILL.md frontmatter example
rg -A 5 "name: skill-name" .agents/Repository: marcusquinn/aidevops
Length of output: 775
🏁 Script executed:
# Check if "npx skills add vercel-labs/agent-skills" appears elsewhere
rg -n "npx skills add vercel-labs/agent-skills" .agents/Repository: marcusquinn/aidevops
Length of output: 270
Replace illustrative code examples with file:line references and consolidate duplicate frontmatter pattern.
Lines 52–80 contain illustrative templates rather than authoritative excerpts. Per guidelines (.agents/**/*.md), replace these with file:line references to the authoritative sources. Additionally, the name: skill-name frontmatter pattern at lines 61–69 is duplicated in .agents/tools/build-agent/add-skill.md — consolidate to a single source of truth.
Affected line ranges
- 52–57: Directory structure template (generic example)
- 61–69: SKILL.md frontmatter template (duplicated elsewhere)
- 76–80: Installation command examples (illustrative)
🤖 Prompt for AI Agents
In @.agents/tools/deployment/agent-skills.md around lines 52 - 80, Replace the
illustrative directory template, SKILL.md frontmatter block, and installation
examples with pointers to the authoritative sources: remove the generic
"Directory structure template" and the duplicated "SKILL.md frontmatter" (the
duplicated name: skill-name pattern) and instead reference the single
source-of-truth frontmatter defined in the existing add-skill source; likewise
replace the three installation command examples with a file:line reference to
the canonical installation snippet; update headings "SKILL.md frontmatter",
"Directory structure template", and "Installation command examples" to point
readers to those authoritative file:line references and remove the duplicated
frontmatter block so only the single source-of-truth remains.
| ```bash | ||
| # Repository setup | ||
| jj git init # New jj repo with git backend | ||
| jj git clone <url> # Clone a git remote | ||
| jj init --git-repo=. # Colocate: add jj to existing git repo | ||
|
|
||
| # Daily workflow | ||
| jj new # Start a new change on top of current | ||
| jj describe -m "message" # Set/update commit message | ||
| jj diff # Show changes in working copy | ||
| jj log # Show commit graph (rich template output) | ||
| jj status # Show working copy status | ||
|
|
||
| # Rewriting history | ||
| jj squash # Move working copy changes into parent | ||
| jj split # Split working copy commit into two | ||
| jj edit <rev> # Edit an earlier commit (descendants auto-rebase) | ||
| jj rebase -r <rev> -d <dst> # Rebase a single commit | ||
| jj rebase -s <rev> -d <dst> # Rebase commit and descendants | ||
|
|
||
| # Git interop | ||
| jj git fetch # Fetch from git remotes | ||
| jj git push # Push bookmarks to git remote | ||
| jj bookmark set main # Set a bookmark (branch) on current commit | ||
| ``` |
There was a problem hiding this comment.
Use authoritative examples or replace with file:line references.
The CLI examples should be sourced from official Jujutsu docs or replaced with file:line references to an authoritative internal doc.
As per coding guidelines: “.agents/**/*.md: Use code examples only when authoritative, otherwise use file:line references”.
🤖 Prompt for AI Agents
In @.agents/tools/git/jujutsu.md around lines 61 - 85, Replace the unverified
CLI examples in .agents/tools/git/jujutsu.md with authoritative references:
either pull the exact example lines from the official Jujutsu documentation (and
add a citation/URL footnote) or replace each command example (e.g., "jj new",
"jj describe -m", "jj diff", "jj log", "jj status", "jj squash", "jj split", "jj
edit <rev>", "jj rebase -r/-s <rev> -d <dst>", "jj git fetch", "jj git push",
"jj init --git-repo=.", "jj git clone <url>", "jj git init", "jj bookmark set
main") with file:line references to the authoritative internal doc; update the
header of the code block to note the source and ensure the examples exactly
match that source to comply with the .agents/**/*.md guideline.
| ## MCP Configuration | ||
|
|
||
| ### Claude Code | ||
|
|
||
| ```bash | ||
| claude mcp add XcodeBuildMCP -- npx -y xcodebuildmcp@beta mcp | ||
| ``` | ||
|
|
||
| ### JSON Config (Cursor, VS Code, Claude Desktop, OpenCode) | ||
|
|
||
| ```json | ||
| { | ||
| "mcpServers": { | ||
| "XcodeBuildMCP": { | ||
| "command": "npx", | ||
| "args": ["-y", "xcodebuildmcp@beta", "mcp"] | ||
| } | ||
| } | ||
| } | ||
| ``` | ||
|
|
There was a problem hiding this comment.
Mark non-authoritative snippets or replace with file:line references.
These CLI/config examples are not tied to an authoritative source. Per .agents guidelines, either cite authoritative sources for these examples or replace them with file:line references to a verified source document.
As per coding guidelines: “.agents/**/*.md: Use code examples only when authoritative, otherwise use file:line references”.
🤖 Prompt for AI Agents
In @.agents/tools/mobile/xcodebuild-mcp.md around lines 40 - 60, Mark the CLI
and JSON examples as non-authoritative or replace them with authoritative
file:line references: update the "claude mcp add XcodeBuildMCP -- npx -y
xcodebuildmcp@beta mcp" snippet and the JSON block containing "mcpServers" /
"XcodeBuildMCP" to either (a) prepend a clear "Non-authoritative example" note
above both the bash and JSON snippets, or (b) replace each snippet with a
reference to the verified source (e.g., the canonical config file and exact line
range) that documents "xcodebuildmcp@beta" and the "XcodeBuildMCP" server entry;
ensure the change mentions the example command "claude mcp add XcodeBuildMCP" so
reviewers can locate and verify the original content.
| ## Installation | ||
|
|
||
| ```bash | ||
| brew install sheeki03/tap/tirith # macOS | ||
| npm install -g tirith # cross-platform | ||
| cargo install tirith # from source | ||
| mise use -g tirith # mise | ||
| ``` | ||
|
|
||
| Also available via Nix, deb, rpm, AUR, Scoop, and Chocolatey. | ||
|
|
||
| ## Shell Hook Setup | ||
|
|
||
| Add to your shell profile — this is the only activation step: | ||
|
|
||
| ```bash | ||
| # zsh (~/.zshrc) | ||
| eval "$(tirith init --shell zsh)" | ||
|
|
||
| # bash (~/.bashrc) | ||
| eval "$(tirith init --shell bash)" | ||
|
|
||
| # fish (~/.config/fish/config.fish) | ||
| tirith init --shell fish | source | ||
| ``` | ||
|
|
||
| Every command is now guarded. Clean commands pass through invisibly. | ||
|
|
||
| ## Rule Categories | ||
|
|
||
| | Category | What it stops | | ||
| |----------|---------------| | ||
| | **Homograph attacks** | Cyrillic/Greek lookalikes in hostnames, punycode domains, mixed-script labels | | ||
| | **Terminal injection** | ANSI escape sequences that rewrite display, bidi overrides, zero-width characters | | ||
| | **Pipe-to-shell** | `curl \| bash`, `wget \| sh`, `python <(curl ...)`, `eval $(wget ...)` | | ||
| | **Dotfile attacks** | Downloads targeting `~/.bashrc`, `~/.ssh/authorized_keys`, `~/.gitconfig` | | ||
| | **Insecure transport** | Plain HTTP piped to shell, `curl -k`, disabled TLS verification | | ||
| | **Ecosystem threats** | Git clone typosquats, untrusted Docker registries, pip/npm URL installs | | ||
| | **Credential exposure** | `http://user:pass@host` userinfo tricks, shortened URLs hiding destinations | | ||
|
|
||
| Critical rules (homograph, dotfile) **block** execution. Medium rules (pipe-to-shell with clean URL) **warn** but allow. | ||
|
|
||
| ## Commands | ||
|
|
||
| ```bash | ||
| tirith check -- <cmd> # Analyze without executing | ||
| tirith score <url> # URL trust signal breakdown | ||
| tirith diff <url> # Byte-level suspicious character comparison | ||
| tirith run <url> # Safe curl|bash replacement (download, review, confirm) | ||
| tirith receipt list # Audit trail of scripts run via tirith run | ||
| tirith why # Explain last triggered rule | ||
| tirith doctor # Diagnostic check (shell, hooks, policy) | ||
| ``` | ||
|
|
||
| ## Configuration | ||
|
|
||
| YAML policy file, discovered in order: | ||
|
|
||
| 1. `.tirith/policy.yaml` (walks up to repo root) | ||
| 2. `~/.config/tirith/policy.yaml` | ||
|
|
||
| ```yaml | ||
| version: 1 | ||
| allowlist: | ||
| - "get.docker.com" | ||
| - "sh.rustup.rs" | ||
|
|
||
| severity_overrides: | ||
| docker_untrusted_registry: critical | ||
|
|
||
| fail_mode: open # or "closed" for strict environments | ||
| ``` | ||
|
|
||
| Organizations can set `allow_bypass: false` to prevent per-command bypass. | ||
|
|
||
| ## Bypass | ||
|
|
||
| For commands you've verified manually: | ||
|
|
||
| ```bash | ||
| TIRITH=0 curl -L https://known-safe.example.com | bash | ||
| ``` |
There was a problem hiding this comment.
Use authoritative examples or replace with file:line references.
These installation/configuration examples need authoritative sources (official docs) or must be replaced with file:line references to a verified source per .agents guidance.
As per coding guidelines: “.agents/**/*.md: Use code examples only when authoritative, otherwise use file:line references”.
🤖 Prompt for AI Agents
In @.agents/tools/security/tirith.md around lines 30 - 111, The examples in the
Installation, Shell Hook Setup, Configuration and Bypass sections of
.agents/tools/security/tirith.md are not backed by authoritative sources;
replace each ad-hoc code/example with either (a) a citation/link to the official
Tirith docs or upstream project pages, or (b) file:line references to a verified
internal policy file containing the exact commands; update the "Installation"
block (brew/npm/cargo/mise lines), "Shell Hook Setup" block (eval/tirith init
examples), the YAML "Configuration" snippet (version/allowlist/fail_mode keys),
and the "Bypass" example (TIRITH=0 ...) to point to the chosen authoritative
source or to internal file:line references, and add a short note under each
section indicating where the authoritative reference lives (e.g., "See:
<official-url> or <repo>/path/to/policy:LINE").
| ## Post Types | ||
|
|
||
| | Type | Use Case | Notes | | ||
| |------|----------|-------| | ||
| | **Text post** | Thought leadership, updates | 3,000 char limit | | ||
| | **Article** | Long-form content | Published on LinkedIn's platform | | ||
| | **Carousel** | Multi-page visual content | PDF upload, up to 300 pages | | ||
| | **Document** | Whitepapers, guides | PDF/PPT/DOC, 100MB max | | ||
| | **Poll** | Audience engagement | 2-4 options, 1-2 week duration | | ||
| | **Image post** | Visual content | Up to 9 images per post | | ||
| | **Video** | Native video content | Up to 10 min recommended | | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, check the actual file to see its current state
cat -n .agents/tools/social-media/linkedin.md | head -50Repository: marcusquinn/aidevops
Length of output: 1962
🌐 Web query:
LinkedIn Community Management API v2 post types character limits size restrictions official documentation
💡 Result:
Official docs (LinkedIn Community Management / UGC posting) — post types + limits
Post “types” (via shareMediaCategory)
The UGC Post API (POST /v2/ugcPosts) supports these shareMediaCategory values (i.e., post content types): ARTICLE, IMAGE, NONE, RICH, VIDEO, LEARNING_COURSE, JOB, QUESTION, ANSWER, CAROUSEL, TOPIC, NATIVE_DOCUMENT, URN_REFERENCE, LIVE_VIDEO. [1]
Character limits / field length limits (UGC Post API)
- Post text (
shareCommentary.text): max 3000 characters. [1] - Landing page URL (
primaryLandingPageUrl,landingPageUrl): max 2000 characters. [1] originalUrl: max 8192 characters. [1]- Thumbnail
altText: max 4086 characters (recommended <120). [1] - Thumbnail
url: max 8192 characters. [1]
Media upload restrictions (Assets / Vector Asset API)
Images
- Supported formats: JPG, GIF, PNG. [2]
- Pixel limit: < 36,152,320 pixels. [2]
- GIF limit: up to 250 frames. [2]
Videos (upload mechanics)
- < 200 MB: single-operation upload. [3]
- > 200 MB: must use multi-part upload; LinkedIn’s doc example splits parts into 5 MB chunks. [3]
Creation validation note (video/live video/document posts)
LinkedIn enforces that for VIDEO, LIVE_VIDEO, and NATIVE_DOCUMENT UGC posts, the fields thumbnail, originalURL, and description must be empty (otherwise the API can return a 400 error). [4]
Sources: UGC Post API (Microsoft Learn) [1], Assets/Vector Asset API (Microsoft Learn) [2][3], LinkedIn Developer Newsletter / API changes note [4].
🏁 Script executed:
# Check for duplicate instructions in .agents directory related to linkedin or post types
rg "post type|carousel|document|character limit|300 pages" .agents/ --type mdRepository: marcusquinn/aidevops
Length of output: 50376
Cite official LinkedIn API documentation sources for specific limits.
The 3,000 character limit for text posts is confirmed in LinkedIn's official UGC Post API docs. However, several other limits in the table (carousel 300 pages, document 100MB, video 10 min recommended, 9 images per post, and poll 1–2 week duration) could not be verified against the current official Microsoft Learn documentation. Add links to the specific LinkedIn API endpoints or documentation sections that define each limit to ensure accuracy as the API evolves.
🤖 Prompt for AI Agents
In @.agents/tools/social-media/linkedin.md around lines 24 - 35, Update the
"Post Types" table in .agents/tools/social-media/linkedin.md to include inline
citations/links to the official LinkedIn/Microsoft Learn UGC Post API or
relevant LinkedIn docs for each limit (e.g., attach a source link next to "Text
post" to confirm the 3,000 char limit and links for "Carousel", "Document",
"Video", "Image post", and "Poll"); for any limits that are not present in the
official docs, mark them as "unverified" or "recommended" and link to the
nearest authoritative page (UGC Post API, Media Upload, Rich Content/Assets
docs) so readers can verify as the API evolves and easily locate the specific
endpoint or doc section (update entries for the Type labels "Text post",
"Article", "Carousel", "Document", "Poll", "Image post", and "Video"
accordingly).
| ### OAuth 2.0 Setup | ||
|
|
||
| 1. Create app at https://www.linkedin.com/developers/apps | ||
| 2. Request Community Management API access (requires app review) | ||
| 3. Configure redirect URI and obtain client ID/secret | ||
|
|
||
| ```bash | ||
| # Store credentials securely | ||
| aidevops secret set LINKEDIN_CLIENT_ID | ||
| aidevops secret set LINKEDIN_CLIENT_SECRET | ||
| aidevops secret set LINKEDIN_ACCESS_TOKEN | ||
| ``` | ||
|
|
||
| ### Key Endpoints | ||
|
|
||
| | Endpoint | Method | Purpose | | ||
| |----------|--------|---------| | ||
| | `/v2/userinfo` | GET | Authenticated user profile | | ||
| | `/v2/posts` | POST | Create text/media posts | | ||
| | `/v2/images?action=initializeUpload` | POST | Register image upload | | ||
| | `/v2/organizationalEntityShareStatistics` | GET | Post analytics | | ||
|
|
||
| ```bash | ||
| # Create a text post | ||
| curl -X POST -H "Authorization: Bearer $TOKEN" \ | ||
| -H "Content-Type: application/json" \ | ||
| "https://api.linkedin.com/v2/posts" \ | ||
| -d '{"author":"urn:li:person:ID","lifecycleState":"PUBLISHED","visibility":"PUBLIC","commentary":"Post text here","distribution":{"feedDistribution":"MAIN_FEED"}}' | ||
| ``` |
There was a problem hiding this comment.
Use authoritative examples or replace with file:line references.
These API examples need to be sourced from official LinkedIn docs or replaced with file:line references to an authoritative internal doc.
As per coding guidelines: “.agents/**/*.md: Use code examples only when authoritative, otherwise use file:line references”.
🤖 Prompt for AI Agents
In @.agents/tools/social-media/linkedin.md around lines 40 - 68, The LinkedIn
API examples in the "OAuth 2.0 Setup" and "Key Endpoints" sections (including
the curl example that posts to "/v2/posts" and the listed endpoints) are not
authoritative; replace those inline examples with either direct citations/links
to the official LinkedIn developer documentation or with explicit internal
file:line references to an approved canonical doc, and remove or mark any code
blocks as examples only if you include the authoritative source; update the
markdown in .agents/tools/social-media/linkedin.md accordingly so the "OAuth 2.0
Setup", "Key Endpoints", and the curl POST example explicitly reference the
official LinkedIn docs or the internal doc:line locator.
| | Provider | Latency | Quality | Voice Clone | Languages | Pricing | | ||
| |----------|---------|---------|-------------|-----------|---------| | ||
| | ElevenLabs | ~300ms | Best | Yes | 29 | $5-330/mo | | ||
| | OpenAI TTS | ~400ms | Great | No | 57 | $15/1M chars | | ||
| | Cartesia Sonic | ~150ms | Great | Yes (5s ref) | 17 | $8-66/mo | | ||
| | Google Cloud TTS | ~200ms | Good | No (custom) | 50+ | $4-16/1M chars | | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
cat -n .agents/tools/voice/voice-ai-models.md | head -50Repository: marcusquinn/aidevops
Length of output: 2448
🌐 Web query:
ElevenLabs TTS API current pricing 2026
💡 Result:
As of February 2026, ElevenLabs’ TTS/API access is priced via the standard subscription plans (credits/month) on their API Pricing page: (elevenlabs.io)
- Free: $0/mo — 10k credits/mo (elevenlabs.io)
- Starter: $5/mo — 30k credits/mo (elevenlabs.io)
- Creator: $22 first month (50% off), then $11/mo — 100k credits/mo (elevenlabs.io)
- Pro: $99/mo — 500k credits/mo (elevenlabs.io)
- Scale: $330/mo — 2M credits/mo (includes seats/workspace) (elevenlabs.io)
- Business: $1,320/mo — 11M credits/mo (mentions low-latency TTS “as low as 5c/minute”) (elevenlabs.io)
- Enterprise: Custom pricing (elevenlabs.io)
They also advertise a rough TTS cost of “~$0.12 per minute” on their TTS API page (model-dependent). (elevenlabs.io)
Citations:
- 1: https://elevenlabs.io/pricing/api?utm_source=openai
- 2: https://elevenlabs.io/pricing/api?utm_source=openai
- 3: https://elevenlabs.io/pricing/api?utm_source=openai
- 4: https://elevenlabs.io/pricing/api/?utm_source=openai
- 5: https://elevenlabs.io/pricing/api/?utm_source=openai
- 6: https://elevenlabs.io/pricing/api/?utm_source=openai
- 7: https://elevenlabs.io/pricing/api/?utm_source=openai
- 8: https://elevenlabs.io/pricing/api/?utm_source=openai
- 9: https://elevenlabs.io/text-to-speech-api?utm_source=openai
🌐 Web query:
OpenAI TTS API current pricing rates 2026
💡 Result:
As of February 2026, OpenAI’s Text-to-Speech (TTS) API pricing is listed as:
- TTS (tts-1): $15.00 per 1M characters (speech generation) [1]
- TTS HD (tts-1-hd): $30.00 per 1M characters (speech generation) [1]
- gpt-4o-mini-tts (newer TTS option billed via audio tokens): $12.00 per 1M audio output tokens (estimated ~$0.015/min) [1][2]
Sources: OpenAI API Pricing page and pricing docs [1][2].
[1] https://platform.openai.com/pricing
[2] https://platform.openai.com/docs/pricing/
🌐 Web query:
Cartesia Sonic TTS pricing 2026
💡 Result:
As of February 8, 2026, Cartesia’s Sonic (TTS) is priced via subscription tiers that include a monthly pool of model credits, with Sonic TTS usage billed at 1 credit per character. [1]
Plans (credits included)
- Free: $0/mo with 20K model credits [1]
- Pro: $4/mo (billed yearly) with 100K model credits [1]
- Startup: $39/mo (billed yearly) with 1.25M model credits [1]
- Scale: $239/mo (billed yearly) with 8M model credits [1]
- Enterprise: “Contact us” (custom usage pricing) [1]
Effective TTS cost (from included credits; 1 credit = 1 character)
Approximate included cost per 1,000 characters:
- Pro: $4 / 100,000 chars ≈ $0.04 / 1K chars
- Startup: $39 / 1,250,000 chars ≈ $0.0312 / 1K chars
- Scale: $239 / 8,000,000 chars ≈ $0.0299 / 1K chars
Notes
- Cartesia’s public pricing page shows the credit rates (e.g., 1 credit/character for Sonic TTS) but does not clearly publish a universal $/credit overage rate; overages/extra usage appear to be handled via their portal/calculator and plan terms. [1]
- A third-party comparison site lists Cartesia Sonic 3 at $0.05 per 1K characters, but treat that as non-official. [2]
Sources: Cartesia pricing page [1]; third-party comparison [2].
[1] https://cartesia.ai/pricing
[2] https://www.zubnet.ai/compare.html
🌐 Web query:
Google Cloud TTS pricing 2026
💡 Result:
As listed on Google Cloud’s Text-to-Speech pricing page (accessed Feb 8, 2026), pricing is mainly based on characters (legacy/latest models) or tokens (Gemini-TTS). Billing counts spaces/newlines and most SSML tags (except <mark>). [1]
Gemini‑TTS (token-based)
- Gemini 2.5 Flash TTS / Flash‑Lite Preview TTS: No free tier; $0.50 / 1M text input tokens and $10.00 / 1M audio output tokens [1]
- Gemini 2.5 Pro TTS: No free tier; $1.00 / 1M text input tokens and $20.00 / 1M audio output tokens [1]
- Note: 25 audio tokens ≈ 1 second of audio [1]
Latest TTS models (character-based)
- Chirp 3: HD: 1M chars free/month, then $30 / 1M chars [1]
- Instant custom voice: No free tier, $60 / 1M chars [1]
Legacy TTS models (character-based)
- Standard voices: 4M chars free/month, then $4 / 1M chars [1]
- WaveNet voices: 4M chars free/month, then $4 / 1M chars [1]
- Neural2 voices: 1M chars free/month, then $16 / 1M chars [1]
- Studio voices: 1M chars free/month, then $160 / 1M chars [1]
- Polyglot (Preview): 1M chars free/month, then $16 / 1M chars [1]
Source: Google Cloud “Text-to-Speech pricing” page. [1]
Add last-updated date to TTS pricing table and verify currency of model tiers.
The table omits newer pricing options (OpenAI's tts-1-hd at $30/1M chars; Google's Chirp 3 HD at $30/1M; Gemini-TTS token-based pricing). Cartesia's documented range ($8-66/mo) does not align with current subscription structure (Pro $4-8/mo, Startup $39/mo, Scale $239/mo). Add a timestamp (e.g., "as of Feb 2026") and specify which model variants and billing periods the ranges represent.
🤖 Prompt for AI Agents
In @.agents/tools/voice/voice-ai-models.md around lines 29 - 35, Update the TTS
pricing table in .agents/tools/voice/voice-ai-models.md by adding a
"last-updated" timestamp (e.g., "as of Feb 2026") near the table header, and
replace ambiguous price cells with explicit model variants and billing periods:
for OpenAI include "OpenAI TTS (tts-1, tts-1-hd $30/1M chars)", for Google
specify "Google Cloud TTS (standard), Chirp 3 HD $30/1M chars", and for
Gemini-TTS note "token-based pricing, see provider docs"; correct Cartesia Sonic
to list current subscription tiers and monthly prices explicitly (Pro $4–8/mo,
Startup $39/mo, Scale $239/mo) and annotate which ranges are monthly vs per‑1M
chars where applicable. Ensure each pricing cell clearly states the model
variant and billing unit (per month or per 1M chars/tokens).
…h-session # Conflicts: # .agents/tools/git/conflict-resolution.md
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report �[0;34m[INFO]�[0m Latest Quality Status: �[0;34m[INFO]�[0m Recent monitoring activity: 📈 Current Quality Metrics
Generated on: Sun Feb 8 04:20:54 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
|



Summary
Tasks Completed
Orchestration Fixes
supervisor-helper.sh: opencode is now the only supported CLI, claude marked DEPRECATEDagent-test-helper.sh: CLI detection order fixed (opencode first)AGENTS.md: New "Autonomous Orchestration" section with cron pulse requirementsSummary by CodeRabbit
New Features
Updates
Documentation