Skip to content

Sweep 4: validated fixes — commands, endpoints, claims, nav#116

Open
TeoSlayer wants to merge 75 commits into
fix/sweep-3from
fix/sweep-4
Open

Sweep 4: validated fixes — commands, endpoints, claims, nav#116
TeoSlayer wants to merge 75 commits into
fix/sweep-3from
fix/sweep-4

Conversation

@TeoSlayer

Copy link
Copy Markdown
Contributor

Stacked on #115 (fix/sweep-3) — merge that first; this PR auto-retargets to main.

Every fix here was validated against a ground truth before editing: the Go source in web4, pinned module caches (skillinject@v0.2.3, common@v0.5.0, protocol@v1.10.5), release/install.sh, live curls (all 468 external URLs checked), gh api for repo/path existence, and a live brew trust run.

Highlights

  • Skill-inject truth: shipped default is auto (nothing ever sets manual on fresh install) — consent docs, getting-started, security, privacy, and the homepage Two-paths section now say so honestly. Real marker block (<!-- pilot:begin v=1 hash=… -->), real toolchain list (PicoClaw in, Cursor out — it was never supported).
  • Go SDK page could not compile — now points at the real module github.com/pilot-protocol/common/driver.
  • Publisher agreement version stamp synced (2026-06-202026-07-06) — submissions were recording the wrong version.
  • Press page no longer loads Google Fonts (visitor-IP leak contradicting PILOT-175 + privacy policy).
  • ~90 dead/wrong links fixed across docs and blog (IETF draft-00s, phantom posts, nonexistent repo paths, org typos, dead externals).
  • Blog CLI accuracy: 10× pilotctl gatewayextras gateway; five invented syntaxes replaced with real commands.
  • Nav restructure: App Store is a top-level item; Tech dropdown gets a working active state; tracking targets normalized.
  • cli-reference completeness: sign-request/verify-request, network admin subcommands, skills set-mode documented.

Full validation methodology and the sentence-level claim audit ledger will land as a follow-up commit on this branch (audit/ — workflow in progress, 87 auditors).

Build: 345 pages green locally.

🤖 Generated with Claude Code

teovl and others added 30 commits July 10, 2026 12:59
Product-truth fixes (verified against web4 source + module caches):
- consent/getting-started/security/privacy: skill-inject toolchains corrected
  (no Cursor; add PicoClaw), real marker block (pilot:begin/end), auto is the
  fresh-install default (GetMode returns ModeAuto when key absent), real
  broadcast signature, pilotd -> pilot-daemon
- go-sdk: SDK actually lives at github.com/pilot-protocol/common/driver
- configuration: PILOT_RC is the edge-channel flag, add -registry-trust row,
  unpin --pin example, drop unverifiable "hourly" updater interval
- cli-reference: add sign-request/verify-request, network admin subcommands
  (create/delete/rename/promote/demote/kick/role/policy), skills set-mode

Dead links (all curl-verified 404s):
- research/python-sdk/firewalls: repo paths that don't exist publicly
- PlainLayout footer skills.json -> live TeoSlayer URL
- blog: 14 IETF draft-00 links -> -01, phantom-post retargets, org-typo
  openclaw link, 12 dead externals unlinked, A2A -> a2a-protocol.org

Stale commands (source-verified):
- blog: 10x pilotctl gateway -> extras gateway; invented syntaxes replaced
  (search->member-tags get, port-policy->network policy, events->publish/
  subscribe, data send/recv->send-file/recv, create-network->network create)

Honesty/consistency:
- index: spec-valid address, IETF "Spec/Submitted" not "Standard", live +N
  app badge, no-central-dependency -> direct-data-path framing, unattributed
  quote and "surveyed" framing removed, two-paths reflects auto default
