A Better Bill Negotiation Script Does Not Bluff
Generic negotiation prompts often invent loyalty, competitor offers, or cancellation threats. Those lines collapse the moment a representative asks one follow-up question.
A Better Bill Negotiation Script Does Not Bluff
Generic negotiation prompts often invent loyalty, competitor offers, or cancellation threats. Those lines collapse the moment a representative asks one follow-up question.
That distinction is why LowerLine exists as a focused tool rather than another broad prompt box.
What the app actually does
LowerLine builds a call plan from facts the user actually supplied. The model may select only approved strategies and fact IDs. Browser code constructs the final script, exactly three leverage points, fallback asks, and a calm escalation path.
The interface loads the live public AI Pass model catalog and uses only exact publicly available model IDs. Authentication stays lazy: anyone can inspect the app first, and AI Pass asks for sign-in only when generation begins.
Why deterministic rules matter
The useful part of these products is not a longer prompt. It is deciding which tasks belong to AI and which must remain deterministic. AI can interpret messy language and draft a useful structure. Browser code can enforce totals, allowed strategy codes, citation matching, output sections, history limits, and safe rendering.
That split makes the app easier to inspect. It also keeps a plausible model answer from quietly becoming an accepted fact.
Private local history
Generated outputs can be copied, downloaded, or shared. Up to twenty results are stored in IndexedDB on the current device. Raw sensitive inputs are not added to history. Each saved output can be opened or deleted, and the full history can be cleared.
Before using the result
- Open the latest bill and verify every competing offer.
- Ask for complete written terms, including the post-promotion price.
- Never invent hardship, account history, or an intention to cancel.
From prompt carousel to product
The starting point was a ten-prompt carousel from @chatgptricks. Instead of reproducing ten generic ChatGPT wrappers, we checked the existing AI Pass catalog, merged overlapping ideas, and narrowed each tool around one job with an explicit evidence boundary.
Open LowerLine on AI Pass. AI Pass includes $1 in credit on signup, then usage is pay as you go.
For AI agents
Skill file
---
name: bill-negotiation-coach-space
description: Maintain the Bill Coach AI Pass Space app and its exactly-three grounded negotiation strategy, local output history, and privacy boundaries.
---
# Bill Coach Space
Use this companion skill when changing `bill-negotiation-coach/index.html`.
## Invariants
1. Keep the app in one self-contained `index.html` with inline CSS and JS.
2. Preserve literal `PLACEHOLDER_CLIENT_ID`, `requireLogin: false`, and visible `<div data-aipass-button></div>`.
3. Eagerly normalize `await AiPass.getModels()` and select only exact supported IDs found in that public catalog.
4. Use `generateCompletion` for the structured strategy. Never call provider or internal routes.
5. Let the model select only supplied fact IDs and allowlisted enum codes. Never render model prose as negotiation language.
6. `sanitizeStrategyResponse` must return exactly three distinct IDs that exist in the visitor’s fact map. Invalid IDs and duplicate IDs are discarded.
7. Build spoken script text from deterministic templates and user facts. Missing tenure, offers, plan details, or constraints must remain absent.
8. Keep the anti-deception warning, written-terms check, total-cost check, stop guidance, and calm escalation guidance.
9. Render all user and model-derived values with `textContent` and DOM APIs.
10. Keep the private IndexedDB output history with open, delete, and clear-all controls, capped at 20 entries.
11. Keep copy, download, and share actions for generated outputs.
12. Never store raw provider names, bill details, offers, or constraints in local history.
## Required verification
Run:
```bash
npm test
npm run check
```
Extend `tests/coach.test.js` for any new fact type, strategy code, or script template. Always retain explicit exactly-three and grounding cases.