Core System Architecture Part 150 — Anonymous Network Extension Developer Relations, Publisher Support, Documentation Governance, Compatibility Communication, Migration Guidance, Ecosystem Education & Privacy-Preserving Developer Success Architecture

SIAR — Secure, Local-First, Multi-Transport Communication Platform

Series: Core System Architecture
Part: 150
Status: Architecture specification
Primary language: Rust
Builds on: Core System Architecture Parts 65, 122–132, 147–149

Primary purpose: define SIAR's developer-relations and publisher-support architecture for documentation governance, compatibility communication, migration guidance, support workflows, developer education, reference implementations, change announcements, feedback intake, AI-assisted support, and privacy-preserving developer-success operations.


1. Purpose

A mature extension ecosystem needs more than APIs and package distribution.

Publishers and developers need:

clear documentation
migration guidance
compatibility information
support
examples
release communication
education

Without governance, developer-relations systems can become:

outdated docs
contradictory support answers
hidden partner favoritism
undocumented breaking changes
support escalation by revenue
developer surveillance

The governing principle is:

SIAR developer relations must make platform behavior understandable, predictable, versioned, and supportable while keeping support access fair, documentation authoritative, and developer telemetry privacy-minimized.


2. Architectural Position

                 PLATFORM CHANGES
                        │
                        ▼
                 DOCS / COMPAT DATA
                        │
             ┌──────────┼──────────┐
             │          │          │
          PORTAL      SUPPORT    EDUCATION
             │          │          │
             └──────────┼──────────┘
                        ▼
                 PUBLISHER ACTION
                        │
                        ▼
                MIGRATE / FIX / SHIP

3. Core Separation

Keep distinct:

documentation
support
governance decision
certification
commercial account
developer telemetry
marketplace ranking

4. Non-Goals

Part 150 does not create:

pay-to-support priority that changes security rules
undocumented partner APIs
private compatibility truth
developer productivity surveillance
support access to user content by default

5. Developer Identity

#![allow(unused)]
fn main() {
pub struct DeveloperAccountId(pub [u8; 16]);
}

6. Publisher Identity

Publisher identity remains distinct from developer account.


7. Hard Rule

Developer account activity does not become extension trust score.


8. Support Identity

#![allow(unused)]
fn main() {
pub struct DeveloperSupportCaseId(pub [u8; 16]);
}

9. Support Case Type

#![allow(unused)]
fn main() {
pub enum DeveloperSupportCaseType {
    Documentation,
    SdkIntegration,
    Compatibility,
    Certification,
    Marketplace,
    BillingLicensing,
    IncidentFollowup,
    Migration,
}
}

10. Hard Rule

Support case class explicit.


11. Support Priority

Based on:

security severity
service impact
release blocker
contracted support tier

12. Hard Rule

Commercial tier may affect response-time SLA but cannot alter security/privacy/governance outcome.


13. Support State

#![allow(unused)]
fn main() {
pub enum DeveloperSupportCaseState {
    Open,
    Triage,
    WaitingForDeveloper,
    Investigating,
    Resolved,
    Closed,
}
}

14. Documentation Authority

Documentation must have source-of-truth ownership.


15. Documentation Source

#![allow(unused)]
fn main() {
pub enum DeveloperDocumentationSource {
    ApiSchema,
    ProtocolRegistry,
    PolicyRegistry,
    HandwrittenGuide,
    GeneratedReference,
}
}

16. Hard Rule

Generated reference is tied to exact schema/version.


17. Docs-as-Code

Recommended structure:

docs/
├── concepts/
├── guides/
├── api/
├── migration/
├── compatibility/
├── examples/
└── troubleshooting/

18. Hard Rule

Documentation changes reviewed like code.


19. Documentation Version

#![allow(unused)]
fn main() {
pub struct DocumentationVersion(pub u32);
}

20. Hard Rule

Docs identify applicable host/SDK/protocol versions.


21. No Floating Documentation

Hard rule.


22. Documentation Metadata

#![allow(unused)]
fn main() {
pub struct DocumentationPageMetadata {
    pub version: DocumentationVersion,
    pub applies_to: VersionRange<Version>,
    pub last_verified_at: Timestamp,
}
}

23. Hard Rule

Stale/unverified docs visibly marked.


24. API Reference

Generated from stable IDL/schema.


25. Hard Rule

Code snippets compile in CI.


26. Example Projects

Reference apps are first-class.


27. Hard Rule

Examples use current security/privacy best practices.


28. No Legacy Unsafe Copy-Paste

Hard rule.


29. Example Certification

Examples tested against supported SDK.


30. Hard Rule

Broken example blocks documentation release where critical.


31. Migration Guide

#![allow(unused)]
fn main() {
pub struct ExtensionMigrationGuide {
    pub from: VersionRange<SdkVersion>,
    pub to: SdkVersion,
    pub breaking_changes: Vec<MigrationChange>,
}
}

32. Migration Change

#![allow(unused)]
fn main() {
pub struct MigrationChange {
    pub area: MigrationArea,
    pub required_action: String,
}
}

33. Migration Area

#![allow(unused)]
fn main() {
pub enum MigrationArea {
    Api,
    Protocol,
    Permission,
    DataSchema,
    Ui,
    BackgroundJobs,
    Packaging,
    Commerce,
    Licensing,
}
}

34. Hard Rule

Breaking changes have explicit remediation.


35. Compatibility Communication

Part 129 registry is source of truth.


36. Hard Rule

Marketing/support copy cannot contradict compatibility registry.


37. Compatibility Notice

#![allow(unused)]
fn main() {
pub struct CompatibilityNotice {
    pub extension_sdk: VersionRange<SdkVersion>,
    pub host: VersionRange<Version>,
    pub status: CompatibilityState,
}
}

38. Hard Rule

Unknown remains Unknown.


39. Deprecation Communication

Part 128 lifecycle data drives notice.


40. Hard Rule

Deprecation has:

announcement
replacement path
migration guide
support window
sunset date

where applicable.


41. No Surprise Breaking Change

Hard rule.


42. Change Announcement

#![allow(unused)]
fn main() {
pub enum DeveloperChangeClass {
    Informational,
    Additive,
    Deprecating,
    Breaking,
    SecurityCritical,
}
}

43. Hard Rule

Security-critical change can shorten notice but must still document required action.


44. Release Notes

Versioned and machine-linkable.


45. Hard Rule

Release notes separate:

new features
bug fixes
security changes
breaking changes

46. Security Advisory

Publisher-facing advisory may include:

affected SDK
required migration
deadline
fixed version

47. Hard Rule

No user-specific exposure disclosure in developer bulletin.


48. Migration Readiness Check

Developer tool can evaluate project manifest.


49. Hard Rule

Tool reports compatibility facts, not opaque success score.


50. Developer Portal Integration

Part 131.


51. Hard Rule

Portal surfaces version-pinned documentation.


52. CLI Integration

Part 132.


53. Hard Rule

CLI can open exact docs for installed SDK version.


54. Offline Documentation

Signed documentation bundle.


55. Hard Rule

Offline docs carry version/freshness metadata.


56. Documentation Bundle

#![allow(unused)]
fn main() {
pub struct OfflineDeveloperDocsBundle {
    pub version: DocumentationVersion,
    pub compatibility_snapshot: Digest,
    pub docs_digest: Digest,
}
}

57. Support Workflow

developer submits case
→ classify
→ collect minimal diagnostics
→ reproduce
→ answer/fix/docs update
→ close

58. Hard Rule

Support asks for minimum necessary information.


59. Reproduction Bundle

Use synthetic or redacted data.


60. Hard Rule

No production user content by default.


61. Support Attachment

#![allow(unused)]
fn main() {
pub struct DeveloperSupportAttachment {
    pub class: SupportAttachmentClass,
    pub digest: Digest,
}
}

62. Attachment Class

#![allow(unused)]
fn main() {
pub enum SupportAttachmentClass {
    Manifest,
    Lockfile,
    BuildLog,
    CrashSummary,
    MinimalReproducer,
    RedactedDiagnosticBundle,
}
}

63. Hard Rule

Secrets stripped before upload.


64. Support Redaction

Automatic preflight scanner + schema constraints.


65. Hard Rule

Scanner is supplemental; structured data remains primary defense.


66. Support Access

Support staff role-scoped.


67. Hard Rule

Support role does not imply production/user-data access.


68. Escalation

#![allow(unused)]
fn main() {
pub enum DeveloperSupportEscalation {
    SdkEngineering,
    Security,
    Privacy,
    MarketplaceGovernance,
    BillingLicensing,
}
}

69. Hard Rule

Escalation routes case, not authority expansion.


70. Contracted Support

Enterprise publishers may receive faster response.


71. Hard Rule

Same platform/security rules apply.


72. No Hidden API Access

Hard rule.


73. Partner Programs

If introduced, benefits may include:

training
early documentation
sandbox quota
support SLA

74. Hard Rule

Partner status cannot bypass review/certification/security.


75. Early Access

May expose preview SDK.


76. Hard Rule

Preview marked non-GA and compatibility expectations explicit.


77. Preview Feedback

Structured.


78. Hard Rule

No silent telemetry required.


79. Developer Education

Provide progressive learning paths.


80. Learning Path

#![allow(unused)]
fn main() {
pub enum DeveloperLearningLevel {
    Beginner,
    Intermediate,
    Advanced,
    SecuritySensitive,
}
}

81. Hard Rule

Learning level not used to rank publisher quality.


82. Education Modules

Examples:

extension basics
capability model
data governance
background jobs
UI integration
updates
testing
commerce/licensing

83. Hard Rule

Security/privacy training mandatory for high-risk capability publishers where policy requires.


84. Tutorial Project

Should demonstrate:

least authority
bounded IPC
local-first storage
privacy-safe telemetry
update-safe state

85. Hard Rule

Tutorials do not normalize shortcuts that production policy forbids.


86. Workshops / Office Hours

Optional.


87. Hard Rule

Attendance is not trust/certification evidence.


88. Certification Training

Explains process, but does not guarantee outcome.


89. Hard Rule

No “pay for training, get certified” coupling.


90. Knowledge Base

Versioned Q&A.


91. KB Article

#![allow(unused)]
fn main() {
pub struct DeveloperKnowledgeArticle {
    pub article_id: DeveloperKnowledgeArticleId,
    pub applies_to: VersionRange<SdkVersion>,
    pub provenance: DocumentationProvenance,
}
}

92. Hard Rule

KB answers link to authoritative source.


93. AI-Assisted Support

Permitted for:

documentation search
error explanation
migration suggestion
example generation

94. Hard Rule

AI answer identifies source/version when material.


95. AI Limits

AI cannot:

invent undocumented API
override policy
approve certification
decide governance appeal

96. Hard Rule

AI-generated code treated as untrusted until compiled/tested.


97. Support AI Data

Developer-submitted data may be used in case context under policy.


98. Hard Rule

No private production user data should be sent to support AI by default.


99. Developer Feedback

Structured channels:

docs feedback
SDK feature request
compatibility issue
bug report
policy clarification

100. Feedback Identity

#![allow(unused)]
fn main() {
pub struct DeveloperFeedbackId(pub [u8; 16]);
}

101. Hard Rule

Feedback does not become developer reputation score.


102. Feature Request

Can be public/private.


103. Hard Rule

Votes/popularity do not override security/privacy architecture.


104. Roadmap Communication

Can publish:

planned
in progress
preview
GA
deferred

105. Hard Rule

Roadmap is not contractual guarantee unless explicitly stated.


106. Compatibility Calendar

Useful for upcoming changes.


107. Hard Rule

Calendar uses versioned lifecycle data.


108. Breaking Change Budget

Platform governance may limit frequent breaking changes.


109. Hard Rule

No arbitrary KPI score; use concrete change counts/windows.


110. Migration Window

Defined by lifecycle policy.


111. Hard Rule

High-risk security deprecation can shorten window.


112. Developer Notification Preferences

#![allow(unused)]
fn main() {
pub struct DeveloperCommunicationPreferences {
    pub security: bool,
    pub compatibility: bool,
    pub deprecation: bool,
    pub product_news: bool,
}
}

113. Hard Rule

Security-critical notices may bypass marketing opt-out when contract/platform policy requires, but remain narrowly scoped.


114. Marketing Separation

Product marketing is separate from operational communication.


115. Hard Rule

Support/compatibility channel cannot be used as hidden marketing channel.


116. Communication Channel

#![allow(unused)]
fn main() {
pub enum DeveloperCommunicationChannel {
    PortalInbox,
    Email,
    CliNotice,
    RssAtom,
    Webhook,
}
}

117. Hard Rule

Webhook payload contains minimal developer-project metadata.


118. Security Bulletin Channel

Dedicated.


119. Hard Rule

Publisher can verify authenticity/signature.


120. Communication Signing

High-impact notices signed.


121. Hard Rule

Developer tooling can verify notice authenticity.


122. Publisher Migration Status

Portal may show:

affected
action required
deadline
resolved

123. Hard Rule

No public ranking/shaming.


124. Developer Success Metrics

Allowed aggregate metrics:

docs search failure
SDK error frequency
migration-blocker class
support case category

125. Hard Rule

No developer productivity score.


126. Forbidden Success Metrics

hours coding
commit counts
time in IDE
support “difficulty” score by person

127. Hard Rule

Developer-relations telemetry is ecosystem friction data, not workforce analytics.


128. Documentation Analytics

Aggregate:

page view count
search no-result rate
outdated-page exits

129. Hard Rule

No cross-site/user behavioral profiling.


130. Privacy-Safe Search Analytics

Hash/cluster queries only where safe or keep local aggregation.


131. Hard Rule

Never retain secrets pasted into docs search.


132. Error Catalog

Stable error codes.


133. Hard Rule

Every public SDK error should map to versioned docs where feasible.


134. Error Documentation

#![allow(unused)]
fn main() {
pub struct DeveloperErrorDoc {
    pub code: StableErrorCode,
    pub meaning: String,
    pub remediation: Vec<String>,
    pub versions: VersionRange<SdkVersion>,
}
}

135. Hard Rule

Error message avoids leaking private system internals.


136. Migration Tooling

CLI can:

scan manifest
detect deprecated API
suggest replacement
generate report

137. Hard Rule

Automatic code rewrite is opt-in and reviewable.


138. No Blind Rewrite

Hard rule.


139. Migration Report

#![allow(unused)]
fn main() {
pub struct ExtensionMigrationAssessment {
    pub findings: Vec<MigrationFinding>,
}
}

140. Finding Severity

#![allow(unused)]
fn main() {
pub enum MigrationFindingSeverity {
    Info,
    Required,
    Blocking,
}
}

141. Hard Rule

Severity based on compatibility facts.


142. Reference Architecture

Publish canonical examples for:

simple extension
background extension
UI extension
network extension
enterprise extension
paid extension

143. Hard Rule

Reference architecture updated with platform invariants.


144. Architecture Decision Records

Public ADRs for ecosystem-relevant changes.


145. Hard Rule

ADR explains rationale/tradeoffs and affected versions.


146. RFC Process

Major extension-platform changes use RFC.


147. RFC Identity

#![allow(unused)]
fn main() {
pub struct DeveloperPlatformRfcId(pub u32);
}

148. RFC State

#![allow(unused)]
fn main() {
pub enum DeveloperPlatformRfcState {
    Draft,
    Discussion,
    Accepted,
    Rejected,
    Superseded,
}
}

149. Hard Rule

Discussion participation does not guarantee acceptance.


150. Public Feedback

Can inform decision.


151. Hard Rule

Final decision still follows architecture/security governance.


152. Breaking RFC

Requires migration plan.


153. Hard Rule

No accepted breaking RFC without compatibility/lifecycle analysis.


154. Documentation Governance

Need ownership.


155. Documentation Owner

#![allow(unused)]
fn main() {
pub struct DocumentationOwner {
    pub domain: DocumentationDomain,
    pub role: DocumentationOwnerRole,
}
}

156. Documentation Domain

#![allow(unused)]
fn main() {
pub enum DocumentationDomain {
    Sdk,
    Runtime,
    Permissions,
    DataGovernance,
    Ui,
    Background,
    Commerce,
    Licensing,
    Marketplace,
}
}

157. Hard Rule

Owner accountable for freshness, not individual performance scoring.


158. Docs Review

Technical + security/privacy where relevant.


159. Hard Rule

Permission/security docs changes require domain review.


160. Generated Documentation

Prefer source-linked generation.


161. Hard Rule

Generated docs preserve schema/version provenance.


162. Documentation Drift Detection

CI compares schema/API changes to docs coverage.


163. Hard Rule

Breaking API change without docs/migration entry blocks release where policy requires.


164. Compatibility Drift Detection

Registry vs portal docs automated checks.


165. Hard Rule

Portal cannot claim unsupported version.


166. Knowledge Expiry

Docs can have review-by date.


167. Hard Rule

Expired review does not delete docs; marks them needing verification.


168. Archived Docs

Available for old supported versions.


169. Hard Rule

Archived page clearly marked.


170. Search

Search results prioritize matching version.


171. Hard Rule

Do not show latest-version answer for old SDK without warning.


172. Developer Project Context

Portal can use current project SDK version to filter docs.


173. Hard Rule

Project context is explicit and not used for behavioral advertising.


174. Support Knowledge Reuse

Resolved cases may produce KB article.


175. Hard Rule

Sanitize publisher/project identifiers.


176. Incident Communication

Part 146.


177. Hard Rule

Developer relations relays only approved incident/publication info.


178. Security Embargo

Some fixes may be temporarily confidential.


179. Hard Rule

Embargo scope/time limited.


180. Vulnerability Disclosure Program

Provide clear security contact/process.


181. Hard Rule

Researcher handling separate from publisher commercial tier.


182. Publisher Security Contact

Required for high-risk publishers.


183. Hard Rule

Contact data used only for operational/security communication.


184. Privacy Contact

Optional/required for high-risk data processors.


185. Hard Rule

No contact list monetization.


186. Developer Support SLA

#![allow(unused)]
fn main() {
pub struct DeveloperSupportSla {
    pub case_type: DeveloperSupportCaseType,
    pub response_target: Duration,
}
}

187. Hard Rule

SLA target does not change substantive decision criteria.


188. Support Escalation SLO

Security incidents prioritized.


189. Hard Rule

No commercial queue-jumping that delays critical security cases.


190. Support Case Retention

Bounded.


191. Hard Rule

Resolved case attachments cleaned according to retention.


192. Developer Portal Data

Separate:

support cases
project metadata
docs preferences
communication preferences

193. Hard Rule

No merge with user messaging data.


194. Tenant Publisher Support

Enterprise publisher support scoped to tenant-owned projects.


195. Hard Rule

Support cannot access unrelated tenant data.


196. Private Registry Support

Can have separate docs/policy overlay.


197. Hard Rule

Private overlay cannot contradict hard platform security/privacy rules.


198. Localization

Docs and migration notices may be localized.


199. Hard Rule

Canonical source version retained.


200. Translation Drift

Track translation version.


201. Hard Rule

Critical security instructions need verified translation workflow where localized.


202. Accessibility

Developer portal/docs accessible.


203. Hard Rule

Docs navigation/examples support keyboard/screen reader.


204. API Stability Labels

#![allow(unused)]
fn main() {
pub enum ApiStability {
    Experimental,
    Preview,
    Stable,
    Deprecated,
}
}

205. Hard Rule

Stability label visible in docs/reference.


206. Preview API

Can break with reduced guarantees.


207. Hard Rule

Preview cannot be represented as stable.


208. Stable API

Subject to compatibility policy.


209. Hard Rule

Breaking stable API requires governed exception/lifecycle process.


210. Supportability Classification

#![allow(unused)]
fn main() {
pub enum DeveloperSupportability {
    Supported,
    BestEffort,
    Unsupported,
}
}

211. Hard Rule

Unsupported integration path clearly labeled.


212. No Shadow Support Contract

Hard rule.


213. Migration Assistance

May offer automated assessment, examples, office hours, support.


214. Hard Rule

Assistance does not waive extension developer's responsibility to test.


215. Certification Assistance

Support can explain failed checks.


216. Hard Rule

Support cannot mark failed certification as passed.


217. Governance Assistance

Support can explain policy text.


218. Hard Rule

Support cannot privately override marketplace decision.


219. Billing/Licensing Assistance

Support can resolve transaction/license mechanics.


220. Hard Rule

Commerce support cannot grant security capability.


221. Developer Relations Governance

Policies for support/docs/education are versioned.


222. Developer Relations Policy

#![allow(unused)]
fn main() {
pub struct DeveloperRelationsPolicy {
    pub docs_policy_version: u32,
    pub support_policy_version: u32,
    pub communication_policy_version: u32,
}
}

223. Hard Rule

No hidden policy by account.


224. Exceptions

Support SLA exceptions may exist.


225. Hard Rule

Exceptions cannot alter security/privacy/governance substance.


226. Audit

High-value events:

breaking-change publication
security bulletin
support privileged-access request
docs compatibility correction

227. Hard Rule

Audit does not record routine docs reading by developer.


228. Transparency

Publish:

SDK lifecycle
breaking changes
support scope
certification process
appeal links

229. Hard Rule

No vague hidden process.


230. Developer Relations Metrics

Safe aggregate:

support case volume by category
median response time
docs stale-page count
migration blocker classes

231. Forbidden:

developer ranking
publisher “difficulty” score
individual productivity
private code profiling

232. Hard Rule

Metrics improve ecosystem friction, not judge people.


233. Support API

#![allow(unused)]
fn main() {
pub trait DeveloperSupportService {
    fn create_case(
        &self,
        publisher: PublisherId,
        kind: DeveloperSupportCaseType,
    ) -> Result<DeveloperSupportCaseId, DeveloperRelationsError>;
}
}

234. Documentation Service

#![allow(unused)]
fn main() {
pub trait DeveloperDocumentationService {
    fn page_for(
        &self,
        topic: DocumentationTopic,
        sdk: SdkVersion,
    ) -> Result<DeveloperDocumentationPage, DeveloperRelationsError>;
}
}

235. Compatibility Communication Service

#![allow(unused)]
fn main() {
pub trait DeveloperCompatibilityNoticeService {
    fn notices(
        &self,
        project: DeveloperProjectId,
    ) -> Result<Vec<CompatibilityNotice>, DeveloperRelationsError>;
}
}

236. Migration Assessment Service

#![allow(unused)]
fn main() {
pub trait DeveloperMigrationService {
    fn assess(
        &self,
        manifest: DeveloperProjectManifest,
        target: SdkVersion,
    ) -> Result<ExtensionMigrationAssessment, DeveloperRelationsError>;
}
}

237. Error Taxonomy

#![allow(unused)]
fn main() {
pub enum DeveloperRelationsError {
    DocumentationUnavailable,
    VersionUnsupported,
    SupportCaseUnknown,
    AttachmentRejected,
    CompatibilityUnknown,
    MigrationBlocked,
    PolicyStale,
    Unauthorized,
    Internal,
}
}

238. Testing

Need developer-relations testkit.

Required scenarios:

versioned docs
breaking change
support case
migration guide
AI support
security bulletin

239. Docs Version Test

Old SDK query returns matching archived docs, not latest silently.


240. Breaking Change Test

Breaking API release blocked without migration doc.


241. Compatibility Test

Portal/docs cannot claim Supported where registry says Unknown.


242. Support Privacy Test

Redacted support bundle contains no secret/private payload.


243. Commercial Fairness Test

Paid support tier changes response SLA only, not policy outcome.


244. AI Test

AI cannot invent unavailable API or certify extension.


245. Incident Test

Security bulletin contains no user identity.


246. Analytics Test

Docs telemetry cannot produce developer-level productivity profile.


247. Fuzzing

Fuzz:

docs metadata
compatibility notices
migration reports
support attachment manifests

248. Property Tests

Properties:

documentation version can never claim compatibility outside authoritative registry
support tier can never bypass mandatory security/privacy review
developer telemetry can never include developer productivity fields
AI support output can never mutate certification/governance state

249. Formal Verification Targets

Strong candidates:

compatibility communication precedence
support escalation authority
docs lifecycle
breaking-change release gate

250. Kani Candidate

version/support-policy invariants.


251. TLA+ Candidate

platform change → docs/migration notice → publisher update → compatibility verification

252. Loom Candidate

Concurrent:

SDK release
docs publication
compatibility registry update
portal cache refresh

253. Performance

Docs/support are control-plane services.


254. Hard Rule

No docs/support lookup in runtime hot path.


255. Offline Cache

Docs bundle cached locally.


256. Hard Rule

Cache freshness visible.


257. Search Index

Version-aware.


258. Hard Rule

No private project code indexed without explicit action.


259. Storage Domains

Separate:

documentation
support cases
compatibility notices
migration guides
education content
developer preferences

260. Hard Rule

No user messaging/contact data.


261. Secrets

Support attachments and auth credentials stored separately/securely.


262. Hard Rule

No plaintext project secret in docs/support DB.


263. Partitioning

By:

publisher
project
SDK version
documentation domain
support case

264. Hard Rule

No developer-behavior analytics partition.


265. Crate Layout

Recommended:

crates/
├── siar-devrel-core/
├── siar-devrel-docs/
├── siar-devrel-support/
├── siar-devrel-compat/
├── siar-devrel-migration/
├── siar-devrel-education/
├── siar-devrel-communications/
├── siar-devrel-ai-assist/
├── siar-devrel-observability/
└── siar-devrel-testkit/

266. siar-devrel-core

Owns:

DeveloperSupportCaseId
DeveloperFeedbackId
DeveloperRelationsError

267. siar-devrel-docs

Versioned docs, generated refs, offline bundles, drift checks.


268. siar-devrel-support

Case lifecycle, attachments, escalation, SLA.


269. siar-devrel-compat

Authoritative compatibility notices.


270. siar-devrel-migration

Breaking-change analysis and migration assessments.


271. siar-devrel-education

Tutorials, reference architectures, learning paths.


272. siar-devrel-communications

Bulletins, lifecycle/deprecation notices, signed announcements.


273. siar-devrel-ai-assist

Source-grounded docs/support assistance.


274. siar-devrel-observability

Aggregate ecosystem-friction metrics only.


275. siar-devrel-testkit

docs/support/privacy/compatibility/AI tests.


276. Security, Privacy & Correctness Invariants

Mandatory:

1. Documentation, support, compatibility communication, certification, marketplace governance, commerce, licensing, developer education, developer telemetry, and runtime authority are distinct domains and cannot be used as hidden substitutes for one another.
2. Developer documentation is versioned, source-linked, compatibility-aware, and reviewed; generated API references bind exact schemas, examples compile/test in CI, and stale/archived docs are clearly marked rather than silently presented as current.
3. Compatibility status comes from the authoritative compatibility registry; portals, support agents, AI assistants, marketing content, and developer relations staff can never override Unknown/Unsupported state by assertion.
4. Breaking/deprecating changes include explicit release notes, migration guidance, replacement path, support window, and lifecycle metadata where applicable; emergency security changes may shorten notice but cannot omit required remediation instructions.
5. Support workflows collect only minimal technical data, use redacted/synthetic reproducers by default, never require production user content, and do not grant support personnel ambient access to user data, extension secrets, or runtime authority.
6. Commercial support tiers may alter response-time/service levels but can never change security/privacy requirements, certification outcomes, marketplace enforcement, compatibility truth, incident handling, or access to hidden privileged APIs.
7. Partner programs, office hours, training, preview access, and education improve developer capability but cannot substitute for qualification/certification, create pay-to-trust pathways, or grant unpublished production behavior.
8. AI-assisted developer support remains source/version grounded and advisory; it cannot invent undocumented APIs, mutate governance/certification state, waive policy, approve releases, or treat AI-generated code as trusted without compilation/testing.
9. Developer-relations telemetry measures ecosystem friction—stale docs, support categories, search failures, migration blockers—without developer productivity scoring, private code profiling, workforce analytics, user-level tracking, or cross-site behavioral advertising.
10. Support/compatibility/security communications are separated from marketing, critical notices are authenticatable, publisher preferences are respected except narrowly scoped mandatory operational/security communication, and notice delivery does not require behavioral tracking.
11. Knowledge-base reuse, support-case-derived documentation, analytics, and incident communications remove publisher/user-sensitive identifiers and never expose private tenant/user information beyond authorized support scope.
12. Developer relations integrates with SDKs, docs portals, CLI tooling, compatibility registry, lifecycle governance, updates, testing/certification, marketplace governance, incidents, commerce, licensing, and policy distribution without creating a side channel around SIAR's security, privacy, anonymity, local-first, or tenant-isolation guarantees.

277. Initial Production Scope

Implement first:

versioned docs-as-code
generated API references
version-aware docs search
CI-tested code examples
migration guides
deprecation/breaking-change notices
compatibility notices sourced from registry
offline signed docs bundle
developer support case lifecycle
minimal/redacted support attachments
support escalation
security bulletin channel
developer communication preferences
learning paths/reference architectures
SDK error catalog
CLI migration assessment
AI docs assistant with source/version grounding
docs drift detection
aggregate developer-relations metrics
devrel testkit

Then add:

public RFC workflow
advanced automated migration assistant
localized critical docs
compatibility calendar
structured publisher office-hours tooling
privacy-preserving docs-search analytics
formal docs/compatibility consistency proofs

278. Definition of Done

Part 150 is complete when:

  • docs are versioned and authoritative;
  • compatibility communication cannot contradict registry truth;
  • breaking changes include migration guidance;
  • examples compile/test;
  • support collects minimal/redacted data;
  • paid support cannot buy policy exceptions;
  • education/partner status cannot bypass certification;
  • AI support is source/version grounded and non-authoritative;
  • developer telemetry measures ecosystem friction, not productivity;
  • critical communication is separated from marketing;
  • offline docs and archived-version support exist;
  • docs/support/compatibility/privacy/AI/fuzz/formal tests are specified.

279. Final Architecture

                  PLATFORM CHANGE
                        │
                        ▼
                AUTHORITATIVE REGISTRY
                        │
             ┌──────────┼──────────┐
             │          │          │
           DOCS      MIGRATION   BULLETINS
             │          │          │
             └──────────┼──────────┘
                        ▼
                 DEVELOPER PORTAL
                        │
             ┌──────────┼──────────┐
             │          │          │
          SUPPORT     EDUCATION     CLI
             │          │          │
             └──────────┼──────────┘
                        ▼
                PUBLISHER ADOPTION

Developer-success safety model:

versioned authoritative docs
+
compatibility truth
+
migration guidance
+
minimal-data support
+
education
+
signed communication
+
source-grounded AI
+
privacy-safe ecosystem metrics

not:

undocumented changes, VIP APIs, revenue-based policy exceptions, support agents with production data access, and developer surveillance disguised as success analytics

280. Final Principle

Developer relations is trustworthy when a publisher can answer what changed, which version is supported, how to migrate, where the authoritative documentation lives, how to get help, and which support/education mechanisms cannot alter platform trust rules.

The correct model is:

document exact versions
+
communicate compatibility truth
+
announce changes early
+
provide migration guidance
+
support with minimum data
+
teach secure patterns
+
ground AI assistance in authoritative sources
+
measure ecosystem friction instead of people
+
never turn developer success into favoritism or surveillance

This architecture gives SIAR a privacy-preserving developer-success foundation for documentation governance, compatibility communication, migration assistance, publisher support, education, AI-assisted help, lifecycle notices, and ecosystem learning while preserving the anonymity, local-first, least-authority, marketplace-governance, commerce, licensing, certification, incident-response, and anti-surveillance guarantees established across Parts 34–149.