Skip to content

docs: doc-wide under-claim audit — extends maturity review across all of docs/ - #371

Merged
Pal Lakatos-Toth (pallakatos) merged 1 commit into
mainfrom
docs/wide-underclaim-audit
May 31, 2026
Merged

Pal Lakatos-Toth (pallakatos) merged 1 commit into
mainfrom
docs/wide-underclaim-audit

Conversation

@pallakatos

Copy link
Copy Markdown
Collaborator

Summary

Companion to PR #370 (docs/internal/security-validations/2026-05-31-maturity-doc-vs-code.md). Same methodology, broader surface: every .md file under docs/.

User asked: "so considering this review the whole doc and see if there are any underclaimed thing..."

Headline: 8 files have under-claims, all rooted in the same pattern

File Under-claims found
docs/maturity.md (covered in PR #370)
docs/roadmap.md 4 entries already shipped or partially shipped
docs/security.md "Not yet enforced" callout has 2 stale entries
docs/compliance.md Inherits maturity.md under-claims
docs/api/crd-reference.md meshAuthBackend marked "scaffolded" — actually live on AKS
docs/architecture.md macOS Docker Desktop caveat missing, entra-auth-sidecar absent from diagrams
docs/use-cases.md Operator TUI undersold (1042 LOC, security panel, multi-cluster fetcher)
docs/use-cases/exec-brief-walkthrough.md Harness claim "docker scaffolded" stale — PR #367 verified docker 9/9

Most material findings

  1. docs/roadmap.md line 29 — "aggregate token budgets not yet metered" is wrong. inference-router/src/routes/inference.rs:295 (and the other two inference routes) call check_budget(policy.daily_tokens, policy.monthly_tokens). 641 LOC of budget.rs with UTC-calendar daily + monthly counters, on-disk persistence, HTTP 429 on overrun.

  2. docs/api/crd-reference.md line 694 — EntraAgentIdentity (scaffolded; see roadmap) is stale. Verified live on AKS: MESH_AUTH_BACKEND=EntraAgentIdentity, 4 unique per-sandbox PINNED_AGENT_IDENTITY_APP_ID values, entra-auth-sidecar issuing tokens scoped https://ai.azure.com/.default. PR feat(entra-agent-id): per-sandbox Entra Agent ID foundation #360 (Phase 6) shipped this 2 days ago.

  3. docs/security.md line 22-25 — drops 2 stale entries: "signed-OCI advisory" (actually authoritative when opted in), "attest scaffolded" (618 LOC of working CLI code).

  4. docs/architecture.md line 25 footnote — single-container macOS Docker Desktop caveat missing. Yesterday's validation (PR docs(security-validation): cross-platform validation report — AKS, local-k8s, docker #368, Finding Bump jsonwebtoken from 9.3.1 to 10.3.0 #1) confirmed UID 1000 reads the API key file due to Docker Desktop VirtioFS UID virtualization.

Total

  • 8 doc-wide status changes
  • 10 missing rows/sections
  • 1 missing CRD reference page (KarsAuthConfig)

Three suggested remediation PRs sketched in §H. No fixes applied — analysis only.

File added

docs/internal/security-validations/2026-05-31-docs-wide-underclaim-audit.md (239 lines)

… of docs/

Companion to 2026-05-31-maturity-doc-vs-code.md (PR #370). Same
methodology, broader surface: every .md file under docs/.

Findings (8 files affected):
  - docs/roadmap.md: 4 entries already shipped or partially shipped
  - docs/security.md: 'not yet enforced' callout has 2 stale entries
  - docs/compliance.md: inherits maturity.md under-claims
  - docs/api/crd-reference.md: meshAuthBackend 'scaffolded' is stale
    (EntraAgentIdentity wired end-to-end, verified live on AKS)
  - docs/architecture.md: macOS Docker Desktop caveat missing,
    entra-auth-sidecar absent from architecture diagrams
  - docs/use-cases.md: TUI undersold (1042 LOC, security panel, etc.)
  - docs/use-cases/exec-brief-walkthrough.md: harness claim outdated
    (docker now 9/9 as of PR #367)
  - docs/maturity.md: see PR #370

Total under-claim or outdated entries identified: 8 status changes +
10 missing rows/sections + 1 missing CRD reference page.

Three suggested remediation PRs sketched in §H:
  1. 'docs: refresh what ships today' (~150 LOC, low risk)
  2. 'docs: architecture diagrams + KarsAuthConfig CRD ref' (~300 LOC)
  3. 'docs: maturity.md restructure' (~250 LOC, ties into PR #370)

No fixes applied — analysis only, consistent with the validate-first,
fix-later pattern.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Pal Lakatos-Toth <pallakatos@github.com>
@github-actions

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@pallakatos
Pal Lakatos-Toth (pallakatos) merged commit 259fe9a into main May 31, 2026
32 checks passed
@pallakatos
Pal Lakatos-Toth (pallakatos) deleted the docs/wide-underclaim-audit branch May 31, 2026 06:48
Pal Lakatos-Toth (pallakatos) added a commit that referenced this pull request May 31, 2026
Following PRs #370 (maturity.md review) and #371 (doc-wide audit), this
extends the analysis specifically into the architecture/CRD/AGT-boundary
doc surface. Methodology: trace every claim about a CRD field, component,
deployment, provider variant, or guarantee to the actual code.

Findings:

A. CRDs (docs/api/crd-reference.md)
  - KarsSandbox spec table covers 8 fields; code has 17. 9 missing
    (agent, azureServices, resources, upstreamCompatibility, meshAuth,
    sigsAgentSandbox, upstreamSandboxRef, aiConformanceReference,
    customSecurityAttributes) — mostly Phase-6 Entra additions.
  - KarsSandbox.status missing agentIdentity (operators look this up
    via kubectl get karssandbox -o jsonpath='{.status.agentIdentity.appId}').
  - EntraAgentIdentity status caveats (line 684,694) stale (covered in
    PR #371 §D.1).

B. Architecture (docs/architecture.md)
  - §Components table lists 4 components; code has 6 first-class
    (missing mesh-plugin, conformance-runner, eval-corpus).
  - 'The nine CRDs' subheader should be 'nine workload CRDs' (text body
    correctly says 11 total).

C. AGT boundary (docs/architecture/agt-boundary.md) — MOST OUTDATED:
  - §1 claims 'A2A AgentCard signing — until AGT ships'; but
    kars-a2a-core/src/card_signing.rs is 494 LOC of working Ed25519
    JWS signer (sign_card + verify_card + TrustedKeys).
  - §2 provider variant 'AgtRustSdk' doesn't exist in code (it's 'Agt').
  - §3 'KarsSandbox.spec.agt.outageMode' field doesn't exist.
  - §4 'kars never builds a standalone audit chain' — but
    inference-router/src/audit/merkle.rs exists (library-only Merkle
    anchoring). Needs footnote.
  - §5 'kars always builds' list omits 7 VAPs, AP2 trust/ledger,
    Phase 6 Entra Agent ID surface.

D. Architecture diagrams (docs/architecture-diagrams.md)
  - §7 CRD diagram shows 9 workload CRDs; doc says 'the nine CRDs'
    but cluster has 11 (missing KarsAuthConfig + KarsPairing).
  - §8 cluster topology mermaid omits entra-auth-sidecar despite
    being live in every AKS cluster post-PR #360.
  - §8 shows a2a-gateway in kars-system but it's not deployed by
    default (needs gating or removal).
  - §6 control plane diagram represents controller as single box; code
    has 11 separate reconciler modules.

E. A2A gateway (docs/architecture/a2a-gateway.md)
  - 8445 listener config-only — accurately disclosed ✅
  - Known limitations should drop AP2 if listed (AP2 IS wired).

Total: 16 actionable findings; 2 suggested doc-only PRs sketched in §G.

No fixes applied — analysis only, per the established validate-first
pattern.

File: docs/internal/security-validations/2026-05-31-crd-arch-agtboundary-deep-audit.md
(21227 chars, 250 lines).

Signed-off-by: Pal Lakatos-Toth <pallakatos@github.com>
Co-authored-by: Pal Lakatos-Toth <pallakatos@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

1 participant