From c92c1b51db2cb3e6a0810587ee245eba76a403ca Mon Sep 17 00:00:00 2001 From: 0j0bit Date: Sun, 13 Sep 2026 00:02:33 +0530 Subject: [PATCH 1/3] Make the README a front door instead of a specification cover page Anyone arriving here got "Scope" and "Non-goals" and no way to tell whether this repository was the one they needed, what MCL would look like in their own code, or where to go if it was not. That is the right shape for a reader who already knows what MCL is, and the wrong shape for everyone else. The specification content is unchanged and still here, underneath. What is new sits above it: - the OJOBIT banner, and badges that carry live state -- CI status is the real workflow badge, so it goes red on its own rather than being a decoration - one sentence saying what this repository is for, in plain language - a routing block. Most people should not read a specification to use MCL, they should use mcl-sdk, and the README now says so at the top instead of letting them find out later - a short "why this exists" that gives the reason the layer is shaped this way, rather than restating the scope list immediately below it Maturity is stated on the badge rather than buried: which profiles are Stable, which are Candidate, and -- for mcl-uwb -- that the binding is specified but has never been run on hardware, with a pointer to the bindings that have. A reader deciding what to build on should not have to dig for that. No specification text, normative wording, conformance claim or evidence reference was altered, and no executable source is touched. Co-Authored-By: Claude Opus 5 --- .github/banner.png | Bin 0 -> 8031 bytes README.md | 31 +++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 .github/banner.png diff --git a/.github/banner.png b/.github/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..0804c293b2f593ba4552b9007983e5dc3eae864e GIT binary patch literal 8031 zcmeHM4OElY8U8?&Vi8nu#VtVHR-DCCw4lguRB+(o&r{l}wFMbUP$c|>3KB^e9Av-- z9Wefq5CLpzdnab zj;p_26%PO|BS(V|y`NEAk2X1VE7RXX&**Y1)s^XNl(siD`yKUrx%^d83_)=qOgVHiw6*So@xL1 zWMICmyEbv5I00|V48|PyQpcyd)paxsyXJci@U}4^Ct?x5B~jix5$=_Fq!qaV)zI$# z4slnqnn4*eM#y5 zEC0fCJeZ|{EM^jII1FMQ$4c5jT zWhFCjBkRBc`f0rMscZ5Y`wVxUQB}Iu8O5a76eK1wxoQfM%_hw;Pty^`42TYfH8Uht zP$*F%%0V2NKp^Z1EEz?=F%{0^qN!=eZK+hM?9yh`R6PhQ3_l#!fL3Ik=iaBT3@DNL z;56P#-RR?x|Kf+r6jMHAI{JTQN}GaBNB?S;V4kMk#auHWIx_!ohTJC+M$wseKBPz= zm$DrvDV&oxKiuJiuZ?Lvx>gc>RM=W2!Wg&}zec@RrFryfi+ZGaYTIO+3w; zzilU&O!(iqqS`ps?ked#AF)B**b60wWuq~rS`l$sYoC&8G!M&mMr&c#7agGvnw3dx#`y^L18h!ZAC>j$;4ob&jPm!(D+!jO%b({MYVe3=T#U0EC0b1wGsCClToxD)L zxux|7#G-B}Q67SEgSq~qhmvtqW@O6u&E8o@>s&J+IvieAmEe_m=K{~ORBi+^^z=dk zZJfMaTUa6rt&?FdJ^S#1YPlbpy^S0xujdluwXUMDdu{#R|0DmrvRTIfz(thhKjc5u zSM4F0>M6O*f>oP=iUMt`XW7kB%H_rBM!ZIb`r>^`Oy?u~++WGVTXQIaslg1_NW~Oq z>8{wpP(hfm8KdFJu{h<-08K+LwAZ}-cAzy^v_ECM3!LM?7I0XsxWvS%MN}0wa7cP- zcR*#NMiV6fY5Q_EL@E2L5{m_tSQ<_$CNI?W;r&?Mjw}tsr(F&&u`1B3aeMD8eSu@b zg6&>Sp|xgZzom?Kwk!1LA}bgK?{P4*0U5&fgr>`okV+=Z$R6~mg;r*gu94|JwOwLt z_MgD`Pw)wNMM{dWiNlM9oGC1Z6n=pjI{b?o0bg|^wga+lK{nFVG{rs}Ls`*&8B~nZ zmYEVEeoS<+43e-F&aq#UciGy^vRKmJd(ddu;?JXecCyKx{wU6tw4$b5s8Z}jgZjrh zv5MX6R5RmgzTO-KJ(|hb8qux(GiEO-zpoV!rX-3G8F#kTDCGxK6NCo!zY232$u2=t7Bxl*^>@ zw=L-ZMc{i``0+OV6^8#rGa2{j{9V-?rfM zq>SJm%20AdY#;dTlj|OV70vY(bF2)NY%l@^juR_{yZ~?ZxNr$O*$i)29hCerZUY;X z@EL^fL`GWJXDOG?GEm~N&ORIsFC~+wl#a)%FBD&{#tVdE$t1lnM5AoRC4_mc7YqIF zAqh}dloApP6|vCO9?TvXD%LZyzs&Pg!yG=0Q`$TIhDMpuVkJ%KTRj;}g$G9?Ewl23 z`?v%KA13~iOw8($1~3gwjtK)hFMXS|pygal6jX^x6JZbRWMgoT+G}Daq0ZVaYiJ3P zGl$t>sBrjqJATpCd+pP68~+mhYznD%VHIH(Sxw>sGOjI8b73Q2Lq>*A{wu)$C#rmz zXgF{8Inx<~y8BVVvkc#vEdMKKT8FJrQ{^2EaPUrqf1LjB-8($z9y~}9Ot$^jJv_~^ zg7%+X8AVgC!50zp3biNw2djZzJ?e~11`b}fHec1jk#4?})E{@N)iu*`{hz(eonUG# Yog$%zFK-sy(=K`RNMvx!;nR8l1YmO`6#xJL literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 4002cf0..f1e4a8d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,33 @@ -# Machine Contact Layer +

+ OJOBIT +

-**A transport-independent layer for machines to meet, and to keep talking.** +

Machine Contact Layer

+ +

A transport-independent layer for machines to meet, and to keep talking.

+ +

+ CI + License Apache-2.0 + status + C99 freestanding + repos +

+ +

+ Quickstart · + SDK · + What is claimed · + Report a defect +

+ +--- + +> ### Building something? Start with the SDK +> +> [**mcl-sdk**](https://github.com/machine-contact-layer/mcl-sdk) is one CMake project with a runnable example and no +> sibling checkout. This repository is the specification, governance and +> conformance authority — the thing the SDK implements. Two machines end up in the same place. They may have been built by different companies and never designed to work together; or they may both be yours, and From d1c44a37e894ff6a0dc31659a5b097784cefcf71 Mon Sep 17 00:00:00 2001 From: 0j0bit Date: Sun, 13 Sep 2026 08:17:16 +0530 Subject: [PATCH 2/3] Correct the adoption front door against verified facts Every claim here was checked before it was written, and three were wrong. - mcl-sdk said to clone it alone and build. A fresh anonymous clone fails to configure, because the repository builds against its sibling specifications. The README now gives both real paths, each verified from anonymous downloads: the release developer SDK archive, one CMake project with no sibling checkout, and the eight repositories cloned side by side. Both configure, build and run the Base 1 example to CONTACT_ESTABLISHED on both sides. - The mcl-sdk snippet passed a string where mcl_machine_config_deployment takes a numeric source reference and a role, and admitted on PEER_DETECTED where the API raises POLICY_REQUIRED. The replacement was compiled with -std=c99 -Wall -Werror against the real headers, linked and run: init and start return MCL_MACHINE_OK with only clock_ms, transport_send and user set, which is what the prose now says Base 1 needs. - mcl-uwb carried a status badge the ICS does not use. The ICS says experimental, so the badge does. Also: the SDK-first callouts no longer call the mcl-sdk repository one CMake project with no sibling checkout, which describes the release developer SDK; mcl-link no longer sets the 104-migration campaign, which carried major-0 traffic, directly beside the Link major 1 Stable claim; the organization profile no longer calls the specifications frozen before the Candidate is sealed. CODEOWNERS prose: @0j0bit and @sed-boi are two accounts controlled by the same project owner. That is account redundancy, not independent two-person review. Owner patterns are unchanged. No specification text, conformance claim, evidence reference or executable source changed. Co-Authored-By: Claude Opus 5 --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f1e4a8d..92a489a 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,10 @@ > ### Building something? Start with the SDK > -> [**mcl-sdk**](https://github.com/machine-contact-layer/mcl-sdk) is one CMake project with a runnable example and no -> sibling checkout. This repository is the specification, governance and -> conformance authority — the thing the SDK implements. +> [**mcl-sdk**](https://github.com/machine-contact-layer/mcl-sdk) has the quickstart and the examples, and the release +> ships a self-contained developer SDK — one CMake project, no sibling checkout. +> This repository is the specification, governance and conformance authority — +> the thing the SDK implements. Two machines end up in the same place. They may have been built by different companies and never designed to work together; or they may both be yours, and From 76036a901a393183738f1eb6e0cd2b50fb23077c Mon Sep 17 00:00:00 2001 From: 0j0bit Date: Sun, 13 Sep 2026 08:26:36 +0530 Subject: [PATCH 3/3] Reference the organization banner instead of copying it into every repository check-provenance.sh refuses a binary outside the accounted evidence and experiment locations, and it was right to: eight copies of a brand image in eight release repositories is eight unaccounted binaries, and eight places for one asset to drift. The banner now lives once, in the .github organization-infrastructure repository, and each README references it there. No gate was loosened to make this pass. Co-Authored-By: Claude Opus 5 --- .github/banner.png | Bin 8031 -> 0 bytes README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .github/banner.png diff --git a/.github/banner.png b/.github/banner.png deleted file mode 100644 index 0804c293b2f593ba4552b9007983e5dc3eae864e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8031 zcmeHM4OElY8U8?&Vi8nu#VtVHR-DCCw4lguRB+(o&r{l}wFMbUP$c|>3KB^e9Av-- z9Wefq5CLpzdnab zj;p_26%PO|BS(V|y`NEAk2X1VE7RXX&**Y1)s^XNl(siD`yKUrx%^d83_)=qOgVHiw6*So@xL1 zWMICmyEbv5I00|V48|PyQpcyd)paxsyXJci@U}4^Ct?x5B~jix5$=_Fq!qaV)zI$# z4slnqnn4*eM#y5 zEC0fCJeZ|{EM^jII1FMQ$4c5jT zWhFCjBkRBc`f0rMscZ5Y`wVxUQB}Iu8O5a76eK1wxoQfM%_hw;Pty^`42TYfH8Uht zP$*F%%0V2NKp^Z1EEz?=F%{0^qN!=eZK+hM?9yh`R6PhQ3_l#!fL3Ik=iaBT3@DNL z;56P#-RR?x|Kf+r6jMHAI{JTQN}GaBNB?S;V4kMk#auHWIx_!ohTJC+M$wseKBPz= zm$DrvDV&oxKiuJiuZ?Lvx>gc>RM=W2!Wg&}zec@RrFryfi+ZGaYTIO+3w; zzilU&O!(iqqS`ps?ked#AF)B**b60wWuq~rS`l$sYoC&8G!M&mMr&c#7agGvnw3dx#`y^L18h!ZAC>j$;4ob&jPm!(D+!jO%b({MYVe3=T#U0EC0b1wGsCClToxD)L zxux|7#G-B}Q67SEgSq~qhmvtqW@O6u&E8o@>s&J+IvieAmEe_m=K{~ORBi+^^z=dk zZJfMaTUa6rt&?FdJ^S#1YPlbpy^S0xujdluwXUMDdu{#R|0DmrvRTIfz(thhKjc5u zSM4F0>M6O*f>oP=iUMt`XW7kB%H_rBM!ZIb`r>^`Oy?u~++WGVTXQIaslg1_NW~Oq z>8{wpP(hfm8KdFJu{h<-08K+LwAZ}-cAzy^v_ECM3!LM?7I0XsxWvS%MN}0wa7cP- zcR*#NMiV6fY5Q_EL@E2L5{m_tSQ<_$CNI?W;r&?Mjw}tsr(F&&u`1B3aeMD8eSu@b zg6&>Sp|xgZzom?Kwk!1LA}bgK?{P4*0U5&fgr>`okV+=Z$R6~mg;r*gu94|JwOwLt z_MgD`Pw)wNMM{dWiNlM9oGC1Z6n=pjI{b?o0bg|^wga+lK{nFVG{rs}Ls`*&8B~nZ zmYEVEeoS<+43e-F&aq#UciGy^vRKmJd(ddu;?JXecCyKx{wU6tw4$b5s8Z}jgZjrh zv5MX6R5RmgzTO-KJ(|hb8qux(GiEO-zpoV!rX-3G8F#kTDCGxK6NCo!zY232$u2=t7Bxl*^>@ zw=L-ZMc{i``0+OV6^8#rGa2{j{9V-?rfM zq>SJm%20AdY#;dTlj|OV70vY(bF2)NY%l@^juR_{yZ~?ZxNr$O*$i)29hCerZUY;X z@EL^fL`GWJXDOG?GEm~N&ORIsFC~+wl#a)%FBD&{#tVdE$t1lnM5AoRC4_mc7YqIF zAqh}dloApP6|vCO9?TvXD%LZyzs&Pg!yG=0Q`$TIhDMpuVkJ%KTRj;}g$G9?Ewl23 z`?v%KA13~iOw8($1~3gwjtK)hFMXS|pygal6jX^x6JZbRWMgoT+G}Daq0ZVaYiJ3P zGl$t>sBrjqJATpCd+pP68~+mhYznD%VHIH(Sxw>sGOjI8b73Q2Lq>*A{wu)$C#rmz zXgF{8Inx<~y8BVVvkc#vEdMKKT8FJrQ{^2EaPUrqf1LjB-8($z9y~}9Ot$^jJv_~^ zg7%+X8AVgC!50zp3biNw2djZzJ?e~11`b}fHec1jk#4?})E{@N)iu*`{hz(eonUG# Yog$%zFK-sy(=K`RNMvx!;nR8l1YmO`6#xJL diff --git a/README.md b/README.md index 92a489a..2ad8169 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- OJOBIT + OJOBIT

Machine Contact Layer