feat: add sales-page-persona-simulator skill - #1
Open
robnetinf wants to merge 16 commits into
Open
Conversation
Simulates buyer personas reading a built sales page to predict objections, drop-off points, and conversion likelihood before publishing — grounded in conversion-psychology.md and objection-handling.md rather than generic AI guesses. Independent and manually triggered (via /grow simulate [slug] or natural language); never touches pipeline state.json, complementing the mechanical checks in sales-page-qa. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Analysis CompleteGenerated ECC bundle from 1 commits | Confidence: 50% View Pull Request #2Repository Profile
Changed Files (3)
Top hotspots
Top directories
Analysis Depth Readiness (commit-history, 7%)ECC Tools uses this to decide whether recommendations should stay at commit-history/setup guidance or expand into CI, security, harness, reference-set, AI-routing, and team backlog work.
Reference Set Readiness (0/7, 0%)
Likely Future Issues (4)
Suggested Follow-up Work (4)
Copy-ready bodies test: add CLI coverage for commands/grow/COMMAND.md ## Summary
- Add shell, CLI, or end-to-end coverage for the recently changed command surface.
## Why
- Backfill CLI coverage before another command-surface change lands on the touched paths.
## Touched paths
- `commands/grow/COMMAND.md`
## Validation
- Add or extend shell, CLI, or end-to-end coverage for the changed command surface.
- Exercise the user-facing command invocation and expected exit/output behavior.analysis: add reference-set evidence for commands/grow/COMMAND.md + skills/sales-page-persona-simulator/SKILL.md ## Summary
- Add reference-set or eval evidence for the recently changed AI, analyzer, skill, agent, command, or harness guidance surface.
## Why
- Backfill eval, golden trace, benchmark, or reference-set evidence before another AI or harness-analysis change lands on the touched surface.
## Touched paths
- `commands/grow/COMMAND.md`
- `skills/sales-page-persona-simulator/SKILL.md`
## Validation
- Add or update an eval, golden trace, benchmark, fixture, or reference-set artifact for the changed AI/harness behavior.
- Compare the changed behavior against the maintained reference set and record the pass/fail evidence.
- Confirm the follow-up evidence covers the same analyzer, skill, agent, command, or harness surface touched by this PR.harness: add config quality evidence for commands/grow/COMMAND.md ## Summary
- Add harness compatibility evidence for the recently changed config surface.
## Why
- Backfill harness audit, adapter matrix, or cross-harness compatibility evidence before another config change lands on the touched surface.
## Touched paths
- `commands/grow/COMMAND.md`
## Validation
- Run or update the harness audit, adapter compliance matrix, or cross-harness compatibility check for the changed config.
- Add or update a regression, fixture, or doc evidence path that covers the affected harness, MCP, plugin, or agent loading behavior.skills: add quality evidence for commands/grow/COMMAND.md + skills/sales-page-persona-simulator/SKILL.md ## Summary
- Add skill-quality evidence for the recently changed skill, agent, command, or rule guidance.
## Why
- Backfill examples, validator, eval, or reference evidence before another skill or agent guidance change lands on the touched surface.
## Touched paths
- `commands/grow/COMMAND.md`
- `skills/sales-page-persona-simulator/SKILL.md`
## Validation
- Add or update examples, trigger coverage, frontmatter validation, or skill validator fixtures for the changed guidance.
- Run the relevant skill, agent, command, or rule validation flow and record pass/fail evidence.
- Confirm the follow-up evidence covers the same guidance surface touched by this PR.Generated Instincts (17)
After merging, import with: Files
|
/grow create landing was routing through content-creator instead of growth-engineer since "landing" isn't a recognized create type — README now uses the correct /grow landing form. Also adds the missing Delegation pointer from the setup keyword to commands/grow/setup.md, matching every other subcommand's documented wiring. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Both workflows were written for a monorepo layout where growthOS lived in a subdirectory, but this repo's root already is growthOS. The "growthOS/**" trigger paths never matched any push, so ci.yml and deploy.yml had never run (0 workflow runs ever). Internal steps (ruff, pytest, docker build context/dockerfile) also referenced the nonexistent nested path. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
deploy.yml calls ci.yml as a reusable workflow ("uses: ./.github/workflows/ci.yml"),
which requires the callee to declare on.workflow_call. Without it, deploy.yml
fails to parse entirely (confirmed via manual workflow_dispatch: "workflow is
not reusable as it is missing a `on.workflow_call` trigger").
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
CI never ran before (see prior commit fixing workflow triggers), so these 43 lint violations and 48 unformatted files were never caught: - Removed 13 genuinely unused imports (F401), 2 with a `# noqa` kept where the import only exists to fail fast if a dependency is missing - Removed extraneous f-string prefixes with no placeholders (F541, 28x) - Renamed ambiguous `l` loop variables to `lesson` in update-profile.py (E741) - Applied `ruff format .` across 48 files (whitespace/style only) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… loader Claude Code auto-discovers commands/agents by filename, not by parent directory name, so commands/grow/COMMAND.md and agents/<name>/AGENT.md were invisible to the plugin loader — /grow never registered and none of the 12 agents loaded. Adds flat commands/grow.md and agents/*.md entry points, simplifies plugin.json to drop the invalid path-array fields for skills/agents/hooks/commands, and adds .mcp.json to wire up the 4 MCP servers that previously had no launch config. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…the landing page default The Robnet Solutions clinic landing page added parallax/motion effects on request and it was a clear upgrade over the static baseline, so codify it as the standard every generated landing page follows unless the brief asks for something static. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…App lead handoff Single-file landing page for the clinics/professional-services vertical, built on the landing-page-design skill defaults (hero motion, scroll reveal, text-roll CTAs). Form submission validates required fields client-side and opens WhatsApp (5511944678802) with a pre-filled lead message — no backend required. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… blocked window.open() silently returns null inside sandboxed iframes without "allow-popups" (e.g. the artifact preview host), so the WhatsApp handoff button did nothing with no visible error. Add a window.location.href fallback and document the gotcha as a new CTA pattern so future WhatsApp-handoff forms ship with it by default. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…roject Landing page and 7-slide carousel moved to /workspace/Agente_IA_Agenda_ServsProfissionais — the client project now lives outside the growthOS tool repo. Removes the duplicated copies here. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ran npm audit fix after fresh install surfaced 9 vulnerabilities. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The agent's files (agents/caption-writer/) already existed but were never declared in the manifest, so it wasn't loaded as one of the official plugin agents. Bumps the advertised agent count 11 -> 12. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The server defined its FastMCP instance and tools but never called mcp.run(), so the process loaded everything and exited immediately without ever starting the MCP server — the other 3 servers all had this block, this one was missing it. Found while verifying all 4 GrowthOS MCP servers connect (they'd also silently failed for a separate reason: fastmcp/pyyaml/httpx/pydantic/python-frontmatter weren't installed in the environment). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Text-only visual-designer spec for the Instagram feed post announcing SecretarIA (Robnet Solutions). Rendered PNGs, the reel, and captions live in output/approved/2026-07-27/ and voice/preferences/, both gitignored by design (per-project runtime content). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Registers a new video-editor agent (agents/video-editor/) plus the raw-footage-editing skill for cutting existing raw video files — silence removal, semantic trimming, word-synced burned-in captions — distinct from video-producer's from-brief generation pipeline. Wires the new /grow edit-video subcommand, bumps agent/skill counts in plugin.json and README, and updates the Remotion narration asset used by the ReelTips composition. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…c CSS motion Reads new providers.video / providers.image keys (brand-voice.yaml, gitignored, not part of this commit) to route video-producer to mcp__kairogen__generate_video and visual-designer to mcp__kairogen__generate_image by default, falling back to the Remotion pipeline / spec-only output when Kairogen is unavailable or the request needs a specific motion-graphics template. visual-designer now renders real images instead of specs only. cmo.md's delegation matrix reflects both defaults. sales-page-visual-psychology Step 6a now defaults landing/sales page animation to the richest CSS-only tier (cinematic) instead of picking purely from archetype — kept CSS-only (no Framer/Motion JS lib) to preserve the single-file, zero-external-dependency HTML architecture of landing-page-design/sales-page-builder. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
skills/sales-page-persona-simulator, an independent, manually-triggered skill that simulates buyer personas reading a built sales page (Phase 7 output) to predict objections, drop-off points, and conversion likelihood before it ships.design-intelligence/theory/conversion-psychology.md(Cialdini's principles, anchoring, loss aversion, etc.) anddesign-intelligence/references/patterns/objection-handling.md(FAQ, objection cards, comparison table, guarantee, risk-reversal banner) — no unsourced AI guessing.sales-page-qa(mechanical checks) rather than overlapping it; never writes to pipelinestate.jsonand isn't a pipeline phase — purely advisory./grow simulate [slug]shortcut incommands/grow/COMMAND.md(keyword bypass + full subcommand docs) and registers the skill inplugin.json.Test plan
/grow simulatewith zero existingoutput/sales-pages/projects falls through to the correct usage/fallback message.focusflow, a fictitious product) intentionally missing a guarantee, FAQ, price anchoring, and specific social proof, with no matchingvoice/offers/*.mdfile, to exercise the Default Persona Library fallback path.output/sales-pages/before committing (test-only content, gitignore pattern foroutput/sales-pages/**intentionally not added since this directory holds real user projects).🤖 Generated with Claude Code