AER-1 corpus vectors / Chain vectors v07

v07-close-middle

Family: Chain vectors v07. Source: base/chain-vectors-v07.json in the AER-1 corpus published at zambo.dev/aer1/corpus.json (kit 1.5.7, draft-zambo-aer1-26), file SHA-256 d72b815585afdb075311da892f54041c9ffd5e7d875afbf32bd8165c3ca9ea94.

What this vector covers

Matthew VLC-1 attack 4: close:true planted on entry 1 of 5. -07 rejects close:true anywhere but the last entry.

Rule it exercises

draft-zambo-aer1-07 Section 7: entry digest = SHA-256 over the UTF-8 bytes of the canonical JSON object {prev_digest, seq, job_id, close, id, tool, provenance_class, output_hash} (keys sorted by Unicode code point, no whitespace), where output_hash = lowercase hex SHA-256 of the base64-decoded canonical_bytes. Entry 0: prev_digest is 64 zeros and seq is 1. seq contiguous from 1. One job_id per chain. close is boolean, true only on the last entry. Honest limit: truncation of either end with re-linking is not detectable by chain mechanics alone; it needs an anchored endpoint.

Input

The vector input, exactly as published in the corpus:

{
  "timeline": [
    {
      "id": "r-job-7a1f-0",
      "seq": 1,
      "job_id": "job-7a1f",
      "tool": "price_lookup",
      "provenance_class": "LOGGED BY AGENT",
      "canonical_bytes": "eyJqb2IiOiJqb2ItN2ExZiIsImVudHJ5IjowLCJ0YWciOiJyIn0=",
      "prev_digest": "0000000000000000000000000000000000000000000000000000000000000000"
    },
    {
      "id": "r-job-7a1f-1",
      "seq": 2,
      "job_id": "job-7a1f",
      "tool": "price_lookup",
      "provenance_class": "LOGGED BY AGENT",
      "canonical_bytes": "eyJqb2IiOiJqb2ItN2ExZiIsImVudHJ5IjoxLCJ0YWciOiJyIn0=",
      "prev_digest": "380d45c6575bdb648e5723adee5a049ff212574d4c6d5dd8ad4cabcc54b6aa56",
      "close": true
    },
    {
      "id": "r-job-7a1f-2",
      "seq": 3,
      "job_id": "job-7a1f",
      "tool": "price_lookup",
      "provenance_class": "LOGGED BY AGENT",
      "canonical_bytes": "eyJqb2IiOiJqb2ItN2ExZiIsImVudHJ5IjoyLCJ0YWciOiJyIn0=",
      "prev_digest": "c225aa2256e7984575f5a664b690f2b06c86abddc528def6164fb1bbb0aa4cba"
    },
    {
      "id": "r-job-7a1f-3",
      "seq": 4,
      "job_id": "job-7a1f",
      "tool": "price_lookup",
      "provenance_class": "LOGGED BY AGENT",
      "canonical_bytes": "eyJqb2IiOiJqb2ItN2ExZiIsImVudHJ5IjozLCJ0YWciOiJyIn0=",
      "prev_digest": "4c56c96378cea5939ad61d082fff24d075649ca888b0c61308307d14034a204a"
    },
    {
      "id": "r-job-7a1f-4",
      "seq": 5,
      "job_id": "job-7a1f",
      "tool": "price_lookup",
      "provenance_class": "LOGGED BY AGENT",
      "canonical_bytes": "eyJqb2IiOiJqb2ItN2ExZiIsImVudHJ5Ijo0LCJ0YWciOiJyIn0=",
      "prev_digest": "5dd618b1b3b904a92261bb747f8c4511b0882e1454fc41f20a59fa5bd0ded778",
      "close": true
    }
  ]
}

Expected result

Checks it exercises

CheckRequirementWhy
verdictmust-failMatthew VLC-1 attack 4: close:true planted on entry 1 of 5. -07 rejects close:true anywhere but the last entry. The corpus records expected_failure: close:true before the last entry

Try Zambo free: add Zambo to your AI to run this kind of check on your own agent work, with 20 free calls per day and a Day Pass at $0.99 for 24h when you need more. Every call returns a verifiable receipt, and a receipt proves the saved result was not changed.

See the full set in the AER-1 corpus vectors index and the AER-1 corpus checks index, or read the standard itself: draft-zambo-aer1-26.