Mapping Human Tasks to AI Delimiters
When asked to define delimiters for human-to-AI task mapping, produce a table of named semantic delimiters (not punctuation) with: purpose, required fields, and an example token. Use a paired-tag syntax that won't collide with the content being wrapped, e.g. ⟦NAME attr="..."⟧ ... ⟦/NAME⟧.
Minimum viable set (10 delimiters):
| # | Delimiter | Purpose |
|---|---|---|
| 1 | TASK_SCOPE | Bounds the whole task, objective, constraints, acceptance criteria |
| 2 | HUMAN_STEP | One atomic human action |
| 3 | DECISION_GATE | Branch, approval, or conditional point |
| 4 | ARTIFACT_IO | Input/output artifact for a step or binding |
| 5 | MAPPING_RECORD | Links a human step/action to an AI action/function/prompt |
| 6 | TRANSITION_RECORD | Handoff/state change between steps, actors, or systems |
| 7 | ADAPTATION_RECORD | Documents a change made due to model/tool constraints |
| 8 | AI_MODEL_BINDING | Exact AI binding: model, prompt, tools, params, IO schema |
| 9 | VERIFICATION_ACCEPTANCE | Tests/checks proving output is acceptable |
| 10 | EXCEPTION_ROLLBACK | Failure handling, fallback, escalation, undo |
Progress:
- Clarify scope: is this for a single task or a multi-task pipeline?
- Define TASK_SCOPE with objective, constraints, acceptance criteria
- Decompose into HUMAN_STEP units (atomic, single-actor, single-action)
- Identify DECISION_GATE points (branches, approvals, judgment calls)
- Tag ARTIFACT_IO for every input/output at each step
- Draft MAPPING_RECORD entries linking each human step to a candidate AI action
- Insert TRANSITION_RECORD wherever control passes between actors/systems
- Add ADAPTATION_RECORD wherever the AI implementation can't do it the human way
- Repeat map → transition → adapt cycles until the chain reaches a stable AI_MODEL_BINDING
- Attach VERIFICATION_ACCEPTANCE to each binding
- Add EXCEPTION_ROLLBACK for failure modes
- Validate: every record references real source/target IDs, delimiters balance, no unknown tags
Canonical chain order:
TASK_SCOPE
→ HUMAN_STEP
→ MAPPING_RECORD
→ TRANSITION_RECORD
→ MAPPING_RECORD
→ ADAPTATION_RECORD
→ MAPPING_RECORD
→ ADAPTATION_RECORD
→ TRANSITION_RECORD
→ MAPPING_RECORD
→ AI_MODEL_BINDING
→ VERIFICATION_ACCEPTANCE
→ EXCEPTION_ROLLBACK
This encodes "mapped and/or transitioned, then mapped and/or adapted (repeated), then mapped to AI model" as an explicit, auditable trace rather than a vague narrative.
Example 1: Input: "I have a task: human manually reconciles invoices in a spreadsheet. Give me the delimiters to map this to an AI agent." Output:
⟦TASK_SCOPE id="T1" objective="reconcile invoices" acceptance="all line items matched or flagged"⟧
⟦HUMAN_STEP id="H1" seq="1" actor="accountant" action="open spreadsheet, compare invoice to PO"⟧
⟦ARTIFACT_IO direction="in" schema="invoice.csv,po.csv"⟧
⟦ARTIFACT_IO direction="out" schema="reconciled.csv"⟧
⟦/HUMAN_STEP⟧
⟦MAPPING_RECORD id="M1" from="H1" to="AI_ACT1" mapping_type="direct" confidence="0.9"⟧
⟦ADAPTATION_RECORD id="A1" reason="model can't access local spreadsheet" original="manual open file" adapted="file uploaded via API"⟧
⟦AI_MODEL_BINDING id="B1" model="gpt-x" prompt_id="recon_v1" io_schema="invoice.csv,po.csv->reconciled.csv"⟧
⟦VERIFICATION_ACCEPTANCE id="V1" method="row diff" expected="0 unmatched" pass_fail="TBD"⟧
⟦EXCEPTION_ROLLBACK id="E1" trigger="schema mismatch" fallback="route to human review"⟧
⟦/TASK_SCOPE⟧
Example 2:
Input: "What's the minimum set of fields every MAPPING_RECORD needs?"
Output: source_id, target_id, mapping_type (direct/partial/proxy), confidence, gap (what's lost or unhandled in the mapping).
- Treat delimiters as a reserved namespace — pick tokens unlikely to appear in real content (
⟦...⟧,<<<...>>>), and define an escape rule for literal occurrences. - Every instance needs
id,parent,seq, andversionat minimum — this is what makes the trace auditable later. - Keep HUMAN_STEP atomic: one actor, one action, one clear input/output. If it has an "and," split it.
- Every MAPPING_RECORD, TRANSITION_RECORD, and ADAPTATION_RECORD must reference real source/target IDs — no orphan records.
- Chain repetitions (map→adapt→map→adapt) are expected and should each get their own record, not be collapsed into one — the repetition itself is the audit trail.
- Always close the chain with VERIFICATION_ACCEPTANCE tied back to TASK_SCOPE's acceptance criteria.
- Don't use generic punctuation (
###,---,""") as semantic delimiters — they collide with markdown/code content and carry no structured fields. - Don't skip ADAPTATION_RECORD when the AI can't literally replicate a human action — silently "mapping" over a capability gap breaks transparency.
- Don't merge TRANSITION_RECORD and MAPPING_RECORD — a transition is a handoff/state change; a mapping is a correspondence between human and AI actions. Conflating them loses traceability.
- Don't leave EXCEPTION_ROLLBACK as an afterthought — define it alongside the binding, not after deployment.
- Don't let delimiter nesting become ambiguous — validate balanced open/close tags before treating the spec as complete.