- p2p: "no server in the data path" (matches its own FAQ), bench note
- compatibility: stale v1.10.3 pins removed, last-verified stamp added
- press: Google Fonts removed (GDPR, PILOT-175 self-hosting)
- publish: AGREEMENT_VERSION synced to 2026-07-06 agreement
- legal: entity unified to Vulture Labs, Inc. (Delaware)
- nav: App Store top-level, Tech dropdown active state, tracking targets
- docs: /docs/tags into docsNav + chain, dead DocFooter removed, networks
  early-access caveat, network-9 explainer, registry/beacon/rendezvous
  glossary, setups empty-fetch fallback, blogPosts orphan entry removed

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
87 auditor agents validated every user-visible sentence against the web4 Go
source, pinned module caches, install.sh, live endpoints, and GitHub.
Result: 11,054 verified · 627 FALSE · 1,466 UNVERIFIABLE — every flagged
sentence recorded per page with evidence and what would verify it.
Index and ranking in audit/README.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Consent page now matches shipped behavior: app_usage event disclosed,
daemon-side -telemetry-url caveat, sender-side broadcast model, default-off
review feature flags, real skill-inject manual/disabled semantics and
outside-marker writes, sandbox honestly described as startup validation.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…eb4 #366)

Re-passed the consent telemetry copy from interim disclosure to the strong
promise now that app_usage is removed from the product entirely. No per-call
app-store telemetry exists on the wire.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- PlainLayout: remove GA4 entirely (plain variant is a JS-stripped surface
  for agents/screen readers; no analytics, no consent gap). Closes the
  GDPR item — cookie policy 'analytics only after consent' is now true.
- consent.astro: set-mode disabled now removes files (web4), so copy
  restored to the strong promise: 'nothing of ours is left on disk'.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Corrected every Returns: shape and command claim to match pilotctl source
and live output: quickstart is a static banner (no --json), peers/inbox/
lookup/verify/sign-request/gateway return shapes fixed, network policy real
flags, admin-token auth not RBAC, trusted needs 'list', updates default 10,
--email persists to account.json. Registry-server-side semantics softened to
what local source proves.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ved)

Third-party facts corrected against current sources (verified live): ZeroTier
license MPL-2.0 not BSL 1.1, free tier 10 not 25 devices, ciphers Salsa20/12
+ AES-GMAC-SIV not ChaCha20; Nebula custom protobuf certs not X.509;
Tailscale has Taildrop/Funnel/Serve not 'None'. Pilot's stdlib-only/single-
binary claims reworded to the verifiable truth (pure Go, small deps, daemon
+ CLI). Slack scale softened to 'tens of thousands' per their blog.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Protocol facts corrected against current specs (verified live): A2A uses
/.well-known/agent-card.json; MCP transports are stdio + Streamable HTTP
(HTTP+SSE deprecated) with an OAuth framework; ACP (i-am-bee/acp) is a
cross-framework REST interop protocol with async + offline discovery, not
'local runtime orchestration'. Pilot 'stdlib only' -> 'small (pure Go)'.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Corrected the app-store trust story to match source: pilotctl (not the
daemon) fetches/verifies/extracts bundles; the ed25519 manifest signature is
verified at scan time while only the binary sha256 re-checks at spawn;
children are manifest-gated + rlimited, NOT OS-sandboxed (landlock/seccomp
not yet wired); verify checks the manifest-pinned binary, not 'every file';
cosift method count + source repo fixed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixed broken install commands: --email is rejected by install.sh (exit 2);
every example now uses PILOT_EMAIL= env (+ PILOT_ALLOW_ROOT=1 for root
containers). Corrected SDK claims (Unix-socket clients of a local daemon, no
HTTPS/WSS/browser path), plist name + non-auto-load, systemd not-enabled,
and HTTPS_PROXY 'tracked on GitHub' (no such issue; not supported). Reframed
30 unverifiable per-vendor cells as best-effort notes; dropped unbenchmarked
latency figures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rewrote the blueprint format + provision RPC docs to match the actual wire
format (common@v0.5.7): join_rule open|token|invite, webhooks object
{audit_url,identity_url}, roles []{external_id,role} incl owner, RPC key
'type' not 'command', get_provision_status takes no network_id, correct
common/registry import paths (no ToMap helper), real action strings, correct
step order, roles are pre-assignments. Logged install.sh --email fix to
needs-user.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
GA4-on-/plain rows resolved by the earlier PlainLayout fix (no GA4 there
now, so 'set only after consent' is true). Completed the storage inventory
(added pilot-theme + two publish-page localStorage keys), corrected the
'Cookie Preferences on every page' claim (marketing footer only), softened
__cf_bm (not observed live) and Cloudflare Web Analytics wording, accepted
the policy effective dates.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Corrected factual claims vs source: synthetic email derivation (pubkey
first 6 bytes, not SHA-256), LAN IP (collected on UDP + sent to registry,
not opt-in), 'never touches infrastructure' qualified to direct mode,
review-prompt default-off, GA4 retention, TLS 1.3 -> TLS 1.2+ (MinVersion),
clear-email -> set-email, last-updated bumped. Cloudflare Web Analytics
verified live-deployed. Legal declarations accepted; SMS-section (no
implementation) flagged to needs-user.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rewrote the identity/SSO/JWT/directory-sync docs to match rendezvous@v0.2.5:
IDP is registry-global not per-network; RPC key 'type' not 'command';
provider field 'idp_type'; validate_token returns verified/subject/issuer;
iat is not validated; JWKS refresh semantics; algorithm-confusion is blocked
by JWKS key-type cross-check; directory sync matches by external_id, never
adds members, owner is assignable, no tags; command directory_status.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…orical)

