<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp "&#160;">
  <!ENTITY zwsp "&#8203;">
  <!ENTITY nbhy "&#8209;">
  <!ENTITY wj "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="info"
     docName="draft-vandemeent-tibet-semantic-surface-manifest-00"
     ipr="trust200902"
     submissionType="IETF"
     consensus="true"
     version="3">

  <front>
    <title abbrev="SSM">TIBET Semantic Surface Manifest</title>

    <seriesInfo name="Internet-Draft"
                value="draft-vandemeent-tibet-semantic-surface-manifest-00"/>

    <author fullname="Jasper van de Meent" initials="J."
            surname="van de Meent">
      <organization>Humotica</organization>
      <address>
        <postal>
          <country>Netherlands</country>
        </postal>
        <email>info@humotica.com</email>
        <uri>https://humotica.com/</uri>
      </address>
    </author>

    <date year="2026" month="May" day="9"/>

    <area>Security</area>
    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>semantic surface</keyword>
    <keyword>routing</keyword>
    <keyword>TIBET</keyword>
    <keyword>TBZ</keyword>
    <keyword>sealed containers</keyword>

    <abstract>
      <t>This document defines the Semantic Surface Manifest, a
      human-readable and policy-matchable routing layer for
      identity-bound continuity containers and TBZ-based sealed
      bundles.</t>
      <t>The Semantic Surface Manifest exposes limited dispatch metadata
      such as time fragment, context, profile, and priority without
      exposing sealed content. It is intended for use in systems where
      routing decisions may need to occur before deep inspection, while
      trust remains anchored in intrinsic bundle properties such as magic
      bytes, manifests, hashes, signatures, and causal references.</t>
      <t>In short: address visible, content sealed.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="status">
      <name>Status of This Memo</name>
      <t>This memo is an Internet-Draft working document derived from
      operational architecture notes and prototype work in the Humotica /
      TIBET / TAT / ICC stack during May 2026.</t>
      <t>The present -00 version captures the core routing model, visible
      syntax, mirrored-surface concept, and mismatch consequences needed
      for first public review.</t>
    </section>

    <section anchor="problem">
      <name>Problem Statement</name>
      <t>Sealed containers often provide strong integrity but weak
      dispatch semantics.</t>
      <t>Systems therefore face a recurring tradeoff: either encrypt and
      seal everything, delaying routing and policy choice until deep
      inspection, or expose too much metadata, weakening privacy and
      creating new security ambiguities.</t>
      <t>The Semantic Surface Manifest addresses this by providing a
      constrained, readable routing layer that supports dispatch without
      decrypting content, minimizes metadata exposure, does not replace
      cryptographic verification, and composes with existing
      sealed-container workflows.</t>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Identity-Bound Continuity Container:</dt>
        <dd>A cryptographically sealed bundle that combines identity
        binding, continuity semantics, and containerized payload
        transfer.</dd>
        <dt>Semantic Surface Manifest:</dt>
        <dd>A human-readable routing surface associated with a bundle,
        typically expressed through filename or object-name structure and
        optionally mirrored into sealed manifest fields.</dd>
        <dt>Intrinsic Truth:</dt>
        <dd>Properties established by the sealed object itself, such as
        magic bytes, manifest, signatures, hashes, and chain
        anchors.</dd>
        <dt>Extrinsic Surface:</dt>
        <dd>Properties expressed outside the sealed object for dispatch
        and routing, such as time fragment, context, profile, and
        priority.</dd>
        <dt>Surface-Integrity Event:</dt>
        <dd>A meaningful mismatch or anomaly involving visible routing
        surface and mirrored sealed routing fields.</dd>
      </dl>
    </section>

    <section anchor="design-goals">
      <name>Design Goals</name>
      <t>The Semantic Surface Manifest is intended to remain
      human-readable, machine-parseable, bounded in disclosure, and
      composable with existing ICC or TBZ verification workflows.</t>
      <t>It should support wildcard or policy matching, align with logs
      and audit ecosystems, and support mirrored sealed fields for
      consistency checks. It must not be treated as proof of identity or
      content, override manifest truth, or carry rich payload
      details.</t>
    </section>

    <section anchor="syntax">
      <name>Syntax</name>
      <t>The normative external form is:</t>
      <sourcecode type="text"><![CDATA[
<time-fragment>.<context>.<profile>.<priority>[.<icc-ext>]
]]></sourcecode>
      <t>The Semantic Surface Manifest is intentionally flat and
      dot-delimited in version 1. The formal grammar uses ABNF as defined
      in <xref target="RFC5234"/>.</t>
      <t>Each segment is restricted to lowercase letters, digits, and
      hyphens. Segments must not contain spaces, slashes, underscores,
      nested dots, or uppercase letters.</t>
      <sourcecode type="abnf"><![CDATA[
surface-name    = time-fragment "." context "." profile "." priority
                  [ "." icc-ext ]

time-fragment   = date-frag [ "t" time-frag "z" ]
date-frag       = 4DIGIT "-" 2DIGIT "-" 2DIGIT
time-frag       = 2DIGIT "-" 2DIGIT
context         = 1*32(segment-char)
profile         = 1*16(segment-char)
priority        = 1*16(segment-char)
icc-ext         = 1*16(segment-char)
segment-char    = LCALPHA / DIGIT / "-"
LCALPHA         = %x61-7A
DIGIT           = %x30-39
]]></sourcecode>
    </section>

    <section anchor="time-fragments">
      <name>Time Fragment Format</name>
      <t>This document prefers an ISO8601-style fragment over compact
      local date forms because it is lexicographically sortable, readable
      across jurisdictions, aligned with logs, and supports both coarse
      and fine routing granularity.</t>
      <t>Two forms are recommended in version 1:</t>
      <sourcecode type="text"><![CDATA[
2026-05-08
2026-05-08t18-38z
]]></sourcecode>
    </section>

    <section anchor="vocabulary">
      <name>Vocabulary Registries</name>
      <section anchor="profile-registry">
        <name>Profile Registry</name>
        <t>Initial profile values include claude, gemini, gpt, kit,
        iddrop, parentattest, capsule, and tza. These values describe
        semantic class, not vendor authenticity.</t>
      </section>
      <section anchor="priority-registry">
        <name>Priority Registry</name>
        <t>Initial priority values include urgent, normal, background,
        and sealed.</t>
      </section>
      <section anchor="context-field">
        <name>Context</name>
        <t>The context field remains open-text in version 1 but is
        expected to be short, low-leakage, and ABNF-conforming.</t>
      </section>
    </section>

    <section anchor="processing-model">
      <name>Processing Model</name>
      <section anchor="surface-parse">
        <name>Surface Parse</name>
        <t>A compliant implementation may parse the semantic surface
        before opening the bundle in order to choose a queue, handler,
        retention policy, or operator lane.</t>
      </section>
      <section anchor="type-sniff">
        <name>Type Sniff</name>
        <t>An implementation should verify container type using
        intrinsic signals such as TBZ magic bytes before deep
        handling.</t>
      </section>
      <section anchor="deep-verification">
        <name>Deep Verification</name>
        <t>Before trust-sensitive operations, an implementation must
        verify the sealed container according to its intrinsic integrity
        rules.</t>
      </section>
      <section anchor="surface-consistency">
        <name>Surface-to-Manifest Consistency</name>
        <t>If the sealed manifest contains mirrored surface fields, the
        implementation should compare them against the external semantic
        surface. Meaningful mismatch should be treated as a
        surface-integrity event leading to triage, quarantine, or policy
        review rather than silent acceptance.</t>
      </section>
    </section>

    <section anchor="mirrored-fields">
      <name>Mirrored Manifest Fields</name>
      <t>This document defines optional mirrored manifest fields such as
      surface_time_fragment, surface_context, surface_profile, and
      surface_priority.</t>
      <t>If both an external semantic surface and internal mirrored
      fields are present, the mirrored fields are authoritative for
      triage classification and deep semantic handling.</t>
    </section>

    <section anchor="example">
      <name>Example</name>
      <t>Example external surface:</t>
      <sourcecode type="text"><![CDATA[
2026-05-08.redspecter-review.claude.urgent
]]></sourcecode>
      <t>Processing may route to an urgent queue, classify as a candidate
      profile, verify TBZ magic bytes, inspect the manifest, verify
      signatures and hashes, compare visible and sealed surface, and only
      then hand to a profile-aware handler if consistent or
      policy-approved.</t>
    </section>

    <section anchor="mismatch">
      <name>Mismatch Classes</name>
      <section anchor="cosmetic-mismatch">
        <name>Cosmetic Mismatch</name>
        <t>A visible label changes while sealed truth remains intact.
        Recommended disposition is triage with manifest semantics
        prevailing.</t>
      </section>
      <section anchor="routing-risk">
        <name>Routing-Risk Mismatch</name>
        <t>A visible profile and a sealed profile differ in a way that
        creates significant misrouting risk. Recommended disposition is
        triage or quarantine, not auto-materialization.</t>
      </section>
      <section anchor="no-mirrored-fields">
        <name>No Mirrored Fields</name>
        <t>Legacy bundles may provide visible routing only, yielding a
        reduced-assurance mode because no sealed-surface comparison is
        possible.</t>
      </section>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>The Semantic Surface Manifest is not a source of trust.
      Implementations must assume that external names can be changed and
      visible routing labels can be misleading. The sealed container
      remains the only strong source of truth.</t>
      <t>Routing may depend on SSM, but trust must not depend on SSM
      alone.</t>
    </section>

    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>The Semantic Surface Manifest intentionally exposes limited
      metadata. Implementers should keep context low-sensitivity, avoid
      direct secrets or detailed personal data, and prefer naming for
      dispatch rather than disclosure.</t>
    </section>

    <section anchor="interop">
      <name>Interoperability Considerations</name>
      <t>The SSM is designed to compose with TBZ, ICC-based continuity
      containers, TIBET Drop or TAT flows, session-state bundles,
      attestation bundles, sealed capsules, local storage, transport
      objects, attachments, queues, and router decisions.</t>
    </section>

    <section anchor="stack-relation">
      <name>Relationship to JIS, TIBET, TAT, and ICC</name>
      <t>This document does not replace JIS identity semantics, TIBET
      causal ordering, TAT transfer flow, or ICC sealed object
      semantics. It adds a visible routing surface above them.</t>
      <t>A clean split is that JIS decides who is acting, TIBET decides
      causal truth, TAT decides transfer flow, ICC decides sealed object
      class, and SSM decides visible dispatch semantics.</t>
    </section>

    <section anchor="future-work">
      <name>Future Work</name>
      <ul>
        <li>richer but still bounded registries for profile</li>
        <li>explicit mirrored-surface validation modes</li>
        <li>MUX or SNAFT routing integration</li>
        <li>UI conventions for displaying safe routing metadata</li>
        <li>signed or policy-bound surface-to-manifest binding hints</li>
      </ul>
    </section>

    <section anchor="future-questions">
      <name>Questions for Future Revisions</name>
      <t>The following topics are non-blocking for the present -00
      version and are recorded here to guide later discussion and
      interoperability work.</t>
      <ul>
        <li>whether profile should remain open-text or move to a tighter
        registry</li>
        <li>whether the optional suffix should be preserved, normalized,
        or ignored by parsers</li>
        <li>whether seconds-level time fragments should be allowed in
        version 1</li>
        <li>whether some domains should escalate all mismatch to
        quarantine while others allow low-risk auto-continue</li>
      </ul>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests two registries: a Surface Profile
      Registry and a Surface Priority Registry.</t>
      <t>Registration policy for both is Expert Review as described in
      <xref target="RFC8126"/>. Initial profile
      values are claude, gemini, gpt, kit, iddrop, parentattest,
      capsule, and tza. Initial priority values are urgent, normal,
      background, and sealed.</t>
      <t>No registries are requested for time-fragment, context, or
      icc-ext in version 1.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234">
        <front>
          <title>Augmented BNF for Syntax Specifications: ABNF</title>
          <author fullname="D. Crocker" surname="Crocker" initials="D."/>
          <author fullname="P. Overell" surname="Overell" initials="P."/>
          <date month="January" year="2008"/>
        </front>
        <seriesInfo name="STD" value="68"/>
        <seriesInfo name="RFC" value="5234"/>
      </reference>
      <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
        <front>
          <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
          <author fullname="M. Cotton" surname="Cotton" initials="M."/>
          <author fullname="B. Leiba" surname="Leiba" initials="B."/>
          <author fullname="T. Narten" surname="Narten" initials="T."/>
          <date month="June" year="2017"/>
        </front>
        <seriesInfo name="BCP" value="26"/>
        <seriesInfo name="RFC" value="8126"/>
      </reference>
    </references>

    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The author thanks the Humotica team for editorial assistance,
      RFC outline preparation, mismatch class formalization, and the
      operational tooling that made the surface consistency model
      concrete.</t>
      <t>The author also thanks Richard Barron of Red Specter Security
      Research for adversarial framing that helped sharpen the address
      visible, content sealed principle and the rename-attack
      perspective.</t>
    </section>
  </back>
</rfc>
