Answering Sessions
Learn how Answering Sessions in CodeCourier resolve questions and validate assumptions generated during Issue Sessions, producing actionable answers that guide AI implementation before any code is written.
After an Issue Session scans your codebase and produces a list of issues, it also records the questions it could not answer from the code alone and the assumptions it made when proceeding without explicit guidance. An Answering Session is the next step: an AI-powered session where an Answering Agent reviews those questions, refines them, and produces structured assumptions with confidence scores that you review and approve before implementation begins.
The result is a set of approved, human-reviewed answers that are injected as context into workflow runs when the resulting issues are executed - ensuring the implementing agent has the right understanding of requirements, scope, and architecture from the start.
Why Answering Sessions Matter
Issue Sessions are deliberately broad - the scanning agent surfaces everything it finds without necessarily having full context about intent, constraints, or priorities. This produces rich issue lists but also leaves open questions:
- “Should this security fix be applied to all environments or only production?”
- “Is the N+1 query pattern intentional here due to caching at a higher layer?”
- “Does this refactor need to maintain backward compatibility with the v1 API?”
Without answers to these questions, the implementing agent must make its own assumptions - which may be wrong. The Answering Session gives you a structured way to resolve these uncertainties before implementation, dramatically reducing the risk of AI agents implementing fixes that are technically correct but contextually wrong.
Optional but High-Value
Configuring the Answering Agent
Before starting an Answering Session, configure the Answering Agent from the Answering Setup page at /p/{projectId}/answering-setup. This configuration is shared across all Answering Sessions in the project:
| Setting | Description |
|---|---|
| CLI Tool | Which AI coding agent to use for answering sessions. |
| Model | LLM model for the Answering Agent. Opus is recommended for nuanced question analysis and assumption generation. |
| Thinking Effort | Reasoning depth. Set to “high” or above for thorough question analysis, especially when questions touch on architectural concerns. |
| Bound Context | Bind a Context document to the Answering Agent. Architectural context documents are particularly valuable here - they help the agent produce more accurate assumptions by grounding its reasoning in the project’s actual design decisions. |
| Skills | Domain knowledge packages for the Answering Agent. |
| Commands | Shell commands the Answering Agent can invoke during its session (e.g., to read configuration files or run diagnostic queries). |
| Scripts | Executable scripts injected into the sandbox for the Answering Agent to use. |
Context is Critical for the Answering Agent
Starting an Answering Session
Complete an Issue Session
An Answering Session requires a completed Issue Session with extracted questions and assumptions. Navigate to the Issue Session detail page and confirm that the session status is completed and that questions have been extracted.
Launch from the Issue Session detail page
Click the Start Answering Session button on the Issue Session detail page. This creates a new Answering Session record linked to the Issue Session via issueSessionId and provisions a sandbox for the Answering Agent.
Answering Agent runs
The Answering Agent receives the questions and assumptions from the Issue Session alongside any bound context and configured skills. It reviews each question, refines the phrasing for clarity, evaluates the initial assumption, and produces a structured response with:
- A refined question text and context explanation
- A “why it matters” justification
- A category classification (requirements, architecture, scope, priority, dependencies, or other)
- A revised assumption with reasoning
- A confidence score (low, medium, or high) reflecting how certain the agent is about its assumption
The session tracks progress in real time. Once complete, all session questions are stored as sessionQuestions records linked to both the Answering Session and the Issue Session.
Review each question and assumption
Navigate to the Answering Session detail page to review the results. Each session question is displayed with the Answering Agent’s assumption and confidence score. For each one, you can:
- Approve - Accept the assumption as-is. It will be used as context when executing related issues.
- Decline with correction - Reject the assumption and provide a corrected answer. Enter your correction in the
correctedAnswerfield and submit. The corrected answer replaces the assumption in the execution context. - Leave pending - Defer the review. The question remains in
pendingstatus and does not contribute to the execution context until approved or declined.
Use the approved assumptions when running issues
Once you have reviewed the questions, the approved and corrected assumptions are available as context when executing issues from the linked Issue Session. When you run an issue or start a work chain, the system can inject the approved assumptions into the workflow run as additional context alongside the issue’s suggestedPrompt.
Answering Session Statuses
| Status | Description |
|---|---|
active | The Answering Agent is currently processing questions in the sandbox. |
completed | The Answering Agent finished processing. Session questions are ready for human review. |
reviewing | Session questions have been generated and are awaiting human review (approve/decline). |
archived | The session was archived after review is complete. |
killed | The session was manually terminated before completion. |
cancelled | The session was cancelled before the sandbox started. |
Session Question Categories
The Answering Agent classifies each question into one of six categories to help you prioritize your review:
| Category | What it Covers |
|---|---|
requirements | Questions about what behavior is expected, what the acceptance criteria should be, or what the feature should do. |
architecture | Questions about system design, component structure, data model changes, or integration patterns. |
scope | Questions about what is in or out of scope for this issue or session. |
priority | Questions about the relative importance of issues or the order in which changes should be applied. |
dependencies | Questions about external dependencies, third-party libraries, or other systems this change interacts with. |
other | Questions that don’t fit neatly into the above categories. |
You can filter the review list by category to tackle the most critical questions first. Architecture and requirements questions typically have the highest impact on implementation quality.
Session Question Review Statuses
Each session question has a reviewStatus that tracks where it is in the human review flow:
| Status | Description |
|---|---|
pending | Awaiting human review. Not yet included in execution context. |
approved | Assumption accepted as-is. Included in execution context for related issues. |
declined | Assumption rejected. The correctedAnswer is used as context instead. |
Data Model
Answering Sessions are represented by two table types in the database: answeringSessions and sessionQuestions.
answeringSessions: {
userId: Id<"users">;
projectId: Id<"projects">;
issueSessionId: Id<"issueSessions">;
sandboxId?: string;
// Lifecycle
status: "active" | "completed" | "reviewing" | "archived" | "killed" | "cancelled";
// Agent outputs
questionsJson?: string; // Raw questions JSON from the Issue Session, passed as input
assumptionsJson?: string; // Raw assumptions JSON from the Issue Session, passed as input
prompt?: string; // The prompt used for the Answering Agent
error?: string; // Error message if the session failed or was killed
}How Approved Assumptions Improve Implementation
When a workflow run executes an issue that has an associated Answering Session, the approved and corrected assumptions are formatted as structured context and prepended to the run prompt. The implementing agent receives not just “fix this bug” but also:
- Clarified requirements: what behavior is expected and what edge cases are in scope.
- Architectural guidance: which patterns to follow, which abstractions to use, and which boundaries not to cross.
- Priority context: which aspects of the fix are most critical and which are optional.
- Dependency awareness: which other systems or libraries are involved and what constraints they impose.
This additional context reduces the likelihood of the implementing agent making incorrect assumptions of its own, which is one of the most common sources of low-quality AI implementation.
Learnings from Answering Sessions
Session questions that are declined (and corrected) are particularly valuable as learning inputs. When the Answering Agent made a wrong assumption and you corrected it, that correction teaches the system about your project’s constraints, preferences, or patterns that weren’t obvious from the codebase alone.
If a session question is linked to a learningId, it means the correction has been compiled into a learning record that will be injected into future sessions - so the Answering Agent (and other agents bound to learnings) will be less likely to make the same incorrect assumption in the future.
Closed-Loop Improvement
Next Steps
Issue Sessions
Learn how Issue Sessions discover and extract issues from your codebase.
Work Chains
Batch-execute issues sequentially once assumptions are approved.
Issues Overview
See the full issue discovery and resolution lifecycle.
Persona Configuration
Configure context binding and skills for your Answering Agent persona.