Skip to content

fix: abstain on compound directive input#20

Merged
rlippmann merged 1 commit into
mainfrom
issue-14
Jul 14, 2026
Merged

fix: abstain on compound directive input#20
rlippmann merged 1 commit into
mainfrom
issue-14

Conversation

@rlippmann

Copy link
Copy Markdown
Owner

Summary

  • detect multiple canonical directive starts across the normalized whole message
  • make heuristic preprocessing abstain instead of collapsing compound input into one candidate
  • preserve singular directives whose payloads contain ordinary conjunctions such as and
  • reuse shared canonical directive-start definitions for compound detection in both heuristic preprocessing and output validation
  • add focused tests and fixtures for directive-family combinations, separators, multiline input, lexical boundaries, and singular payloads
  • document that the drafter emits at most one candidate directive and does not split compound input

Notes

  • detection is intentionally lexical and conservative; it does not attempt general semantic segmentation
  • ordinary conjunctions are not treated as compound intent by themselves, so payloads such as use peanut butter and jelly remain valid
  • context-compiler independently enforces the single-directive invariant at the authoritative engine boundary
  • this change affects acquisition-layer behavior only
  • validation passed:
    • uv run pre-commit run --all-files
    • uv run pytest — 111 passed

Closes #14

@rlippmann
rlippmann merged commit 047d339 into main Jul 14, 2026
20 checks passed
@rlippmann
rlippmann deleted the issue-14 branch July 14, 2026 07:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Detect compound directive payloads and abstain or produce clarification-safe behavior

1 participant