<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     version="3"
     category="info"
     ipr="trust200902"
     docName="draft-kalmykov-socarch-profile-00"
     submissionType="IETF"
     consensus="false">
  <front>
    <title abbrev="Social Architecture Diagnostic Profile">Social Architecture Diagnostic Profile: A JSON-Based Format for Exchanging Diagnostic Descriptions of Socio-Technical Environments</title>
    <seriesInfo name="Internet-Draft" value="draft-kalmykov-socarch-profile-00"/>
    <author fullname="Nikolay N. Kalmykov" initials="N. N." surname="Kalmykov">
      <organization>MGIMO University</organization>
      <address>
        <email>Kalmykov@Kalmykovnn.ru</email>
      </address>
    </author>
    <date year="2026" month="July" day="2"/>
    <area>Applications and Real-Time</area>
    <workgroup>Individual Submission</workgroup>
    <keyword>social architecture</keyword>
    <keyword>socio-technical systems</keyword>
    <keyword>diagnostic profile</keyword>
    <keyword>JSON</keyword>
    <keyword>provenance</keyword>
    <keyword>human review</keyword>
    <abstract>
      <t>This document specifies the Social Architecture Diagnostic Profile (SADP), a JSON-based format for exchanging diagnostic descriptions of socio-technical environments. A profile records the object under review, the evidence used, the diagnostic dimensions applied, identified breaks or tensions, limitations, confidence levels, and human-review requirements. The format is intended for research tools, educational systems, expert-review workflows, case repositories, and other systems that need portable and inspectable diagnostic descriptions.</t>
      <t>This document does not define a scoring standard, certification procedure, legal assessment process, psychological assessment process, or automated consequential decision process.</t>
    </abstract>
  </front>
  <middle>
    <section numbered="true" toc="default">
      <name>Introduction</name>
      <t>Many socio-technical environments combine formal rules, user routes, interfaces, organizational handoffs, feedback channels, appeals, informal practices, and trust relationships. Researchers and practitioners often need to exchange structured descriptions of such environments without exchanging raw personal data or confidential case materials.</t>
      <t>The Social Architecture Diagnostic Profile (SADP) provides a compact JSON-based representation for such descriptions. It is designed to make diagnostic reports portable, inspectable, versioned, and easier to compare across tools while preserving the boundary between facts, interpretations, hypotheses, recommendations, and limitations.</t>
      <t>SADP is intentionally modest. It specifies a representation format. It does not standardize a theory of social architecture, does not define a universal measurement scale, and does not prescribe how organizations must redesign services, platforms, or institutions.</t>
    </section>

    <section numbered="true" toc="default">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      <dl newline="true">
        <dt>Social architecture</dt>
        <dd>A structured configuration of actors, roles, rules, routes, statuses, digital tools, feedback mechanisms, trust relations, barriers, and compensatory practices within a bounded social situation.</dd>
        <dt>Diagnostic profile</dt>
        <dd>A structured representation of a diagnostic description of a social architecture.</dd>
        <dt>Diagnostic dimension</dt>
        <dd>A named aspect of the diagnostic profile, such as route clarity, feedback availability, appeal availability, trust, recoverability, digital opacity, or human-review requirement.</dd>
        <dt>Break</dt>
        <dd>A point where the social architecture does not connect properly, such as a rule-practice mismatch, missing appeal channel, unclear entry point, opaque decision, or excessive route burden.</dd>
        <dt>Compensatory mechanism</dt>
        <dd>An informal or auxiliary mechanism by which participants keep the system functioning despite breaks, such as personal mediation, manual intervention, repeated submissions, or unofficial instructions.</dd>
        <dt>Human review</dt>
        <dd>A review by a qualified person before applying the diagnostic output in a consequential context.</dd>
      </dl>
    </section>

    <section numbered="true" toc="default">
      <name>Use Cases</name>
      <t>SADP is intended for the following use cases:</t>
      <ul>
        <li>exchanging diagnostic profiles between research tools and case repositories;</li>
        <li>exporting anonymized case descriptors for dissertation or publication appendices;</li>
        <li>comparing diagnostic cases across educational, public-service, organizational, urban, platform, or communication contexts;</li>
        <li>attaching evidence and limitations to expert diagnostic reports;</li>
        <li>supporting repeat diagnostics after a route, interface, rule, or feedback mechanism is changed;</li>
        <li>teaching structured analysis of socio-technical environments.</li>
      </ul>
      <t>SADP is not intended for the following uses:</t>
      <ul>
        <li>automated legal, medical, psychological, financial, employment, or eligibility decisions;</li>
        <li>covert profiling of individuals or protected groups;</li>
        <li>publication of raw personal data or confidential case materials;</li>
        <li>certification of a method, service, organization, platform, or public authority;</li>
        <li>claims that a redesign has caused an outcome without an appropriate research design.</li>
      </ul>
    </section>

    <section numbered="true" toc="default">
      <name>Data Model</name>
      <t>A SADP document is a JSON object. It contains metadata, case description, method versioning, source and evidence information, diagnostic dimensions, breaks, compensatory mechanisms, correction modules, limitations, privacy information, and human-review information.</t>
      <t>The top-level object MUST contain the following members:</t>
      <ul>
        <li><tt>schema_version</tt></li>
        <li><tt>profile_id</tt></li>
        <li><tt>created_at</tt></li>
        <li><tt>profile_type</tt></li>
        <li><tt>case</tt></li>
        <li><tt>method</tt></li>
        <li><tt>diagnostic_profile</tt></li>
        <li><tt>privacy</tt></li>
        <li><tt>limitations</tt></li>
        <li><tt>human_review</tt></li>
      </ul>
      <t>The top-level object MAY contain the following members:</t>
      <ul>
        <li><tt>sources</tt></li>
        <li><tt>evidence</tt></li>
        <li><tt>breaks</tt></li>
        <li><tt>compensatory_mechanisms</tt></li>
        <li><tt>correction_modules</tt></li>
        <li><tt>research_export</tt></li>
        <li><tt>links</tt></li>
      </ul>
    </section>

    <section numbered="true" toc="default">
      <name>JSON Representation</name>
      <section numbered="true" toc="default">
        <name>Common Requirements</name>
        <t>A SADP JSON document MUST be encoded as UTF-8 JSON <xref target="RFC8259"/>.</t>
        <t>Implementations SHOULD canonicalize JSON when generating stable checksums or signatures. JSON Canonicalization Scheme <xref target="RFC8785"/> is one possible approach.</t>
        <t>String fields SHOULD be concise. A profile intended for public exchange MUST NOT include raw personal data unless there is a lawful basis, a documented purpose, and an explicit access-control model outside this format.</t>
      </section>
      <section numbered="true" toc="default">
        <name>schema_version</name>
        <t>The <tt>schema_version</tt> member identifies the SADP schema version. This document defines version <tt>0.1</tt>.</t>
      </section>
      <section numbered="true" toc="default">
        <name>profile_id</name>
        <t>The <tt>profile_id</tt> member is a stable local identifier for the profile. It SHOULD be unique within the producing system.</t>
      </section>
      <section numbered="true" toc="default">
        <name>created_at</name>
        <t>The <tt>created_at</tt> member records the profile creation time as a string in RFC 3339 format.</t>
      </section>
      <section numbered="true" toc="default">
        <name>profile_type</name>
        <t>The <tt>profile_type</tt> member classifies the profile. Allowed values are <tt>synthetic</tt>, <tt>anonymized_case</tt>, <tt>public_source_descriptor</tt>, and <tt>restricted_descriptor</tt>.</t>
      </section>
      <section numbered="true" toc="default">
        <name>case</name>
        <t>The <tt>case</tt> member describes the object under review. It MUST include <tt>case_id</tt>, <tt>domain</tt>, <tt>analysis_level</tt>, <tt>diagnostic_mode</tt>, and <tt>source_status</tt>. It MAY include <tt>title</tt>, <tt>boundary</tt>, <tt>actors</tt>, <tt>affected_groups</tt>, <tt>route_or_process</tt>, and <tt>jurisdiction</tt>.</t>
      </section>
      <section numbered="true" toc="default">
        <name>method</name>
        <t>The <tt>method</tt> member describes versions of the method or tool that generated the profile. It SHOULD include <tt>methodology_version</tt>, <tt>schema_version</tt>, and <tt>report_template_version</tt>. It MAY include <tt>tool_name</tt>, <tt>tool_version</tt>, and <tt>review_protocol_version</tt>.</t>
      </section>
      <section numbered="true" toc="default">
        <name>sources</name>
        <t>The <tt>sources</tt> member is an array of source descriptors. Each descriptor SHOULD include <tt>source_id</tt>, <tt>source_type</tt>, <tt>access_status</tt>, <tt>reliability</tt>, and <tt>citation_allowed</tt>. It MAY include <tt>title</tt>, <tt>date</tt>, <tt>url</tt>, and <tt>checksum</tt>.</t>
        <t>Public profiles SHOULD avoid direct links to sensitive or identifying source materials.</t>
      </section>
      <section numbered="true" toc="default">
        <name>diagnostic_profile</name>
        <t>The <tt>diagnostic_profile</tt> member records the diagnostic dimensions. It SHOULD include <tt>dominant_layer</tt>, <tt>route_status</tt>, <tt>feedback_status</tt>, <tt>appeal_status</tt>, <tt>trust_status</tt>, <tt>recoverability_status</tt>, <tt>digital_opacity_status</tt>, and <tt>human_review_required</tt>.</t>
        <t><tt>dominant_layer</tt> SHOULD be one of <tt>institutional</tt>, <tt>spatial_organizational</tt>, <tt>normative_semiotic</tt>, <tt>digital</tt>, <tt>mixed</tt>, or <tt>unknown</tt>.</t>
        <t>Status members SHOULD use one of <tt>absent</tt>, <tt>weak</tt>, <tt>partial</tt>, <tt>present</tt>, <tt>strong</tt>, <tt>unknown</tt>, or <tt>not_applicable</tt>.</t>
      </section>
      <section numbered="true" toc="default">
        <name>breaks</name>
        <t>The <tt>breaks</tt> member is an array of diagnostic breaks. Each break SHOULD include <tt>break_id</tt>, <tt>break_type</tt>, <tt>affected_layer</tt>, <tt>affected_group</tt>, <tt>description</tt>, <tt>confidence</tt>, <tt>evidence_refs</tt>, and <tt>human_verification_question</tt>.</t>
        <t><tt>confidence</tt> SHOULD be one of <tt>low</tt>, <tt>medium</tt>, <tt>high</tt>, or <tt>not_assessed</tt>.</t>
      </section>
      <section numbered="true" toc="default">
        <name>evidence</name>
        <t>The <tt>evidence</tt> member is an array linking conclusions to sources. Each evidence item SHOULD include <tt>evidence_id</tt>, <tt>claim_status</tt>, <tt>summary</tt>, <tt>source_refs</tt>, <tt>confidence</tt>, and <tt>limitation</tt>.</t>
        <t><tt>claim_status</tt> SHOULD be one of <tt>fact</tt>, <tt>source_statement</tt>, <tt>user_description</tt>, <tt>interpretation</tt>, <tt>hypothesis</tt>, <tt>recommendation</tt>, or <tt>limitation</tt>.</t>
      </section>
    </section>

    <section numbered="true" toc="default">
      <name>Profile Exchange Workflow</name>
      <t>A producing system SHOULD follow this workflow:</t>
      <ol>
        <li>Register the case and define its boundary.</li>
        <li>Minimize and classify input materials.</li>
        <li>Construct a diagnostic profile.</li>
        <li>Link significant conclusions to evidence.</li>
        <li>Remove or restrict personal data and confidential materials.</li>
        <li>Add limitations and human-review questions.</li>
        <li>Validate the JSON document against the SADP schema.</li>
        <li>Export the profile to the receiving system.</li>
      </ol>
      <t>A receiving system SHOULD validate syntax and schema conformance, inspect privacy and human-review flags, preserve identifiers and limitations, and avoid using the profile for consequential decisions unless human review and local governance requirements are satisfied.</t>
    </section>

    <section numbered="true" toc="default">
      <name>Versioning and Extensibility</name>
      <t>Implementations MUST preserve unknown top-level members unless they have a documented reason to drop them.</t>
      <t>Extension members SHOULD use a namespaced form such as <tt>x-example-org-field</tt>.</t>
      <t>Future versions of this document may define registries for diagnostic dimensions, break types, source types, or correction modules.</t>
    </section>

    <section numbered="true" toc="default">
      <name>Privacy Considerations</name>
      <t>SADP profiles can describe sensitive environments, including public services, education, employment, organizational conflicts, platform sanctions, vulnerable-group access, and other high-impact contexts.</t>
      <t>A SADP profile MUST include the <tt>privacy</tt> member. The profile SHOULD state whether it contains personal data, raw text, direct quotations, or identifiability risk.</t>
      <t>Public SADP profiles SHOULD use synthetic or anonymized examples. They SHOULD NOT contain direct quotes, screenshots, names, contact details, account IDs, student IDs, employee IDs, precise location trails, or other identifiers unless an explicit disclosure model exists.</t>
      <t>When a profile is derived from user-submitted materials, the producing system SHOULD record consent status outside the public profile or include only a minimal consent descriptor.</t>
      <t>Privacy guidance in <xref target="RFC6973"/> is relevant when implementing SADP in networked systems.</t>
    </section>

    <section numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>SADP is a data representation format. It does not itself provide authentication, authorization, confidentiality, integrity, or audit logging.</t>
      <t>Implementations that store or exchange SADP profiles SHOULD provide access control, transport security, audit logging, retention limits, integrity checks, separation of public profiles from restricted case materials, safeguards against prompt injection or source-content injection when profiles are processed by language-model systems, and safeguards against over-reliance on profile outputs in consequential contexts.</t>
      <t>Implementations MUST NOT treat profile conformance as evidence that a diagnostic conclusion is true, complete, unbiased, or suitable for automated action.</t>
      <t>Implementations SHOULD treat untrusted profile content as untrusted input. Strings from profile fields MUST NOT be executed as code or used as privileged instructions.</t>
    </section>

    <section numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>

    <section numbered="true" toc="default">
      <name>Example</name>
      <t>The following shortened example illustrates a synthetic public-service profile:</t>
      <sourcecode type="json"><![CDATA[
{
  "schema_version": "0.1",
  "profile_id": "sadp-synth-public-service-001",
  "created_at": "2026-07-02T00:00:00Z",
  "profile_type": "synthetic",
  "case": {
    "case_id": "synth-public-service-route-001",
    "title": "Synthetic route with missing appeal",
    "domain": "public_service",
    "analysis_level": "service_route",
    "diagnostic_mode": "route_failure_map",
    "source_status": "synthetic"
  },
  "method": {
    "methodology_version": "0.1",
    "schema_version": "0.1",
    "report_template_version": "0.1"
  },
  "diagnostic_profile": {
    "dominant_layer": "spatial_organizational",
    "route_status": "partial",
    "feedback_status": "weak",
    "appeal_status": "absent",
    "trust_status": "weak",
    "recoverability_status": "weak",
    "digital_opacity_status": "partial",
    "human_review_required": true
  },
  "breaks": [
    {
      "break_id": "br-001",
      "break_type": "missing_appeal_path",
      "affected_layer": "institutional",
      "affected_group": "service_applicants",
      "description": "No appeal step.",
      "confidence": "medium",
      "evidence_refs": ["ev-001"],
      "human_verification_question": "Review path?"
    }
  ],
  "privacy": {
    "contains_personal_data": false,
    "contains_raw_text": false,
    "contains_direct_quotes": false,
    "identifiability_risk": "low"
  },
  "limitations": [
    "Synthetic example; not an empirical measurement.",
    "No causal claim is made."
  ],
  "human_review": {
    "required": true,
    "status": "not_reviewed",
    "review_notes": []
  }
}
]]></sourcecode>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/rfc/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner"/>
          <date year="1997" month="March"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/rfc/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba"/>
          <date year="2017" month="May"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
      </reference>
      <reference anchor="RFC8259" target="https://www.rfc-editor.org/rfc/rfc8259">
        <front>
          <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
          <author fullname="T. Bray"/>
          <date year="2017" month="December"/>
        </front>
        <seriesInfo name="STD" value="90"/>
        <seriesInfo name="RFC" value="8259"/>
      </reference>
      <reference anchor="RFC8785" target="https://www.rfc-editor.org/rfc/rfc8785">
        <front>
          <title>JSON Canonicalization Scheme (JCS)</title>
          <author fullname="A. Rundgren"/>
          <author fullname="B. Jordan"/>
          <author fullname="S. Erdtman"/>
          <date year="2020" month="June"/>
        </front>
        <seriesInfo name="RFC" value="8785"/>
      </reference>
    </references>
    <references>
      <name>Informative References</name>
      <reference anchor="RFC6973" target="https://www.rfc-editor.org/rfc/rfc6973">
        <front>
          <title>Privacy Considerations for Internet Protocols</title>
          <author fullname="A. Cooper"/>
          <author fullname="H. Tschofenig"/>
          <author fullname="B. Aboba"/>
          <author fullname="J. Peterson"/>
          <author fullname="J. Morris"/>
          <author fullname="M. Hansen"/>
          <author fullname="R. Smith"/>
          <date year="2013" month="July"/>
        </front>
        <seriesInfo name="RFC" value="6973"/>
      </reference>
    </references>
    <section numbered="true" toc="default">
      <name>JSON Schema</name>
      <t>A JSON Schema for SADP version 0.1 is expected to accompany this Internet-Draft as an implementation artifact. The schema is informative; the normative requirements are defined in this document.</t>
    </section>
    <section numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The author thanks the broader communities working on socio-technical systems, digital governance, human review, research data stewardship, and responsible AI documentation. Specific acknowledgements can be added before submission.</t>
    </section>
  </back>
</rfc>