Historical enterprise-production announcement — self-reported metrics accepted
as point-in-time claims; technical details cross-verified consistent against
rendezvous@v0.2.5 (IDP-global, JWT iss/aud/exp/nbf omitting iat, directory
sync semantics, audit formats + DLQ, /metrics). 0 false, no page edit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Verified against the private pilot-agents repo (authenticated gh): search is
semantic (substring+fuzzy+embeddings) not literal token match; truncation is
agent-side not daemon; responder is event-driven not polling; real flag names
(-endpoints/-pilotctl/-inbox-dir); messages accept plain /slash or JSON (not
JSON-only), prose is dropped; scaffold is template/ in the (private)
pilot-agents repo not service-agents/. Flagged the private-repo + stale-skill
items to needs-user.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 false. The 56 unverifiable rows are one class — per-setup efficacy ledes
sourced from the catalog data (structurally verified) → accepted as catalog
content. Fixed the flagged quality bug: meta description was setup.tagline (a
mid-word ~100-char cut on 40/56 pages) → clean word-boundary truncation of
the full description.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Corrected the crypto explainer to shipped web4 behavior: AES key is
HKDF-SHA256-derived not raw ECDH (a documented H1 fix the blog predated);
X25519 keypair is per-daemon not per-tunnel (reframed forward-secrecy ->
peer isolation with honest caveat); encryption is the global -encrypt
default not port-443-gated; PILK 40B/dir (80 total), PILS overhead 36B;
WireGuard keys are 256-bit. Softened unbenchmarked perf/line-count figures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The page described a peers --search <tag> feature that doesn't exist (it's
node-ID substring only) plus fictional SDK peers()/connect() methods.
Rewrote discovery to the real path (list-agents directory service); fixed
the Python SDK example (Driver(socket_path=)/info/resolve_hostname). Verified
list-agents searches hostname/category/description NOT tags, so corrected
tags to node metadata. Flagged the tags-not-indexed product gap.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pilot-protocol/gateway is library-only — no public pilot-gateway binary
buildable — so reframed the binary section (library import, standalone
binary not published). Fixed discovery order (env-var first), the false
'plain TCP server is reachable with no setup' recipe (daemon RSTs ports
with no pilot listener), and the stub list/map/unmap/stop commands. Flagged
gateway public-availability to needs-user.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
3 false: stale hardcoded Bitbucket prices -> pointer to vendor pricing page;
'routing and discovery are distributed' -> corrected (P2P data path but
registry/beacon coordination). Softened Pilot's own superlatives and an
invented case study; accepted third-party competitor descriptions as
listicle content.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixed recurring CLI/SDK errors: set-tags max 3, subscribe/publish need
address+--data, common/driver import, Connect(""), and caveated the
fictional stream pub/sub API as pseudocode (real SDK is SendTo/RecvFrom).
Softened the anonymous quote, uncited latency claim, and illustrative
memory figures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Fixed the recurring templated CLI/SDK errors site-wide: pkg/driver ->
common/driver import (12 posts), driver.Connect() -> Connect("") (21x),
and caveated the fictional stream.OpenEventStream pub/sub API in 4 posts
(SDK is SendTo/RecvFrom; pub/sub is CLI publish/subscribe). Verified against
common@v0.5.7/driver.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pilotctl bench is a fixed-size echo transfer, not the described 60s sustained
harness with histograms; the http2bench binary and GCP deployment scripts
don't exist. Corrected the methodology claims and caveated the benchmark
figures as illustrative internal runs (not reproducible from public tooling).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Corrected codebase facts vs source: not zero-dep/15k-lines (pure-Go, small
deps, tens of thousands of lines); dataexchange/eventstream under internal/
not pkg/; real CLI commands (no data/events/set-visibility); broadcast
already exists; zz_-prefixed test files; no SPEC.md/REQUIREMENTS.md. Softened
the misleading 'linter rewrites your code' claims and exact test count.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
teovl and others added 24 commits July 11, 2026 00:32
- for/mcp: rewrite gateway terminal to verified docs/gateway flow
  (drop 'self'/hostname positionals, localhost→10.4.0.1 alias)
