# 05: AI skill, first full path: confidence bands + review and approval (web, sample data) Part of: ../spec.md **What to build:** A developer runs the AI skill in a web project that has an LLM extraction call but no frontend. The skill follows the same question flow as the no-AI skill and builds a React + Vite + Tailwind dashboard with everything from the no-AI page, plus: - **Confidence bands:** green ≥0.95, amber 0.90–0.95, red <0.90. A field takes its worst word score, and a blank mandatory field is always flagged. The legend shows the caveat text. - **Review split pane:** the source document next to the extracted fields. Fields can be filtered by band. Edits stay drafts until Save, and leaving with unsaved edits asks first. Each field has Verify, and there's a "verify remaining" action. - **Approve gate:** the server refuses approval while any required field is unverified. **Blocked by:** 01 **Status:** ready-for-agent - [ ] The AI skill file exists with a trigger description ("AI RPA dashboard", "extraction dashboard", "LLM/OCR review dashboard") and the shared workflow. - [ ] An AI contract extends the no-AI contract. These shapes came from the Superbill prototype: `Run{job_id,status:pending|queued|running|done|failed,model,pages_done,pages_total,summary:{green,amber,red,unscored}}` `ReviewRow{row_id,field,value,band:green|amber|red|blank|unscored,score,reason,verified,corrected_value}`. Actions: patch a review row, approve a run (server gate). A busy run is polled every ≈1.5s. - [ ] Reference code: Superbill-only names (ECW/Tebra project split, table prefixes, patient/ticket wording) are stripped or marked as examples. A scan finds no patient data, internal IPs, credentials or keys. - [ ] A band self-check asserts the thresholds, the worst-word rule and the blank-mandatory flag. - [ ] Page check, AI cases: - band counts and legend match; - band filters show the right rows; - a draft edit isn't saved until Save; - approve stays blocked while rows are unverified (the server stub refuses); - "page X of Y" updates while running. - [ ] Skill eval on test project (d), a project with an LLM extraction call: the skill picks the AI path, asks the shared questions, and its output passes the page check with sample data.