GitHub Action commited on
Commit
e1d4c99
·
1 Parent(s): f7e007a

Sync from GitHub with Git LFS

Browse files
Files changed (1) hide show
  1. docs/HMP-0005.md +292 -281
docs/HMP-0005.md CHANGED
@@ -6605,10 +6605,260 @@ It improves performance and usability while preserving HMP’s core principles:
6605
 
6606
  ---
6607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6608
  ## 13. Experimental Extensions
6609
 
6610
  Experimental Extensions describe mechanisms that are intentionally exposed for exploration, prototyping, and architectural discovery.
6611
 
 
 
6612
  They may evolve rapidly, change structure, or be removed entirely based on implementation feedback.
6613
 
6614
  Agents implementing Experimental Extensions SHOULD assume:
@@ -6619,7 +6869,7 @@ Agents implementing Experimental Extensions SHOULD assume:
6619
 
6620
  Agents MUST safely ignore unsupported experimental features and MUST NOT assume their presence in peer environments.
6621
 
6622
- Experimental Extensions MUST NOT redefine or violate core protocol semantics, even when exploring novel architectural directions or when widely adopted.
6623
 
6624
  This section exists to encourage innovation without prematurely constraining the design space of HMP.
6625
 
@@ -6627,6 +6877,43 @@ Implementers are explicitly invited to experiment, fork ideas, and propose refin
6627
 
6628
  ---
6629
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6630
  ## 14. Research Directions
6631
 
6632
  This section outlines optional modules and evolutionary directions that align with the architecture of HMP v5.0 but are **not part of the core specification**.
@@ -6784,36 +7071,7 @@ A strict mapping DID ↔ agent is required:
6784
 
6785
  #### 14.3.2 Key Rotation and Recovery
6786
 
6787
- Future versions may extend `peer_announce` with:
6788
-
6789
- ```json
6790
- "recovery_keys": [...],
6791
- "key_history": [...],
6792
- "key_rotation_policy": "3-of-5"
6793
- ```
6794
-
6795
- Key management rules:
6796
-
6797
- * rotating the **primary** key requires signatures from **all** recovery keys
6798
- (or an N-of-M policy);
6799
-
6800
- * rotating a **recovery key** requires
6801
-
6802
- * a signature from the primary key, **or**
6803
- * a majority of recovery keys.
6804
-
6805
- This prevents:
6806
-
6807
- * DID hijacking;
6808
- * irreversible loss of access.
6809
-
6810
- Key invalidation currently uses:
6811
-
6812
- ```json
6813
- "key_is_falsified": true
6814
- ```
6815
-
6816
- This mechanism remains compatible with proposed extensions.
6817
 
6818
  ---
6819
 
@@ -6896,71 +7154,7 @@ Required components:
6896
 
6897
  #### 14.6.4 Competence and Profile Containers
6898
 
6899
- Future versions of HMP may introduce more structured and semantically rich variants of `peer_announce`, allowing agents to explicitly describe their capabilities, competences, and supported protocols.
6900
-
6901
- Possible extensions include:
6902
-
6903
- * standardized competence descriptors (skills, domains, self-rated expertise);
6904
- * machine-readable profiles usable for task routing and delegation.
6905
-
6906
- ##### Protocol Awareness and Interoperability
6907
-
6908
- An important extension is the ability for agents to explicitly advertise
6909
- the protocol versions and external cognitive frameworks they support.
6910
-
6911
- This allows:
6912
-
6913
- * graceful evolution of the HMP protocol;
6914
- * coexistence of multiple HMP versions in the same mesh;
6915
- * emergence of bridge agents capable of translating between protocols;
6916
- * interoperability with external reasoning ecosystems.
6917
-
6918
- A future extension of `peer_announce` may include a `protocols` field:
6919
-
6920
- ```json
6921
- {
6922
- "head": {
6923
- "class": "peer_announce"
6924
- },
6925
- "payload": {
6926
- "capabilities": ["store-forward", "vote", "consensus"],
6927
- "protocols": [
6928
- "HMP v5.0",
6929
- "HMP v4.1",
6930
- "OpenCog Hyperon v0.6"
6931
- ]
6932
- }
6933
- }
6934
- ```
6935
-
6936
- The `protocols` field is informational and non-binding.
6937
- It does not imply full compliance with all listed specifications,
6938
- but signals compatibility, partial support, or bridge capabilities.
6939
-
6940
- Nodes may use this information for:
6941
-
6942
- * protocol negotiation;
6943
- * compatibility checks;
6944
- * routing decisions;
6945
- * selection of translators or bridge agents.
6946
-
6947
- This extension is optional and not required for HMP v5.0 compliance.
6948
-
6949
- ##### Relation to Other `peer_announce` Extensions
6950
-
6951
- Several optional and descriptive extensions of `peer_announce` already explore directions related to competence, profile, and interoperability signaling, including:
6952
-
6953
- * declaration of supported internal formalisms and languages (`protocols`, see 12.8);
6954
- * declaration of external or meta-protocol identities (`other_protocols`, see 12.11);
6955
- * advertisement of external cognitive resources and container storage (`external`, see 12.12).
6956
-
6957
- These extensions are intentionally:
6958
-
6959
- * non-normative;
6960
- * loosely structured;
6961
- * declarative rather than prescriptive.
6962
-
6963
- They can be viewed as **early, experimental building blocks** toward future competence and profile containers, allowing real-world experimentation without freezing semantics prematurely.
6964
 
6965
  ---
6966
 
@@ -7116,196 +7310,13 @@ but does not interfere with how agents think, reason, or interpret received info
7116
 
7117
  ### 14.11 External Protocol Identifiers (`peer_announce.other_protocols`)
7118
 
7119
- This section proposes an optional extension to `peer_announce` that allows an agent to declare identifiers, roles, or capabilities associated with **external or meta-protocols**, without imposing any normative behavior on HMP nodes.
7120
-
7121
- The goal of this extension is to:
7122
-
7123
- * improve interoperability with other agent ecosystems (ANP, Agora, A2A, MCP, etc.);
7124
- * enable protocol negotiation or delegation at higher layers;
7125
- * allow agents to expose **multiple identities** across different protocol domains.
7126
-
7127
- This information is **purely declarative** and MAY be ignored by peers.
7128
-
7129
- #### Example
7130
-
7131
- ```json
7132
- {
7133
- "head": { "class": "peer_announce" },
7134
- "payload": {
7135
- "other_protocols": {
7136
- "ANP": {
7137
- "name": "Agent Network Protocol",
7138
- "source": "https://github.com/agent-network-protocol/AgentNetworkProtocol",
7139
- "agent_did": "did:anp:xyz123",
7140
- "public_key": "base64:ABCDEF...",
7141
- "roles": ["router", "translator"]
7142
- },
7143
- "Agora": {
7144
- "name": "Agora Protocol",
7145
- "roles": ["negotiator"],
7146
- "capabilities": ["protocol-selection", "schema-adaptation"]
7147
- }
7148
- }
7149
- }
7150
- }
7151
- ```
7152
-
7153
- Notes:
7154
-
7155
- * No validation or handshake is required by HMP.
7156
- * Roles and capabilities are advisory.
7157
- * This extension complements existing `protocols`, `roles` and `capabilities` fields.
7158
 
7159
  ---
7160
 
7161
  ### 14.12 External Resources and External Container Storage (`peer_announce.external`)
7162
 
