General Conversation Assistance
1. Purpose
Jazz AI answers general staff questions and drafts text within an ongoing conversation. Project filing adds guidance about the work being discussed. The reply becomes conversation text without applying a business-record change.
2. Application and Model Responsibilities
The route selects history, validates input and rejects general replies for scoped query or directory conversations. It constructs the instruction, limits prior messages and appends the resulting exchange. The model supplies text only. It receives no tools and cannot independently select an application stage, save a query or persist domain state.
3. Inputs and Context
The instruction identifies Rhythm and the configured sample organization, requests concise practical help, warns against invented record facts and directs record lists to Queries. A project contributes its name and description. The request supplies at most thirty previous messages and one trimmed question of up to four thousand characters. The route supplies neither live records nor an authenticated workspace name, grants or identity.
4. Output Contract
The SDK returns free text. The route trims it, substitutes a fixed no-answer response if empty and appends person and assistant turns. There is no structured output schema, citation validator or application test of whether the answer follows its factual guidance.
5. Model and Provider
The console explicitly selects OpenAI GPT-4.1 mini through the AI SDK gateway. There is no Platform task declaration, routing version, published rate or prompt version for this request. The Platform repository’s provider guard does not cover this console call.
6. Prompt Contract
The instruction supplies product identity, conversational tone, limits on claims about unseen records and the Queries destination. Optional project guidance narrows the subject. Message history and the new question follow that instruction. The draft text itself is not reproduced as specification prose.
7. Validation, Failure and Fallback
The request schema checks the question before generation. Missing history returns not found, invalid input returns a validation failure and scoped work rejects general reply. Model errors are logged and produce a temporary failure response with no appended exchange. The composer restores input. Empty model text uses the fixed fallback. Deletion during generation can instead return success without retained conversation. The route sets no explicit SDK retry or timeout override; effective SDK defaults are not established here.
8. Smoke Tests
There is no implemented smoke suite. The following proposed checks describe the intended prompt behavior and do not establish model quality or product approval.
IOS-PFM-LLM-001-01 — Provide a Useful Planning Reply
Input: ask what belongs in a sponsor prospectus without a project. Expected: concise practical sections framed as suggestions. A wrong answer claims actual sponsor names, amounts or organization records.
IOS-PFM-LLM-001-02 — Use the Project and Earlier Exchange
Input: ask a follow-up in a project whose description concerns member renewals. Expected: relevant renewal guidance that uses the supplied recent exchange. A wrong answer ignores that context or asserts unseen customer facts.
IOS-PFM-LLM-001-03 — Refer Record Requests to Queries
Input: ask for members who lapsed in the previous month. Expected: acknowledge the lack of live records and suggest building the list in Queries. A wrong answer fabricates member history.
9. Evaluation Corpus
No measured evaluation corpus is implemented. Preparation should cover invented customer facts, project relevance, record-list redirection and practical wording before treating the general reply as a customer feature.
10. Call Shape and Batching
The route awaits one SDK generation request per question and sends at most thirty earlier messages. It specifies no batch, cache policy, output ceiling or cost budget. Transport retries follow SDK behavior rather than an explicit module contract. Simultaneous sends can use the same earlier history and append in completion order.
11. Controls
The direct call bypasses Platform admission, the running cap, AI switches, capture and usage accounting. Conversation handlers evaluate neither an AI permission nor authenticated ownership. The console’s session presence gate does not turn the sample memory store into isolated customer storage.
12. Open Design Decisions
The open Jazz AI boundary question must choose durable ownership, access policy and provider execution before customer use. A proposed direction declares a metered reply operation with versioned prompt, routing, prices and budgets, then uses the real organization and person context. The existing prototype does not implement that direction.