docs(cloud security): the consolidated Code Scanning docs — supersedes #355, #360, #361 - #362
Draft
maximelb wants to merge 2 commits into
Draft
docs(cloud security): the consolidated Code Scanning docs — supersedes #355, #360, #361#362maximelb wants to merge 2 commits into
maximelb wants to merge 2 commits into
Conversation
Consolidates the four in-flight code-lane documentation branches (#355 code lane, #357 alert permissions — already merged, #360 bring-your-own scanner, #361 IDE/MCP) into one page set, and reconciles every claim against the shipped code rather than against the plan each branch was written from. - `cloud-security/code-scanning.md` — one setup path (Contents: Read, the optional alert permissions, the opt-in write App with its manifest and the exact permission union, the webhook adapter and both shipped D&R recipes), the scanners and their finding classes, BYO ingest + local/CI scanner + an Actions recipe, pull-request checks and gating, AutoFix with the npm/go lockfile limitation stated as it ships, free-tier limits for repositories AND container images, the two code compliance catalogs and what "NOT_ASSESSED — reason" means, and a security section on what leaves the repository. - `cloud-security/mcp.md` — the MCP tool surface, with autofix documented as the shipped tool rather than the stub. - `provider-setup/github.md` — the Contents row with its preflight id, and a pointer to the separate write App. - `findings.md`, `compliance.md`, `providers.md`, `mkdocs.yml` — the code classes, the two new frameworks, the connector paragraph, the nav. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Aug 27, 2026
lcbill
previously approved these changes
Aug 27, 2026
…two new pages Every command on the page was run against the CLI's own source rather than read. Seven of them do not work as written: - 'finding list --finding-class' is '--class'. The sibling CLI page already spells it correctly, so the page contradicted a shipped page. - The Actions recipe's auth step invented two things: there is no top-level 'limacharlie login' (the group is 'auth') and no '--alias'. Copy-pasted, the workflow dies before it scans. Deliberately NOT switched to a named environment either, because the following step would then resolve 'default' and fail one line later. - Local secret scanning is REFUSED, not off by default. '--scanners sca,iac,secrets' raises; the page framed it as a choice, and mcp.md in this same PR already said it correctly. Two new pages disagreeing about the same behaviour is worse than either being wrong alone. - The webhook heredoc is unquoted and referenced OID and INSTALLATION_KEY without defining them, so a reader writes a cloud_sensor record with empty identity fields - and the block generates SECRET on the line above, which sets the expectation that it is self-contained. - image_sources is a list; it appeared twice as a bare scalar in value-naming position, which unmarshals to an opaque error. - The 'cloudsec code' group is newer than any published CLI release, so a reader who installs and follows the page gets 'No such command'. Says so where the first command appears. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
lcbill
approved these changes
Aug 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft, and it stays a draft — this repo is public and the code lane is not
announced. It supersedes four in-flight branches; it is here so the docs round
is reviewable as one thing rather than as a stack.
What this replaces
mcp.md, with the autofix tool correctedAll three open ones are left open with a comment pointing here; closing them is
yours.
Where the branches and the code disagreed
Every claim was checked against
legion_cloudsec_host/docs/CODE-LANE.md,go-cloudsec/docs/API-CONTRACT.md, the hive schema and the tracker rows. Thecode won each time. Nine differences, worth reading before approving:
unshipped. It landed with a curated CWE-mapped rule pack; it is off by
default in the policy, which is a different statement, and the page makes it.
adapter, the shipped D&R recipe and the debounce are documented.
App. docs(code-scanning): bring your own scanner (P2.2) — HOLD OPEN #360 said they "need write access, which the read-only connector does
not have and will not gain" — the second half is right and load-bearing, the
conclusion was not.
the table rather than implied.
severity_floordoes not filter. Both branches said it "drops codefindings below this severity". It is validated, stored and composed; nothing
applies it yet. Now carries an explicit note.
scan_statusreadsunknownfor every repository today — theper-repository scan props live on the lane's own status document and are not
merged onto the inventory row, so the field reports
repo_scan_props_not_projected. Documented as a known state with theauthoritative alternative (
code status) named, rather than described as ifit worked.
run over a repository), not five of ten.
image_sources: ["registries"]is accepted and not enumerated. Named in"Not yet available" instead of listed as a working option.
sast_ruleset: custom:<ref>is accepted by the policy validator andrefused by the scanner — and because the scan then reports an error, that
repository's unrelated findings stop being swept. Documented as a thing not
to set, with the consequence.
What the review then caught
Every command on the page was run against the CLI's own source rather than read,
which found seven copy-paste failures — all fixed in the second commit:
--finding-classis--class; the Actions recipe inventedlimacharlie loginand
--alias(the group isauth, and there is no alias option), so theworkflow died before it scanned; local secret scanning is refused, not "off
by default", which the MCP page in this same PR already said correctly; the
webhook heredoc used
$OIDand$INSTALLATION_KEYwithout defining them, in anunquoted heredoc, so a reader wrote an empty identity;
image_sourcesis a listand appeared twice as a bare scalar.
Two things that gate merging, beyond the rollout
mcp.mddocuments tools that do not exist yet.lc-mcp-serverEnhance billing report with per-tenant SKU breakdown and auto-browser launch #58, Add untask action documentation to Reliable Tasking extension #59and Add Velociraptor DFIR functions to lc-essentials plugin #60 are open and unmerged — none of the four
cloudsec_code_*tools is onthat repo's master. Adding
- IDE & MCP: cloud-security/mcp.mdtomkdocs.ymlis publication, so if this merges first, drop that nav line and the two
links to the page.
cloudsec codegroup. It is newerthan the newest tag, so every
limacharlie cloudsec code …line here answersNo such commandto a reader who installs today. Apython-limacharlierelease is a prerequisite; the page says to upgrade, which is only true once
one exists.
Both are tracked as go-cloudsec roadmap 15 §10 items 35b and 36 (PR
go-cloudsec#240).
Deliberately not here
other source-control platforms are described by what they do. One consequence:
the
sast_rulesetalternative pack value is not documented — only the curateddefault and the fact that
custom:does not work.tutorial and carries only the record shape it needs; none of the four branches
touched that page either.
production rollout.