$npx -y skills add GoogleCloudPlatform/cxas-scrapi --skill cxas-cuj-report-generatorAutomates the ingestion of customer requirement documents such as diagrams, BRDs, code etc., synthesizes high-fidelity natural transcripts, and compiles them into highly interactive, responsive Critical User Journey (CUJ) reports.
| 1 | # Critical User Journey (CUJ) Transcript & Report Generator Skill |
| 2 | |
| 3 | Use this skill when asked to extract dialogue transcripts or compile interactive |
| 4 | Critical User Journey (CUJ) reports from a directory of customer requirement |
| 5 | documents (such as diagrams, BRDs, code etc.). |
| 6 | |
| 7 | ## Core Protocols |
| 8 | |
| 9 | To ensure 100% coverage and zero data loss, you MUST follow these core rules: |
| 10 | |
| 11 | * **Robust Extraction**: Follow the protocol defined in the |
| 12 | `cxas-protocol-robust-extraction` skill. |
| 13 | * **Two-Phase Ingestion**: Follow the protocol defined in the |
| 14 | `cxas-protocol-two-phase-ingestion` sub-protocol inside |
| 15 | `protocols/cxas-protocol-two-phase-ingestion/`. |
| 16 | * **Checklist Mandate**: The orchestrator and all subagents MUST follow the |
| 17 | `agent-protocol-checklist` protocol to maintain a local |
| 18 | `task_checklist.json` file, ensuring they track their progress and not lose |
| 19 | coverage during execution. |
| 20 | * **Orchestrator Delivery Assurance**: The orchestrator MUST act |
| 21 | as a strict, independent Delivery Auditor. BEFORE closing subagents, |
| 22 | terminating the watchdog, or reporting campaign success to the user, the |
| 23 | orchestrator MUST physically verify the existence, size bounds, and schema |
| 24 | compliance of all registered deliverables (specifically |
| 25 | `gecx_customer_report.html` and `gecx_cuj_report.html`) on disk. Under no |
| 26 | circumstances may the orchestrator assume completion without executing a |
| 27 | physical file-presence check. |
| 28 | * **Auditing**: The orchestrator MUST periodically check the subagent's |
| 29 | scratch directory to ensure the `task_checklist.json` file is being created |
| 30 | and maintained. If the file is missing or not updated, the orchestrator MUST |
| 31 | terminate the subagent and respawn it with stronger enforcement |
| 32 | instructions. |
| 33 | |
| 34 | ## Core Workflow Steps |
| 35 | |
| 36 | Follow this 5-step structured workflow to execute the task: |
| 37 | |
| 38 | 1. **Scoping & Type Discovery**: Prepare the environment and identify required |
| 39 | skills. |
| 40 | |
| 41 | * **Access Files**: Ensure you have access to the source artifacts in your |
| 42 | local workspace. |
| 43 | * **Tip (Drive Links)**: If the source is a Google Drive link or |
| 44 | folder ID, you MUST use the `gdrive` skill to access them. |
| 45 | * **Detect Inventory Types**: To identify framework signatures and map |
| 46 | them to correct Ingestors, you MUST use the framework detector agent |
| 47 | defined in `agents/framework_detector.md`. Using this agent, scan the |
| 48 | input files to inventory all file extensions and detect potential |
| 49 | frameworks. Spawn parallel **Framework Detector** subagents to scan |
| 50 | partitions of the file tree. |
| 51 | * **Map Ingestors**: Use the scoping report generated by the Framework |
| 52 | Detector to select or create the correct specialized skills in |
| 53 | `ingestors/frameworks/` or `ingestors/files/`. |
| 54 | |
| 55 | * **Precedence Rule**: Framework-specific ingestors take precedence |
| 56 | over generic file-extension ingestors (e.g., use |
| 57 | `ingestors/frameworks/adk/` instead of `ingestors/files/py/` if both |
| 58 | apply). |
| 59 | |
| 60 | 2. **Discovery**: Spawn specialized expert subagents based on the discovered |
| 61 | types to identify sub-intents (see the `agents/` directory for role |
| 62 | definitions). Dynamically discover and use specialized ingestor skills in |
| 63 | `ingestors/frameworks/` and `ingestors/files/`. |
| 64 | |
| 65 | * **Mandatory Handoff**: Subagents MUST report back: |
| 66 | |
| 67 | 1. Frameworks detected, |
| 68 | 2. File types parsed, and |
| 69 | 3. Any files/patterns skipped as out-of-scope. |
| 70 | |
| 71 | * **Exhaustive Use**: Use all relevant ingestors by applying the most |
| 72 | specific one applicable to each file. |
| 73 | |
| 74 | * **Fallback**: If no specialized ingestor exists for an out-of-scope file |
| 75 | type, the orchestrator MUST delegate the analysis: |
| 76 | |
| 77 | 1. **Spawn Analyzer**: Spawn a specialized **Analysis Subagent** to |
| 78 | inspect a sample of the unknown file. |
| 79 | 2. **Research**: Instruct the subagent to search online or in internal |
| 80 | documentation for format standards if the structure is not clear. |
| 81 | 3. **Report & Codify**: The subagent must report the best parsing |
| 82 | strategy back to the orchestrator and SHOULD attempt to create a new |
| 83 | specialized skill in `ingestors/frameworks/` or `ingestors/files/` |
| 84 | to capture this knowledge. |
| 85 | |
| 86 | 3. **Exhaustion**: Loop until no new intents are found. |
| 87 | |
| 88 | 4. **Clustering**: Group into Parent CUJs. To ensure consistent and accurate |
| 89 | category discovery: |
| 90 | |
| 91 | * **Noise Reduction**: Do NOT pass full objects with raw transcripts or |
| 92 | code. |
| 93 | * **Summary Format**: Provide a clean YAML list with `id`, `name` |
| 94 | (stripped of technical tag |