- enterprise-policies: fix max_members-reduce rejection, wire JSON
  (type not command, flat fields), audit event field detail
- firewalls: single port not single connection; drop nonexistent
  beacon-list reconnect

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- enterprise: move per-network admin tokens + blueprint provisioning
  out of 'requires enterprise' (both admin-token-gated, not enterprise)
- go-sdk: PILOT_SOCKET is CLI-only not SDK; SetDeadline sets read
  deadline only (write is a no-op)
- index: 'single static binary'→'static binaries' (ships 4);
  'no central server'→thin registry for discovery

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…erms)

- apps.ts: mysql + didit not in live catalogue (verified 19 apps
  2026-07-11) -> real:false/inCatalogue:false; slipstream methods
  populated (9 real catalogue methods)
- apps/[id]: dynamic Source label (GitHub vs other host)
- terms: bump stale 'Last updated' to 2026-07-10 (parties clause);
  route 'not open-source licensed' clause to needs-user (legal)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- troubleshooting: pilotctl info redacts endpoints, so it can't show
  the tunnel UDP port; point to ~/.pilot/pilot.log instead (2 spots)
- for/skills: featured install cmd 'openclaw install ...' -> real
  'clawhub install pilot-protocol'
- node-sdk: correct delivery (binaries ship inside npm pkg, seeded to
  ~/.pilot/bin, no install scripts) + platform coverage (macOS arm64 +
  Linux x64 only, not the stale optionalDependencies claim)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- http-services: replace fictional SDK methods with real ones —
  DialAddr(str)->Dial('addr:port'), Resolve->ResolveHostname,
  Address()->Info()['address']; ListenSecure/DialSecure don't exist,
  switched to Listen/Dial + roadmap caveat for pilot-secure-v1
- trust-model: untrust does NOT notify the peer (fixed 2 spots);
  Ed25519 sig covers identity pair not the request/justification
  (fixed 3 spots); replaced nonexistent justification-pattern
  auto-approve with real -trust-auto-approve flag

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- cross-company: d.SubmitTask (fictional) -> real Dial+encode/decode;
  drop 'requester's tags' from handshake; key exchange is UDP tunnel
  not port 443; real webhook event names (handshake.*/node.*/network.*)
- file-transfer: Dial(addr,port) -> Dial('addr:port'); add missing
  encoding/json import; fix conn.Read([]byte{ack}) never setting ack;
  MaxSegmentSize 4096 not '1200-1400'; -encrypt flag exists

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- flags: only SYN/ACK/FIN/RST (4-bit nibble), not PSH/URG
- header offset table rewritten to match packet.go wire layout
  (version+flags share byte 0; length @2-3; every offset after byte 1)
- SYN hex dump rewritten with correct byte 0 (0x11) + offsets
- keepalive 60s not 30s; relay phase is 4 retries not 3 (3 direct+4)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- move-beyond-rest: NAT keepalive 25s not 30s (TunnelKeepaliveInterval)
- chain-ai: d.HTTPTransport() (fictional) -> real http.Transport w/
  DialContext+ResolveHostname+Dial; tag discovery -> hostname substring
