Skip to content

Preprocessor behavior for multi-directive input (clarify vs abstain) #77

@rlippmann

Description

@rlippmann

Currently, the preprocessor assumes a single directive per message.

Open question:
How should the system handle inputs that appear to contain multiple directives?

Examples:

  • "clear premise; reset policies"
  • "use docker and prohibit peanuts"
  • multi-line:
    clear premise
    reset policies

Options:

  1. Return <NO_DIRECTIVE> (current behavior)
  2. Return clarify via host UX (e.g., "Please send one directive at a time.") while preprocessor output remains <NO_DIRECTIVE>
  3. Attempt to execute multiple directives (likely out of scope)

Key constraints:

  • precision-first (false positives are worse than false negatives)
  • whole-message matching (no partial extraction)
  • deterministic behavior
  • no semantic guessing

Considerations:

  • usability: users may naturally batch commands
  • risk: detecting multiple directives reliably without false positives
  • interaction with multi-line input
  • whether detection should be heuristic-only or also handled by LLM

Open questions:

  • what qualifies as a "clean" multi-directive input?
  • should multi-line inputs be treated differently?
  • should this logic live in heuristic or LLM layer?

Non-goal:

  • no changes to core engine grammar/semantics in this issue

Decision deferred for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions