一键导入
discovery-investigation
Audit Drupal sites for editorial UX issues, config gaps, and content type problems. Produces scored evidence for proposals.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Audit Drupal sites for editorial UX issues, config gaps, and content type problems. Produces scored evidence for proposals.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when you have an existing component, flow, or interface and need an evidence-backed accessibility design review after basic checks pass. Best for focus management, ARIA pattern quality, semantics, and state communication gaps automated tools miss.
Use when you know what component, flow, or interface you need but not yet the right accessibility approach. Best for turning requirements into an accessible implementation plan before code hardens bad interaction and state patterns.
Review content for Google AI Overview eligibility — RAG retrievability, E-E-A-T signal completeness, fan-out coverage, semantic HTML for agent parsability, schema markup quality.
Plan AI Overview readiness improvements — RAG retrievability, E-E-A-T signals, query fan-out coverage, semantic HTML, schema markup, agentic channel setup.
Assess organizational AI readiness — capabilities, gaps, adoption roadmap for strategic planning.
Alex Urevick-Ackelsberg's personal writing voice and style. Use this skill whenever writing AS Alex or ghostwriting content that should sound like him — emails to clients, community posts, conference session descriptions, proposals, LinkedIn posts, listserv replies, internal strategy docs, or any communication where Alex is the named author. Also use when Alex asks you to 'write this up,' 'draft a response,' 'help me write,' or when the output needs his voice rather than a generic professional tone. This is Alex's PERSONAL voice — for Zivtech brand/marketing content, use zivtech-writing-style instead (though both can apply when Alex is writing on behalf of Zivtech).
| name | discovery-investigation |
| description | Audit Drupal sites for editorial UX issues, config gaps, and content type problems. Produces scored evidence for proposals. |
| version | 0.1.0 |
When I need to audit a Drupal site before writing a proposal or scoping remediation work, I want a structured investigation that runs config analysis and browser tests in parallel and compiles findings by severity, so I have evidence-backed findings to quote in a proposal rather than impressions from a single walkthrough.
docs/discovery/findings.md with critical/major/minor findings, root causes, and evidence. Also produce a deployed visual HTML report.proposal-draft after this skill produces findings.discovery-proposal: The orchestrator that invokes this skill and passes the state file forward.proposal-draft: The next phase — takes findings.md as input.drupal-critic: Used as an adversarial reviewer of the investigation plan before execution.| User's Situation | What Happens | What They Leave With |
|---|---|---|
| Running fresh investigation | Plan → critic review → Wave 1 config analysis → browser tests → Wave 2 UX analysis → findings → HTML report | findings.md, visual report URL, updated state file |
| Resuming interrupted session | Read state file → skip completed waves → resume from current step | Remaining findings + report |
| Already has config findings, needs UX analysis | Skip Wave 1, run Wave 2 directly | Wave 2 findings appended to findings.md |
gh is not authenticated: produce findings.md but skip HTML report deploy; save report locally.Investigation structure:
findings.md with severity ratings and evidence.Requires: Lando MCP (for config file access, available on joyus-ai platform), Playwright MCP (for browser testing, available on joyus-ai platform), gh CLI (for GitHub Pages deploy).
<Use_When>
<Do_Not_Use_When>
<Why_This_Exists> Ad-hoc site walkthroughs miss:
This skill makes investigation systematic: every content type gets the same test, every config file gets the same analysis, findings are rated by severity with evidence, and the output is structured enough to feed directly into proposal-draft. </Why_This_Exists>
## STEP 0 — Context checkCheck for .omc/state/discovery-proposal-state.json. If it exists, read it:
environment.local_url — the local site URLclient_name, client_slugpaths.findings_mdIf state file does not exist, ask:
gh CLI authenticated? (gh auth status)"Create a minimal state file. Set current_phase: "investigation".
Draft an investigation plan covering:
Config analysis targets (via Lando MCP):
config/sync/core.entity_form_display.node.*.yml)Browser test targets (via Playwright MCP):
Analysis questions:
Write plan to docs/discovery/investigation-plan.md.
Dispatch a drupal-critic agent through the local catalog/meta-router to review the investigation plan. The wrapper does not override its model policy.
Prompt: "Review this investigation plan for a Drupal site editorial UX audit. Find: missing test coverage, invalid assumptions about the site, phases in the wrong order, and anything that would cause us to miss a high-severity finding. Be specific."
Gate: Announce issue count. Ask: "Should I revise the plan before executing? (yes / execute as-is / review first)"
On "yes": revise plan, write docs/discovery/investigation-plan-v2.md.
Update state: current_phase: "investigation-executing".
Dispatch 4 agents in parallel through the local router for fast, read-only config scans via Lando MCP. Model selection follows catalog/meta-router policy:
config/sync/core.entity_form_display.node.*.yml. List: field count, field order, any missing required fields, fields with default/unconfigured widgets.options_select with more than 20 options (should be autocomplete), entity_reference_autocomplete vs inline_entity_form mismatches, deprecated widgets.teaser or search_index configurations.Compile into docs/discovery/wave1-config-findings.md.
For each content type in the investigation plan:
/node/add/[type]Red flags to flag immediately:
$.isArray JavaScript errors in console (Select2 compatibility issue)Write findings to docs/discovery/browser-test-findings.md.
Dispatch 3 agents in parallel after Wave 1 and browser testing complete:
wave1-config-findings.md and browser-test-findings.md. Identify root causes linking multiple surface symptoms. Produce: prioritized findings with severity (critical/major/minor) and root cause.Write docs/discovery/findings.md:
# Discovery Findings — [Client Name]
Generated: [date]
## Summary
- Critical: N | Major: N | Minor: N | Quick wins: N
## Critical Findings
### C1 — [Title]
**Root cause:** ...
**Impact:** ...
**Evidence:** [screenshot ref or config file]
**Fix:** ...
## Major Findings
...
## Minor Findings
...
## Quick Wins (zero migration risk)
...
Update state file:
paths.findings_md: "docs/discovery/findings.md"investigation.critical_findings: Ninvestigation.major_findings: Ninvestigation.minor_findings: Ninvestigation.content_types_tested: Ncompleted_phases adds "wave1", "browser-testing", "wave2", "findings"Invoke /frontend-design with prompt:
"Build a password-protected visual report page at ~/claude/zivtech-demos/projects/[client-slug]/report.html. Audience: agency preparing a proposal. Show: critical/major/minor finding counts, a card per finding (title, severity badge, root cause, fix), quick wins section. Use navy/gold palette (navy: #1e3a5f, gold: #d4a73a). Self-contained HTML, no external libraries. Data: [paste findings.md content]"
After HTML is written:
~/claude/zivtech-demos/.github/workflows/deploy.yml to add the new project.feat: add [client-slug] discovery reportpaths.visual_report_url: "https://zivtech.github.io/zivtech-demos/[client-slug]/"Update state:
current_phase: "proposal" (next phase)completed_phases adds "investigation"updated_at: [timestamp]Announce:
✓ Investigation complete
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Critical findings: N
Major findings: N
Minor findings: N
Quick wins: N
Content types tested: N
Findings file: docs/discovery/findings.md
Visual report: [url] pw: [client-slug]2026
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
If running standalone: suggest "Run /proposal-draft to convert these findings into a scoped proposal."
<Tool_Usage>
config/sync/ — requires Lando MCP (joyus-ai platform)browser_navigate, browser_take_screenshot, browser_console_messages, browser_snapshot) for browser testing — requires Playwright MCP (joyus-ai platform)/frontend-design for the visual report<Escalation_And_Stop_Conditions>
config/sync/: ask for the correct config directory before dispatching Wave 1 agents.docs/discovery/report.html, skip state URL update.
</Escalation_And_Stop_Conditions>Task: {{ARGUMENTS}}