fix(security): enforce discovery and analysis completeness - #410
Conversation
rng1995
left a comment
There was a problem hiding this comment.
Requesting changes because the requested semantic pass can still be skipped entirely while this PR reports it as used and complete, producing an install-safe verdict. The current-head end-to-end repro executes zero semantic calls but returns llm_used=True, scan_mode=static+llm, recommendation=SAFE, and safe_to_install=True.
|
Powered by Codex: correction after a five-lens GPT-5.6-sol council on current head
This supersedes the prior mergeable assessment. New, non-duplicate findings:
flowchart LR
A[".hidden-skill/SKILL.md"] --> B["dot-child discovery"]
B --> C["recursive re-root"]
C --> D["path becomes SKILL.md"]
D --> E["llm_file_cache"]
E --> F["external semantic provider"]
New anchored review: #410 (review) Recommended action: do not merge until hidden/local-only provenance survives recursive re-rooting and semantic incompleteness is source-aware and canonical. |
|
Fixes pushed. please review and confirm. |
mohgupta-ship-it
left a comment
There was a problem hiding this comment.
Powered by Codex: five-lens GPT-5.6-sol delta council — REQUEST CHANGES on 1b252b5. The prior mergeable assessment is superseded. The new dot-child path crosses the documented hidden-content/LLM trust boundary, and semantic completeness is inconsistent across transitive reporting and the CLI gate.
rng1995
left a comment
There was a problem hiding this comment.
[SkillSpector Review]
Re-review: the original empty-telemetry blocker is addressed and its focused regressions pass, but the current head still crosses the hidden-content trust boundary when a dot-prefixed child is re-rooted. It also treats two independently complete root/child semantic scopes as incomplete—I reproduced (True, False)—and does not project semantic failure into canonical analysis_completeness. Those current blockers are already anchored in live threads, and the branch conflicts with main.
Signed-off-by: Nir Paz <npaz@nvidia.com>
Signed-off-by: Nir Paz <npaz@nvidia.com>
Signed-off-by: Nir Paz <npaz@nvidia.com>
Signed-off-by: Nir Paz <npaz@nvidia.com>
Signed-off-by: Nir Paz <npaz@nvidia.com>
Signed-off-by: Nir Paz <npaz@nvidia.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
1c077a0 to
32695c2
Compare
|
Implemented and validated the complete review pass in Architectural fixes:
Validation:
All four review threads received specific fix/test replies and were resolved. |
rng1995
left a comment
There was a problem hiding this comment.
[SkillSpector Review]
Re-reviewed current head 32695c2382b8d7158d1c543277f366583b85109e after its rebase onto current main. The prior blockers are resolved: semantic analyzers remain credential-independent at graph construction; empty or malformed runtime telemetry fails closed; dot-child local-only provenance is preserved through recursive and transitive scans without entering provider or meta-analysis payloads; root and child telemetry is source-bound and validated independently; and unmet requested semantic work is projected into the canonical completeness model consumed by JSON, SARIF, CLI, and MCP install decisions.
The focused regressions cover privacy-mode cache isolation, hidden-child provider exclusion, root/child telemetry, missing telemetry, CLI exit behavior, and MCP safety decisions. All hosted checks pass and no unresolved review threads remain.
rng1995
left a comment
There was a problem hiding this comment.
[SkillSpector Review]
Re-reviewed current head 1c685c4e1a3c73d09013afde1bd12ea396d3ddf9 after the automated main synchronization. This is a clean merge of approved head 32695c2382b8d7158d1c543277f366583b85109e with f161b700d83d1e685f501c525d4cf7a8a49bd82e (#451); the only new content is #451's reference-matcher change and its regressions, with no conflict-resolution edits. The PR-owned completeness/privacy delta is unchanged, so the prior resolution assessment remains valid: local-only provenance and provider isolation, source-bound semantic telemetry, fail-closed runtime accounting, and canonical CLI/MCP/report completeness gates remain intact. No unresolved review threads remain.
Approval applies to this exact head. It is not merge-ready yet: CI run 34934104937 concluded action_required without producing any checks, and another reviewer's active Changes Requested state remains.
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
Dismissed after exact-head re-review at c71d341. The hidden/local-only provider boundary, root/child source-bound semantic telemetry, and canonical fail-closed completeness contract are all preserved. The main-sync conflict was resolved by composing local-only exclusion with bounded truncated public-source handling, with an interaction regression. All 4 threads are resolved and the full exact-head CI suite is green.
rng1995
left a comment
There was a problem hiding this comment.
[SkillSpector Review]
Approved exact head c71d3414cb41120a92e9ead2af4a02744cb055a1 after independent re-review of the security-discovery completeness changes and the main-sync conflict resolution. All 4 review threads are resolved. Local-only/hidden content remains excluded from provider payloads; root and child semantic telemetry is source-bound and fails closed; incomplete semantic execution flows into the canonical report, CLI, and MCP safety gates. The conflict resolution correctly composes that privacy boundary with bounded handling of truncated public source, and its interaction regression passes.
The focused 457-test PR suite plus merge-interaction tests, Ruff, format, and diff checks passed, and the complete exact-head hosted CI suite is green. No blocking defect remains.
Signed-off-by: Narendran Raghavan <nraghavan@nvidia.com>
Resolve conflict in mcp_server.py between our reference_caveat_only exemption (partially_inspected + REFERENCE_MISSING) and upstream's analysis_requirement_met LLM-completeness gate from NVIDIA#410 — both conditions are now required for safe_to_install. Signed-off-by: goodhee <goodhee.dev@gmail.com>
Summary
Validation
git diff --check