<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Technology on emsenn.net</title>
    <link>https://emsenn.net/tags/technology/</link>
    <description>Recent content in Technology on emsenn.net</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 08 Mar 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://emsenn.net/tags/technology/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Specification</title>
      <link>https://emsenn.net/library/domains/engineering/domains/tech/terms/specification/</link>
      <pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://emsenn.net/library/domains/engineering/domains/tech/terms/specification/</guid>
      <description>&lt;p&gt;A specification is a document that defines conformance requirements&#xA;for an artifact, practice, or convention. It answers the question:&#xA;what must an implementation do to be considered conforming?&lt;/p&gt;&#xA;&lt;p&gt;Specifications differ from descriptions (which say what something&#xA;is), tutorials (which show how to use something), and texts (which&#xA;argue a position). A specification is normative — it defines what&#xA;MUST, SHOULD, and MAY be done.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creating Specifications</title>
      <link>https://emsenn.net/library/domains/engineering/domains/tech/texts/creating-specifications/</link>
      <pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://emsenn.net/library/domains/engineering/domains/tech/texts/creating-specifications/</guid>
      <description>&lt;p&gt;This text describes how to write &lt;a href=&#34;../terms/specification.md&#34; class=&#34;link-internal&#34;&gt;specifications&lt;/a&gt; that are enforceable — versioned, canonicalizable, test-mapped, and deterministic. It exists to make specs usable as contracts: readable by humans, actionable by agents, and checkable by tools.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-specification-as-transformer&#34;&gt;&lt;a href=&#34;#the-specification-as-transformer&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;The specification as transformer&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In the &amp;ldquo;contract as transformer&amp;rdquo; framing:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Inputs&lt;/strong&gt;: a spec artifact (Markdown/plaintext) and its declared versioning/stability metadata&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Constraints&lt;/strong&gt;: normative language and hygiene rules; canonicalization; determinism; conformance mapping&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Outputs&lt;/strong&gt;: a conformance matrix; executable tests/fixtures; machine-readable diagnostics for violations&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;normative-scaffold&#34;&gt;&lt;a href=&#34;#normative-scaffold&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;Normative scaffold&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;a1-versioning-must&#34;&gt;&lt;a href=&#34;#a1-versioning-must&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.1 Versioning (MUST)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Version identifiers MUST follow &lt;code&gt;MAJOR.MINOR.PATCH&lt;/code&gt; where:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;MAJOR: backward-incompatible changes.&lt;/li&gt;&#xA;&lt;li&gt;MINOR: backward-compatible feature additions.&lt;/li&gt;&#xA;&lt;li&gt;PATCH: backward-compatible fixes and clarifications.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Each spec artifact MUST declare &lt;code&gt;spec-id&lt;/code&gt;, &lt;code&gt;version&lt;/code&gt;, &lt;code&gt;release-date (UTC, YYYY-MM-DD)&lt;/code&gt;, and &lt;code&gt;stability&lt;/code&gt; in {draft, candidate, stable, deprecated}.&lt;/li&gt;&#xA;&lt;li&gt;Wire formats and behavior linked to a MAJOR version MUST remain stable within that MAJOR series.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a2-canonicalization-must&#34;&gt;&lt;a href=&#34;#a2-canonicalization-must&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.2 Canonicalization (MUST)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Define a single canonical byte sequence for all serializable artifacts.&lt;/li&gt;&#xA;&lt;li&gt;Rules MUST specify:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Field ordering and omission rules.&lt;/li&gt;&#xA;&lt;li&gt;String normalization (Unicode NFC), whitespace policy, and number formatting.&lt;/li&gt;&#xA;&lt;li&gt;Deterministic map/dict ordering.&lt;/li&gt;&#xA;&lt;li&gt;Binary encoding and endianness.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;A reference function &lt;code&gt;CANON(x) -&amp;gt; bytes&lt;/code&gt; MUST be specified and testable (golden vectors).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a3-error-semantics-must&#34;&gt;&lt;a href=&#34;#a3-error-semantics-must&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.3 Error Semantics (MUST)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Errors MUST use a stable schema with fields:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;code&lt;/code&gt; (stable, machine-readable), &lt;code&gt;name&lt;/code&gt;, &lt;code&gt;severity&lt;/code&gt; in {info, warn, error, fatal},&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;where&lt;/code&gt; (component/module), &lt;code&gt;when&lt;/code&gt; (UTC timestamp), &lt;code&gt;correlation-id&lt;/code&gt;,&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;fault&lt;/code&gt; (producer/consumer), &lt;code&gt;retryable&lt;/code&gt; (bool), &lt;code&gt;data&lt;/code&gt; (opaque).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Define error classes:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Input/validation, Canonicalization, Version/feature, State/consistency, I/O/transport, Security/authz.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Each algorithm step MUST specify which errors it can emit and under what preconditions.&lt;/li&gt;&#xA;&lt;li&gt;Ambiguities MUST be errors (not &amp;ldquo;unspecified behavior&amp;rdquo;).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a4-conformance-mustshould&#34;&gt;&lt;a href=&#34;#a4-conformance-mustshould&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.4 Conformance (MUST/SHOULD)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Provide a conformance matrix listing each normative &amp;ldquo;MUST/SHOULD/MAY&amp;rdquo; and the actor(s) it binds (producer, consumer, intermediary, validator).&lt;/li&gt;&#xA;&lt;li&gt;Publish an executable conformance suite with:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Golden inputs/outputs, negative cases, fuzz corpus seeds, and determinism checks.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Implementations MUST declare a &lt;code&gt;conformance-profile&lt;/code&gt; referencing matrix rows and test IDs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a5-upgrade-path-should&#34;&gt;&lt;a href=&#34;#a5-upgrade-path-should&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.5 Upgrade Path (SHOULD)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Specify negotiated capabilities:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Feature flags, version ranges, and fallback behavior.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Define deprecation windows:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Announcement, availability of dual-stack behavior, removal.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Specify migration tools/artifacts:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Translators, shims, and data backfills with idempotency guarantees.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a6-security-and-privacy-notes-must&#34;&gt;&lt;a href=&#34;#a6-security-and-privacy-notes-must&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.6 Security and Privacy Notes (MUST)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Enumerate attacker models and trust boundaries.&lt;/li&gt;&#xA;&lt;li&gt;State confidentiality/integrity expectations for canonical bytes on the wire and at rest.&lt;/li&gt;&#xA;&lt;li&gt;Specify required mitigations (authn/authz, replay protection, input limits, timing channels).&lt;/li&gt;&#xA;&lt;li&gt;Define data retention and minimization requirements.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a7-interop-and-determinism-must&#34;&gt;&lt;a href=&#34;#a7-interop-and-determinism-must&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.7 Interop and Determinism (MUST)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;All observable outputs for the same canonical inputs MUST be bit-for-bit identical across conforming implementations.&lt;/li&gt;&#xA;&lt;li&gt;Randomness MUST be explicitly parameterized and seeded via inputs; otherwise it is forbidden in normative algorithms.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a8-registries-and-extension-points-mayshould&#34;&gt;&lt;a href=&#34;#a8-registries-and-extension-points-mayshould&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.8 Registries and Extension Points (MAY/SHOULD)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If extension points exist, define:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Registration policy, review process, collision handling, and permanence.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Each registry entry MUST include: identifier, status, spec reference, and security notes.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a9-formal-artifacts-should&#34;&gt;&lt;a href=&#34;#a9-formal-artifacts-should&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.9 Formal Artifacts (SHOULD)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Provide machine-readable schemas (e.g., JSON Schema/ASN.1/IDL) and reference TCK hooks.&lt;/li&gt;&#xA;&lt;li&gt;Include pseudo-code that is executable or trivially transpilable.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;a10-document-hygiene-must&#34;&gt;&lt;a href=&#34;#a10-document-hygiene-must&#34; class=&#34;heading-anchor&#34; aria-label=&#34;Link to this section&#34;&gt;¶&lt;/a&gt;A.10 Document Hygiene (MUST)&#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Each &amp;ldquo;MUST/SHOULD/MAY&amp;rdquo; statement is normative and test-mapped (link to conformance ID).&lt;/li&gt;&#xA;&lt;li&gt;All examples MUST indicate whether they are normative (golden) or informative (illustrative).&lt;/li&gt;&#xA;&lt;li&gt;The spec MUST include a glossary and an explicit non-normative &amp;ldquo;Rationale&amp;rdquo; annex.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
  </channel>
</rss>
