Skip to main content

Prerequisite Management

When to Load

When you discover access requirements or need to check/update prerequisite status.

When to CREATE Prerequisites

  • Auth is required and credentials exist → "Authentication to X"
  • Admin/premium access needed → "Admin access to X"
  • Specific tool/config needed → "VPN connection" or "API key for X"
  • External dependency → "Stripe test account active"

When NOT to Create

  • Condition is trivially met (e.g., "internet access") — don't create noise
  • Condition is within agent's control (e.g., "download JS files") — just do it
  • Equivalent prerequisite already exists — attach the existing one instead
  • One-time setup already done — no need to track

Quality Standards

Title

  • Concise condition description, NOT a task description
  • GOOD: "Authentication to app.example.com"
  • BAD: "Need to log in" / "Auth" / "P3 task needs this"

Description

  • MUST include URLs, credentials/references, step-by-step instructions
  • The validation job agent reads this to test the condition automatically
  • GOOD: "User account peter@agentic.pt with password Str0ngP@ss. Login at https://app.example.com/login, enter credentials, JWT returned in Set-Cookie."
  • BAD: "Need to be authenticated to the site"

Met Condition

  • Specific, testable by a machine
  • GOOD: "Account is active and login returns 200 with valid JWT cookie"
  • BAD: "Auth works" / "Can access"

Lifecycle

  1. Agent discovers requirement → delegates to manage-prerequisite subagent
  2. Subagent checks for duplicates, validates quality, creates
  3. Agent attaches prerequisite_id to tasks via create_task(prerequisite_ids=[...])
  4. If condition breaks → agent updates status to False with evidence
  5. System blocks dependent tasks + spawns validation job
  6. Validation job confirms or overrides + attempts remediation
  7. Human can force-override via UI at any time

Attaching to Tasks

When creating tasks that need a prerequisite:

Agent("register-task", "P3 page exploration. Service: app (id=5).
Page: /checkout. Prerequisite IDs: [12, 15].")

The register-task subagent passes prerequisite_ids to create_task.

Status Updates

When you discover a prerequisite is no longer met:

Agent("manage-prerequisite", "Update status. Prerequisite ID: 12.
Status: False. Reasoning: Login returned 403 'Account suspended
due to suspicious activity'. Tried 3 times, same result.")

The system will automatically block all dependent tasks and spawn a validation job to independently verify.