Skip to content

Questionnaire stage skill (detect + gather) #55

Description

@savitharaghunathan

Part of #54.

Questionnaire

Combines automated detection with decision gathering in a single stage.

Consumes Source repo
Produces .konveyor/questionnaire.json, .konveyor/results.json entry
Image TBD (may reuse agent-plan if graphify lands here)

Two phases

  1. Detect — analyze the project and produce a tech summary (languages, frameworks, build tools, app servers), architecture summary (layers, complexity), and dependency capture
  2. Gather — collect migration decisions: target framework, scope constraints, priorities

Graphify placement (here vs plan stage) is TBD.

Interactive vs non-interactive

  • Interactive: agent presents detection results, asks the human for decisions
  • Non-interactive: LLM picks the best answers based on detection results and records its reasoning in questionnaire.json. Eval stage later scores whether those choices led to a good migration.

Expected artifact

.konveyor/questionnaire.json:

{
  "detection": {
    "languages": ["java"],
    "frameworks": ["javaee-7", "weblogic"],
    "buildTool": "maven",
    "appServer": "weblogic-12c",
    "sourceFiles": 142,
    "archSummary": "3-tier: entities → services → REST controllers",
    "dependencies": ["javax.ejb", "javax.persistence", "javax.jms"]
  },
  "decisions": {
    "targetFramework": "quarkus-3",
    "scope": "full",
    "priorities": ["correctness", "minimal-diff"],
    "constraints": ["preserve-test-structure", "java-17-minimum"]
  },
  "mode": "non-interactive",
  "reasoning": "Selected quarkus-3 based on detected JPA + JAX-RS usage and Maven build"
}

Tasks

  • Define questionnaire.json schema
  • Create skills/questionnaire/SKILL.md
  • Decide graphify placement (questionnaire vs plan)
  • Define how interactive input reaches the agent
  • Record LLM reasoning for non-interactive mode (consumed by eval stage)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions