feat(parsa): add seo-from-calls skill - #91
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
a6b983a to
2434b9e
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a6b983aea2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 1. Add content entries to the appropriate config files (ehrPages.js, | ||
| comparisons.js, useCases.js, etc.) following exact existing patterns | ||
| 2. Create page route files under `apps/website/pages/` | ||
| 3. Add CDN invalidation entries to `.github/workflows/website-deploy.yml` |
There was a problem hiding this comment.
Discover the target site's layout before creating files
When this generic skill runs against any site that is not BloomText's exact Next.js Pages Router layout, these instructions direct the agent to create files in nonexistent or incorrect config, route, and deployment locations. The earlier inventory step should discover the site's actual content model, routes, deployment configuration, and build command, then pass those paths into drafting rather than hard-coding ehrPages.js, apps/website/pages/, and website-deploy.yml.
Useful? React with 👍 / 👎.
| ### Step 3 — Cross-reference existing pages | ||
|
|
||
| Search the website codebase to map every existing page route. Compare against | ||
| the extracted signals. For each signal, determine: does a page already exist? |
There was a problem hiding this comment.
Validate the competitive landscape in the Codex workflow
For every Codex invocation, this step only inventories the local site and then proceeds directly to recommendations, so the advertised competitive-landscape validation never occurs. This can prioritize pages without checking search intent, current rankings, or competitor coverage; add the SERP and competitor research performed by the Claude variant before the decision step.
Useful? React with 👍 / 👎.
|
|
||
| ### Step 5 — Draft the pages | ||
|
|
||
| When the user approves the plan, create all pages directly: |
There was a problem hiding this comment.
Run drafted pages through the required writing framework
Whenever the approved plan includes customer-facing pages, this instruction creates them directly without invoking seo-writing-framework. That bypasses the research, reader-hat, edit, slop-gate, and scoring passes that parsa/seo/README.md requires for every copy skill and that the existing drafting, readability, and authority skills explicitly perform.
Useful? React with 👍 / 👎.
| 2. **New pages using existing templates** — EHR, comparison, use case pages | ||
| 3. **New page types** — pages needing a new template | ||
|
|
||
| ### Step 5 — Draft the pages |
There was a problem hiding this comment.
Keep Codex from authoring customer-facing copy
When this Codex skill reaches the drafting phase, it makes Codex the writer of record for landing pages, comparisons, metadata, and pricing clarifications. This contradicts the repository's model-routing requirement in README.md:162-168 and README.md:217-220, which requires all public copy and SEO copy to be routed through Claude; Codex should restrict itself to analysis and code scaffolding around Claude-approved copy.
Useful? React with 👍 / 👎.
Mines customer call transcripts (Doozy captures) for unmet search intents, validates against the existing site and competitive landscape, and drafts the pages that fill the gaps. Workflow: pull transcripts → extract buying signals → cross-reference existing pages → research competitive landscape → discuss priorities → draft pages with existing templates. Validated on BloomText with two sales calls (PT + ABA) that produced 4 new pages + 2 conversion fixes (bloom-mono PR #598). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SNwjk9JtiFyCNEMrX2xj5F
2434b9e to
52436d7
Compare
Summary
seo-from-callsskill that mines customer call transcripts (Doozy captures) for unmet search intents, validates against the existing site and competitive landscape, and drafts pages that fill the gapsparsa/seo/(canonical),parsa/.claude/skills/(Claude),parsa/.codex/skills/(Codex)allowed-tools/modelfrontmatter, no Doozy MCP tool instructions)Context
Validated on BloomText with two sales calls (Charisse — PT multi-location; Jessica — ABA distributed therapy) that produced 4 new pages + 2 conversion fixes (bloom-mono PR #598).
The workflow fills a gap between data-driven SEO skills (
seo-content-strategy,seo-briefing) and individual page planning (page-strategy). Those work from analytics; this one works from qualitative customer signals.Test plan
/seo-from-callsappears in Claude Code skill list after sync🤖 Generated with Claude Code
https://claude.ai/code/session_01SNwjk9JtiFyCNEMrX2xj5F