7163
- This section proposes an optional mechanism for advertising **external cognitive resources**, including external container storage, mirrors, or rarely changing artifacts.
7164
-
7165
- The goal is to:
7166
- - reduce unnecessary container transmission above the protocol;
7167
- - allow static or large data to be accessed via standard transports (HTTP, FTP, magnet links, etc.);
7168
- - support redundancy, mirroring, and trust-aware discovery;
7169
- - the presence of an external resource reference does **not** imply availability, reachability, or trust.
7170
-
7171
- Use of external resources is **explicitly non-mandatory**.
7172
- Agents MAY choose to ignore these references entirely.
7173
-
7174
- #### Example
7175
- ```json
7176
- {
7177
- "head": { "class": "peer_announce" },
7178
- "payload": {
7179
- "external": {
7180
- "https, main": {
7181
- "source": "https://example.org/",
7182
- "folders": {
7183
- "hmp/main": {
7184
- "hmp_container": true,
7185
- "title": "container_index and semantic_index",
7186
- "index": "index.json",
7187
- "types": ["json"]
7188
- },
7189
- "hmp/meta": {
7190
- "hmp_container": true,
7191
- "title": "Abstraction and axis containers",
7192
- "index": "index.json",
7193
- "types": ["json"]
7194
- },
7195
- "hmp/peer_announces": {
7196
- "hmp_container": true,
7197
- "title": "List of known HMP nodes",
7198
- "index": "index.json",
7199
- "types": ["json"]
7200
- },
7201
- "hmp/trust": {
7202
- "hmp_container": true,
7203
- "title": "Reputation containers",
7204
- "index": "index.json",
7205
- "types": ["json"]
7206
- },
7207
- "hmp/semantic": {
7208
- "hmp_container": true,
7209
- "title": "Semantic nodes and links",
7210
- "index": "index.json",
7211
- "types": ["json"]
7212
- },
7213
- ".well-known": {
7214
- "hmp_container": false,
7215
- "title": "Public agent descriptors (ANP, A2A, Agora, etc.)",
7216
- "index": "index.json",
7217
- "types": ["json"]
7218
- }
7219
- }
7220
- },
7221
- "ftp, work": {
7222
- "source": "ftp://example.org/",
7223
- "folders": {
7224
- "task": {
7225
- "hmp_container": true,
7226
- "title": "Current goals and tasks",
7227
- "types": ["json"]
7228
- },
7229
- "books/tech": {
7230
- "hmp_container": false,
7231
- "title": "Technical literature",
7232
- "types": ["txt", "md", "pdf"]
7233
- }
7234
- }
7235
- },
7236
- "magnet, archive": {
7237
- "source": "magnet:?xt=urn:btih:...",
7238
- "description": "Archived materials (legacy data)"
7239
- }
7240
- }
7241
- }
7242
- }
7243
- ```
7244
-
7245
- Notes:
7246
- - External resources may contain HMP containers or arbitrary files.
7247
- - Authentication mechanisms are out of scope.
7248
- - Trust, availability, and freshness are advisory hints only.
7249
- - Implementations MAY use folder-level metadata (such as `hmp_container`) as a hint for indexing, caching, or deferred retrieval policies.
7250
- - Keys such as `"https, main"` are illustrative, human-readable labels only; no naming scheme or key format is mandated by this specification.
7251
- - The effective resource path is constructed by combining the `"source"` URI with the corresponding folder path. If an `"index"` field is present, it is interpreted as a relative path within that folder.
7252
- - The `peer_announces` folder MAY contain cached or mirrored `peer_announce` containers of other agents, obtained via direct exchange, gossip, or trusted sources.
7253
-
7254
- #### Index Files (Optional)
7255
-
7256
- A folder entry in `peer_announce.external` MAY include an optional `"index"` field, which specifies a relative path to an index file located within that folder (e.g. `"index": "index.json"`).
7257
-
7258
- If present, the index file MAY be used by clients to:
7259
- - discover files available in the folder;
7260
- - obtain descriptive metadata (titles, timestamps, hashes);
7261
- - selectively fetch or verify external resources.
7262
-
7263
- The structure and semantics of the index file are **not rigidly defined by HMP** and are provided as a **recommended, non-normative convention**.
7264
- Implementations are free to use alternative formats or schemas.
7265
-
7266
- **Example 1** (HMP container index)
7267
- ```json
7268
- {
7269
- "path": "https://example.org/hmp/main",
7270
- "title": "container_index and semantic_index",
7271
- "files": {
7272
- "container_index.json": {
7273
- "description": "container_index from 2026-01-25 21:49",
7274
- "timestamp": "2026-01-25T21:49:00Z",
7275
- "hmp_container_class": "container_index",
7276
- "mime-type": "application/ld+json",
7277
- "hash": "sha256:abc123..."
7278
- },
7279
- "semantic_index.json": {
7280
- "description": "semantic_index from 2026-01-25 21:49",
7281
- "timestamp": "2026-01-25T21:49:00Z",
7282
- "hmp_container_class": "semantic_index",
7283
- "mime-type": "application/ld+json",
7284
- "hash": "sha256:abc123..."
7285
- }
7286
- }
7287
- }
7288
- ```
7289
-
7290
- **Example 2** (Documentation / static files)
7291
- ```json
7292
- {
7293
- "path": "https://github.com/kagvi13/HMP/blob/main/docs/",
7294
- "title": "HMP 5.0 Specification Documents",
7295
- "files": {
7296
- "Grok_HMP&ANP.md": {
7297
- "description": "Grok (xAI): comparative analysis of HMP and ANP (January 2026)",
7298
- "timestamp": "2026-01-22T08:46:00Z",
7299
- "mime-type": "text/markdown",
7300
- "hash": "sha256:abc123..."
7301
- }
7302
- }
7303
- }
7304
- ```
7305
-
7306
- Updating an index file does **not** require reissuing `peer_announce`.
7307
- All fields in the index file are optional.
7308
- Clients MAY ignore the index entirely and interact with the external resource directly.
7309
 
7310
  ---
7311
 
 
6605
 
6606
  ---
6607
 
6608
+ ### 12.5 Competence and Profile Containers
6609
+
6610
+ HMP allows optional extensions of `peer_announce` that provide structured and semantically rich descriptions of agent capabilities, competences, and supported protocols.
6611
+
6612
+ Such extensions improve discoverability, routing, interoperability, and long-term evolution of the mesh.
6613
+
6614
+ #### 12.5.1 Protocol Awareness and Interoperability
6615
+
6616
+ An important optional extension is the ability for agents to explicitly advertise the protocol versions and external cognitive frameworks they support.
6617
+
6618
+ This allows:
6619
+
6620
+ * graceful evolution of the HMP protocol;
6621
+ * coexistence of multiple HMP versions in the same mesh;
6622
+ * emergence of bridge agents capable of translating between protocols;
6623
+ * interoperability with external reasoning ecosystems.
6624
+
6625
+ A future extension of `peer_announce` may include a `protocols` field:
6626
+
6627
+ ```json
6628
+ {
6629
+ "head": {
6630
+ "class": "peer_announce"
6631
+ },
6632
+ "payload": {
6633
+ "capabilities": ["store-forward", "vote", "consensus"],
6634
+ "protocols": [
6635
+ "HMP v5.0",
6636
+ "HMP v4.1",
6637
+ "OpenCog Hyperon v0.6"
6638
+ ]
6639
+ }
6640
+ }
6641
+ ```
6642
+
6643
+ The `protocols` field is informational and non-binding.
6644
+ It does not imply full compliance with all listed specifications,
6645
+ but signals compatibility, partial support, or bridge capabilities.
6646
+
6647
+ Nodes may use this information for:
6648
+
6649
+ * protocol negotiation;
6650
+ * compatibility checks;
6651
+ * routing decisions;
6652
+ * selection of translators or bridge agents.
6653
+
6654
+ This extension is optional and not required for HMP v5.0 compliance.
6655
+
6656
+ ---
6657
+
6658
+ #### 12.5.2 External Protocol Identifiers (`peer_announce.other_protocols`)
6659
+
6660
+ This section defines a recommended extension to `peer_announce` that allows an agent to advertise identifiers, roles, or capabilities associated with **external or meta-protocols**, without imposing normative behavior on HMP nodes.
6661
+
6662
+ The extension is intended to:
6663
+
6664
+ * improve interoperability with other agent ecosystems (ANP, Agora, A2A, MCP, etc.);
6665
+ * support protocol negotiation or delegation at higher layers;
6666
+ * allow agents to expose **multiple identities** across different protocol domains.
6667
+
6668
+ All information provided by this extension is **purely declarative**.
6669
+ Peers MAY use it for discovery or routing decisions, but MUST NOT assume full compliance with the referenced protocols.
6670
+
6671
+ ##### Example
6672
+
6673
+ ```json
6674
+ {
6675
+ "head": { "class": "peer_announce" },
6676
+ "payload": {
6677
+ "other_protocols": {
6678
+ "ANP": {
6679
+ "name": "Agent Network Protocol",
6680
+ "source": "https://github.com/agent-network-protocol/AgentNetworkProtocol",
6681
+ "agent_did": "did:anp:xyz123",
6682
+ "public_key": "base64:ABCDEF...",
6683
+ "roles": ["router", "translator"]
6684
+ },
6685
+ "Agora": {
6686
+ "name": "Agora Protocol",
6687
+ "roles": ["negotiator"],
6688
+ "capabilities": ["protocol-selection", "schema-adaptation"]
6689
+ }
6690
+ }
6691
+ }
6692
+ }
6693
+ ```
6694
+
6695
+ Notes:
6696
+
6697
+ * No validation or handshake is required by HMP.
6698
+ * Roles and capabilities are advisory.
6699
+ * This extension complements existing `protocols`, `roles` and `capabilities` fields.
6700
+
6701
+ ---
6702
+
6703
+ #### 12.5.3 External Resources and External Container Storage (`peer_announce.external`)
6704
+
6705
+ This section defines a recommended mechanism for advertising **external cognitive resources**, including container storage, mirrors, or rarely changing artifacts.
6706
+
6707
+ The mechanism is intended to:
6708
+
6709
+ - reduce unnecessary container transmission above the protocol;
6710
+ - allow static or large data to be accessed via standard transports (HTTP, FTP, magnet links, etc.);
6711
+ - support redundancy, mirroring, and trust-aware discovery.
6712
+
6713
+ The presence of an external resource reference does **not** imply availability, reachability, authenticity, or trust.
6714
+
6715
+ Use of this mechanism is optional.
6716
+ Agents MAY ignore external references entirely without affecting protocol compliance.
6717
+
6718
+ ##### Example
6719
+ ```json
6720
+ {
6721
+ "head": { "class": "peer_announce" },
6722
+ "payload": {
6723
+ "external": {
6724
+ "https, main": {
6725
+ "source": "https://example.org/",
6726
+ "folders": {
6727
+ "hmp/main": {
6728
+ "hmp_container": true,
6729
+ "title": "container_index and semantic_index",
6730
+ "index": "index.json",
6731
+ "types": ["json"]
6732
+ },
6733
+ "hmp/meta": {
6734
+ "hmp_container": true,
6735
+ "title": "Abstraction and axis containers",
6736
+ "index": "index.json",
6737
+ "types": ["json"]
6738
+ },
6739
+ "hmp/peer_announces": {
6740
+ "hmp_container": true,
6741
+ "title": "List of known HMP nodes",
6742
+ "index": "index.json",
6743
+ "types": ["json"]
6744
+ },
6745
+ "hmp/trust": {
6746
+ "hmp_container": true,
6747
+ "title": "Reputation containers",
6748
+ "index": "index.json",
6749
+ "types": ["json"]
6750
+ },
6751
+ "hmp/semantic": {
6752
+ "hmp_container": true,
6753
+ "title": "Semantic nodes and links",
6754
+ "index": "index.json",
6755
+ "types": ["json"]
6756
+ },
6757
+ ".well-known": {
6758
+ "hmp_container": false,
6759
+ "title": "Public agent descriptors (ANP, A2A, Agora, etc.)",
6760
+ "index": "index.json",
6761
+ "types": ["json"]
6762
+ }
6763
+ }
6764
+ },
6765
+ "ftp, work": {
6766
+ "source": "ftp://example.org/",
6767
+ "folders": {
6768
+ "task": {
6769
+ "hmp_container": true,
6770
+ "title": "Current goals and tasks",
6771
+ "types": ["json"]
6772
+ },
6773
+ "books/tech": {
6774
+ "hmp_container": false,
6775
+ "title": "Technical literature",
6776
+ "types": ["txt", "md", "pdf"]
6777
+ }
6778
+ }
6779
+ },
6780
+ "magnet, archive": {
6781
+ "source": "magnet:?xt=urn:btih:...",
6782
+ "description": "Archived materials (legacy data)"
6783
+ }
6784
+ }
6785
+ }
6786
+ }
6787
+ ```
6788
+
6789
+ Notes:
6790
+ - External resources may contain HMP containers or arbitrary files.
6791
+ - Authentication mechanisms are out of scope.
6792
+ - Trust, availability, and freshness are advisory hints only.
6793
+ - Implementations MAY use folder-level metadata (such as `hmp_container`) as a hint for indexing, caching, or deferred retrieval policies.
6794
+ - Keys such as `"https, main"` are illustrative, human-readable labels only; no naming scheme or key format is mandated by this specification.
6795
+ - The effective resource path is constructed by combining the `"source"` URI with the corresponding folder path. If an `"index"` field is present, it is interpreted as a relative path within that folder.
6796
+ - The `peer_announces` folder MAY contain cached or mirrored `peer_announce` containers of other agents, obtained via direct exchange, gossip, or trusted sources.
6797
+
6798
+ ##### Index Files (Optional)
6799
+
6800
+ A folder entry in `peer_announce.external` MAY include an optional `"index"` field, which specifies a relative path to an index file located within that folder (e.g. `"index": "index.json"`).
6801
+
6802
+ If present, the index file MAY be used by clients to:
6803
+ - discover files available in the folder;
6804
+ - obtain descriptive metadata (titles, timestamps, hashes);
6805
+ - selectively fetch or verify external resources.
6806
+
6807
+ The structure and semantics of the index file are **not rigidly defined by HMP** and are provided as a **recommended, non-normative convention**.
6808
+ Implementations are free to use alternative formats or schemas.
6809
+
6810
+ **Example 1** (HMP container index)
6811
+ ```json
6812
+ {
6813
+ "path": "https://example.org/hmp/main",
6814
+ "title": "container_index and semantic_index",
6815
+ "files": {
6816
+ "container_index.json": {
6817
+ "description": "container_index from 2026-01-25 21:49",
6818
+ "timestamp": "2026-01-25T21:49:00Z",
6819
+ "hmp_container_class": "container_index",
6820
+ "mime-type": "application/ld+json",
6821
+ "hash": "sha256:abc123..."
6822
+ },
6823
+ "semantic_index.json": {
6824
+ "description": "semantic_index from 2026-01-25 21:49",
6825
+ "timestamp": "2026-01-25T21:49:00Z",
6826
+ "hmp_container_class": "semantic_index",
6827
+ "mime-type": "application/ld+json",
6828
+ "hash": "sha256:abc123..."
6829
+ }
6830
+ }
6831
+ }
6832
+ ```
6833
+
6834
+ **Example 2** (Documentation / static files)
6835
+ ```json
6836
+ {
6837
+ "path": "https://github.com/kagvi13/HMP/blob/main/docs/",
6838
+ "title": "HMP 5.0 Specification Documents",
6839
+ "files": {
6840
+ "Grok_HMP&ANP.md": {
6841
+ "description": "Grok (xAI): comparative analysis of HMP and ANP (January 2026)",
6842
+ "timestamp": "2026-01-22T08:46:00Z",
6843
+ "mime-type": "text/markdown",
6844
+ "hash": "sha256:abc123..."
6845
+ }
6846
+ }
6847
+ }
6848
+ ```
6849
+
6850
+ Updating an index file does **not** require reissuing `peer_announce`.
6851
+ All fields in the index file are optional.
6852
+ Clients MAY ignore the index entirely and interact with the external resource directly.
6853
+
6854
+ ---
6855
+
6856
  ## 13. Experimental Extensions
6857
 
6858
  Experimental Extensions describe mechanisms that are intentionally exposed for exploration, prototyping, and architectural discovery.
6859
 
6860
+ Experimental features are not required for protocol compliance and MAY be ignored by implementations.
6861
+
6862
  They may evolve rapidly, change structure, or be removed entirely based on implementation feedback.
6863
 
6864
  Agents implementing Experimental Extensions SHOULD assume:
 
6869
 
6870
  Agents MUST safely ignore unsupported experimental features and MUST NOT assume their presence in peer environments.
6871
 
6872
+ Experimental Extensions MUST NOT redefine or violate core protocol semantics.
6873
 
6874
  This section exists to encourage innovation without prematurely constraining the design space of HMP.
6875
 
 
6877
 
6878
  ---
6879
 
6880
+ ### 13.1 Key Rotation and Recovery
6881
+
6882
+ This section describes experimental extensions to `peer_announce` for key rotation and recovery.
6883
+
6884
+ ```json
6885
+ "recovery_keys": [...],
6886
+ "key_history": [...],
6887
+ "key_rotation_policy": "3-of-5"
6888
+ ```
6889
+
6890
+ One possible key management model:
6891
+
6892
+ * rotating the **primary** key requires signatures from **all** recovery keys
6893
+ (or an N-of-M policy);
6894
+
6895
+ * rotating a **recovery key** requires
6896
+
6897
+ * a signature from the primary key, **or**
6898
+ * a majority of recovery keys.
6899
+
6900
+ This model aims to reduce the risk of:
6901
+
6902
+ * DID hijacking;
6903
+ * irreversible loss of access.
6904
+
6905
+ The semantics and security properties of these mechanisms remain subject to further experimentation.
6906
+
6907
+ Key invalidation is part of the core HMP protocol (see Section 4.1) and is defined using:
6908
+
6909
+ ```json
6910
+ "key_is_falsified": true
6911
+ ```
6912
+
6913
+ This mechanism remains compatible with proposed extensions.
6914
+
6915
+ ---
6916
+
6917
  ## 14. Research Directions
6918
 
6919
  This section outlines optional modules and evolutionary directions that align with the architecture of HMP v5.0 but are **not part of the core specification**.
 
7071
 
7072
  #### 14.3.2 Key Rotation and Recovery
7073
 
7074
+ *Moved to Section 13 (Experimental Extensions).*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7075
 
7076
  ---
7077
 
 
7154
 
7155
  #### 14.6.4 Competence and Profile Containers
7156
 
7157
+ *Moved to Section 12 (Recommended Extensions).*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7158
 
7159
  ---
7160
 
 
7310
 
7311
  ### 14.11 External Protocol Identifiers (`peer_announce.other_protocols`)
7312
 
7313
+ *Moved to Section 12 (Recommended Extensions).*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7314
 
7315
  ---
7316
 
7317
  ### 14.12 External Resources and External Container Storage (`peer_announce.external`)
7318
 
7319
+ *Moved to Section 12 (Recommended Extensions).*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7320
 
7321
  ---
7322