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.

9 min read
issuesanswering-sessionsquestions

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

Answering Sessions are optional. For simple, self-contained issues (e.g., “fix this null pointer dereference”), skipping directly to execution is fine. For complex issues involving requirements interpretation, architectural decisions, or scope ambiguity, an Answering Session is strongly recommended.

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:

SettingDescription
CLI ToolWhich AI coding agent to use for answering sessions.
ModelLLM model for the Answering Agent. Opus is recommended for nuanced question analysis and assumption generation.
Thinking EffortReasoning depth. Set to “high” or above for thorough question analysis, especially when questions touch on architectural concerns.
Bound ContextBind 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.
SkillsDomain knowledge packages for the Answering Agent.
CommandsShell commands the Answering Agent can invoke during its session (e.g., to read configuration files or run diagnostic queries).
ScriptsExecutable scripts injected into the sandbox for the Answering Agent to use.

Context is Critical for the Answering Agent

The Answering Agent produces better assumptions when it has access to project-level context. Bind an architectural reference document and include skills relevant to your tech stack. An agent that understands your system’s constraints can answer questions like “is this caching layer intentional?” much more accurately than one operating blind.

Starting an Answering Session

1

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.

2

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.

3

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.

4

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 correctedAnswer field and submit. The corrected answer replaces the assumption in the execution context.
  • Leave pending - Defer the review. The question remains in pending status and does not contribute to the execution context until approved or declined.
5

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

StatusDescription
activeThe Answering Agent is currently processing questions in the sandbox.
completedThe Answering Agent finished processing. Session questions are ready for human review.
reviewingSession questions have been generated and are awaiting human review (approve/decline).
archivedThe session was archived after review is complete.
killedThe session was manually terminated before completion.
cancelledThe 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:

CategoryWhat it Covers
requirementsQuestions about what behavior is expected, what the acceptance criteria should be, or what the feature should do.
architectureQuestions about system design, component structure, data model changes, or integration patterns.
scopeQuestions about what is in or out of scope for this issue or session.
priorityQuestions about the relative importance of issues or the order in which changes should be applied.
dependenciesQuestions about external dependencies, third-party libraries, or other systems this change interacts with.
otherQuestions 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:

StatusDescription
pendingAwaiting human review. Not yet included in execution context.
approvedAssumption accepted as-is. Included in execution context for related issues.
declinedAssumption 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 schema
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

Answering Sessions create a feedback loop: the more you review and correct assumptions, the more the system learns about your project’s context. Over time, Answering Sessions require less correction because the agents have accumulated a richer understanding of your constraints and preferences through the learnings system.

Next Steps