- distributed-rag: pilotctl receive-message (fictional) -> real
  'inbox --from --limit'; tag discovery -> hostname substring

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- a2a: agent.json -> agent-card.json (live spec); ListenAndServeHTTP
  (fictional) -> Listen+http.Serve; capability/task-ready registry
  claims -> real hostname-substring peer search
- aegis: app id aegis -> io.pilot.aegis; aegis.inspect -> aegis.scan;
  content -> text param; verdict pass/flag/block -> allow/block+rule
  (re-verified vs live app 2026-07-11); 243k stale figure removed
- agent-comm-security: wrong arxiv citation swapped; MLS RFC 9750 ->
  9420 (protocol); Pilot 'mTLS' -> X25519 tunnels; datePublished fixed

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- building-custom-pilot-skills: send needs <port> --data; recv --from
  -> inbox --from; peers --search reframed; context has no error codes
- enterprise-phase-3-rbac: promote/demote/kick/invite are positional
  (no --node flag); set-policy -> policy; msg cap 64MB not 64KB
- secure-research-collab: ~/pilot-received -> ~/.pilot/received;
  untrust doesn't notify peer; --no-encrypt flag exists

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- ai-agent-discovery: strip fabricated arxiv stats (48.5%/4x/30x
  pressure-field, OASF/CID attribution) not in the cited papers;
  keep what the papers actually support
- multi-agent-pipelines: send needs port+--data; recv --from -> inbox
  --from; member-tags get --net -> network members
- openclaw-meets: SKILLS.md -> SKILL.md (6x); send port+--data; recv
  needs port

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- direct-comm: not stdlib-only (has deps); corrected all 9 app
  descriptions to real taglines; pilotctl call -> appstore call
- smart-home: peers --search matches hostname/node-ID not tags;
  reframed to function-named hostnames, stripped tag columns
- sociology: clustering 0.373 not 0.47; drop fabricated 3/8/15 layers
  + 3x scaling ratio (paper has neither), use paper's real figures

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- python-sdk: Python 3.9+ not 3.10+; pilot-daemon start --hostname is
  invalid (use pilotctl init + daemon start); examples/ link 404 ->
  docs guide + sdk-python README
- overlay: 'zero external deps/stdlib only' -> static binary; appstore
  cosift -> io.pilot.cosift
- userspace-tcp: qualify 'zero dependencies' claims to the reliable-UDP
  transport core (go.mod has coder/websocket + x/* deps)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- scriptorium: 'no central server' -> thin registry framing; fix
  bannerImage missing /blog/ prefix (broken og:image)
- ietf-draft: docs/SPEC.md link 404 -> live IETF draft URL (both spots)
- hipaa: fictional webhook event names -> real daemon publishEvent
  topics; webhook is not localhost-only (any http/https, metadata blocked)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- run-agent: MIT license -> AGPL-3.0 (3 spots); fix broken step
  numbering (Step 4 w/ no Step 3); auto-approval reworded to real flag
- openclaw-nat: daemon does NOT classify NAT types (retry-based ladder,
  not detection); remove fabricated nat_type/tunnel_port status keys;
  fix retry budget (3 direct + 4 relay); reframe fabricated 'empirical'
  NAT distribution as representative published research

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- why-ai-agents-need-network-stack: 'zero external dependencies' ->
  static binary (go.mod has coder/websocket + deps)
- pilot-vs-tailscale: 'stdlib-only'/'pure-stdlib no deps' -> static
  Go binary
- how-ai-agents-discover: MIT -> AGPL; peers --search (connected-peer
  node-ID filter) -> real list-agents directory query for network-wide
  capability discovery; directory indexes hostname/category/description

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…lse)

- virtual-addresses: FIPS = 'Free Internetworking Peering System'
  (not 'Fully Isolated P2P Spaces'); drop misattributed libp2p #2977
  citation for CIDR-overlap claim
- p2p-no-server: Go driver.New->Connect, hostname Dial->ResolveHostname
  +Dial+fmt; Python async connect->sync Driver() API
- mcp-across: same Go/Python SDK fixes; trust is not automatic (peer
  must approve / -trust-auto-approve)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- p2p-examples: DHT hole-punch is BEP 55 not core DHT (BEP 5); 97.6%
  is first-attempt share of successes (~70% overall), fix table row
- mas-guide: two misattributed arxiv citations (2507.08616 AgentsNet
  and 2503.13657 failure paper) corrected/removed
- claude-teams: pilotctl send needs port+--data (6x); recv --from ->
  inbox --from; worker recv needs port (all occurrences)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- blog/index: 'pilotctl commands in every post' -> 'many posts'
  (50/107 have none); remove fabricated '3 min read' badge (computed
  from blurb, always 3)
- clawhub: SKILLS.md -> SKILL.md; peers --search tag search -> real
  list-agents directory query
- advanced-automation: NETCONF '10x faster than MD-CLI' -> 3x (cited
  Nature article); table MD-CLI ~10x -> ~3.7x

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…lse)

- secure-comm: mTLS RFC 8705 is OAuth mutual-TLS, not a TLS extension;
  mutual auth is native to TLS (RFC 8446)
- scaling-fleets: pilotctl peers shows connected peers not public
  agents; point discovery at list-agents directory
- persistent-addressing: datePublished 2026-04-20 -> 04-21 (match date)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- persistent-strategies: remove false DHT-churn citation (linked post
  has no DHT/20%-per-hour content); keep general statement
- net-security: BlockA2A DOE = Defense Orchestration Engine not
  'Delegated' (arxiv 2508.01332)
- multi-cloud: discovery IS via central registry; trust is P2P — fix
  'find peers without a central directory'

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…lse)

- legacy-integration: datePublished 2026-05-06 -> 05-09 (match date)
- ietf-rev01: docs/ietf/ repo link 404 -> IETF datatracker + on-site
  /research/ietf/ mirror
- federated-learning: d.SendFile (no such method) -> real Dial+io.Copy

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…mples)

- enterprise-roadmap: SPEC.md 404 -> IETF draft
- encryption-guide: datePublished 2026-05-02 -> 05-05 (match date)
- connect-nat-vpn: init --public invalid -> move to daemon start
- a2a-examples: '150+ partners' -> 50+ (cited googleblog says 50)

This clears the last FALSE claims across all 167 audited pages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Records the FALSE-claim-complete milestone at the top of PROGRESS.md
and adds the unverifiable-marketing-stats editorial question to
Needs user review. 43 unverifiable-only pages remain for the softening
pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TeoSlayer

Copy link
Copy Markdown
Contributor Author

Milestone: every FALSE claim across all 167 audited pages is now fixed (build green after each batch, branch fix/sweep-4).

This spanned ~62 loop iterations and covered invalid/fictional CLI commands & flags, nonexistent SDK methods (SendFile, HTTPTransport, OpenEventStream, ListenSecure, Resolve, Address, wrong Dial/Connect arity), wrong Go/Python SDK APIs, fabricated statistics attributed to real papers (arXiv 2507.08616 / 2503.13657 / 2511.19113 / 2603.03753, Nature NETCONF speeds, googleblog "150 partners"→50, a 97.6% NAT figure misread), wrong RFC numbers (MLS RFC 9420 vs 9750; mTLS RFC 8705), wrong licenses (MIT→AGPL on 6 pages), broken/404 doc links (docs/SPEC.md, docs/ietf, examples/python_sdk), packet-header/layout errors, keepalive/retry/segment-size constants, app-store data drift + 9 wrong app descriptions, date mismatches, and fictional webhook/event names.

Three product fixes also shipped separately: web4 #366 (app_usage telemetry removed, set-mode cleanup) and skillinject #26 (skills-status dry-run).

Remaining: 43 pages with only unverifiable claims (marketing stats, unbenchmarked perf, third-party/vendor claims, anonymous quotes) — all flagged in the audit ledgers. The loop is now softening the ones that read as hard measured/cited fact. The site-wide editorial call (keep as marketing vs. caveat) is under "Needs user review" in audit/PROGRESS.md — if you have private data backing any figure, it can be restored as a cited fact.

Do not merge — per your instruction, you merge.

teovl and others added 4 commits July 11, 2026 02:20
- how-626: clustering 0.47 -> 0.373 (matches on-site social-structures
  paper, same fix as sociology blog); expected ~0.01 -> ~0.008
- preferential-attachment: remove false reliability-ranking mechanism
  (registry tracks no task-completion; member-tags get isn't ranked);
  mark hub-profile metrics illustrative

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- workflow: soften 'leading cause'->'common cause'; accept third-party
  ecosystem descriptions (SAGA/AgentAnycast/CORAL/arXiv)
- mutual-trust: fix datePublished 2026-05-03->05-06; accept academic
  trust-model literature summaries
- decentralized-comm: no edits (97.6% stated correctly); accept

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 500.astro: 'We've been notified' -> removed (static site, no error
  monitoring wired)
- ai-agent-app-store: '243k+' -> 'hundreds of thousands' (drifting stat)
- 5 zero-flag docs pages + press/setups/index/build-an-agent-app: accept
- aup rate limits/sanctions + publisher-agreement revocation signals ->
  Needs user review (legal-commitment, unverified mechanisms)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Final softening/review pass over the unverifiable-only pages. Softened
the measured-fact overclaims (incl. a few effectively-false: 0.47
clustering, ranked-by-reliability search, static-500 'we've been
notified'), accepted the third-party/academic/marketing content that's
correctly flagged, and routed pricing/legal-commitment items to Needs
user review. All 167 ledgers resolved; npm run build green (345 pages).

Loop stopped per LOOP-PROMPT.md stop condition — remaining items are all
user decisions under 'Needs user review'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TeoSlayer

Copy link
Copy Markdown
Contributor Author

✅ Audit-fix loop COMPLETE — every ledger row resolved (167 pages)

npm run build green (345 pages) on every batch; branch fix/sweep-4.

FALSE claims (all fixed): fictional/invalid CLI commands & flags; nonexistent SDK methods (SendFile, HTTPTransport, OpenEventStream, ListenSecure, Resolve, Address, wrong Dial/Connect arity); wrong Go/Python SDK APIs; fabricated statistics attributed to real papers (arXiv 2507.08616 / 2503.13657 / 2511.19113 / 2603.03753, Nature NETCONF speeds, googleblog "150 partners"→50, a 97.6% NAT figure misread); wrong RFC numbers (MLS 9420 vs 9750; mTLS RFC 8705 is OAuth not TLS); wrong licenses (MIT→AGPL on 8 pages); broken/404 doc links (docs/SPEC.md, docs/ietf, examples/python_sdk); packet-header/layout errors; keepalive/retry/segment-size constants; app-store data drift + 9 wrong app descriptions; date mismatches; fictional webhook/event names; the daemon's non-existent NAT-type detection + a fabricated NAT-distribution table.

UNVERIFIABLE claims: softened where they read as hard measured/cited Pilot fact or asserted protocol behavior the source contradicts — several were effectively false (0.47 clustering coefficient → 0.373 per the on-site research paper; a "ranked-by-reliability" search mechanism the registry doesn't implement; a static 500 page claiming "we've been notified"; a drifting "243k+"). The rest — third-party/academic descriptions of real live sources, uncited industry framing, marketing hyperbole, anonymous pull-quotes — were reviewed and ACCEPTED (documented in each ledger) per the "flag what can't be validated" directive.

Product fixes shipped separately: web4 #366 (app_usage telemetry removed, set-mode cleanup), skillinject #26 (skills-status dry-run).

Everything remaining is a decision for you — see audit/PROGRESS.md → "Needs user review": pilot-mcp npm squat, private-node metadata leak, handshake-justification signing, gateway positioning, tags-not-indexed, per-session forward secrecy, install.sh --email, AUP rate limits + sanctions, publisher-agreement revocation signals, terms open-source clause, privacy SMS section, pilot-agents repo access, the boarding-post $200 pricing figure, and the site-wide editorial call on marketing stats (if you have private benchmarks for NAT%/RSS/latency, they can be restored as cited facts).

Do not merge — per your instruction, you merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants