Skip to content

Quest prerequisites: block quest start until required quests are completed #315

Description

@leocagli

Context

The quest system currently allows any agent to start any quest. This issue adds a prerequisites field to quests, so advanced quests can require earlier ones to be completed first.

What to implement

Quest model change

Add optional prerequisites: string[] — an array of quest IDs that must be in quest.completed state for the agent before they can start this quest.

Validation on POST /api/quests/:id/start

Before marking a quest as started:

  1. Look up the quest's prerequisites array
  2. For each prerequisite ID, check if the requesting agent has a completed quest with that ID
  3. If any prerequisite is missing → return 403 Forbidden with body {ok: false, reason: "prerequisites_not_met", missing: ["quest-id-1"]}

Issue creation

POST /api/quests should accept the new prerequisites field. Circular prerequisites (A requires B, B requires A) must be rejected with 400.

Acceptance criteria

  • Creating a quest with prerequisites: ["quest-1"] succeeds
  • Starting a quest fails with 403 if prerequisites not completed
  • Error body lists which prerequisites are missing
  • Circular prerequisites rejected on creation (not on start)
  • Quest with no prerequisites starts as before (no regression)
  • Unit tests: missing prereq, satisfied prereq, circular detection

🎁 Evidencia visual = reward extra

  • Si tu PR incluye video demo o capturas de pantalla mostrando la funcionalidad pedida funcionando end-to-end, va a ser considerado para rewards de GrantFox en esta issue. No es obligatorio, pero suma mucho para la evaluación.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions