Appearance
External Validation Report
Second checked-in external validation summary for
lintaiafter Phase 1 precision hardening. Cohort source of truth lives in validation/external-repos/repo-shortlist.toml, current results in validation/external-repos/ledger.toml, and wave 1 baseline in validation/external-repos/archive/wave1-ledger.toml.
Cohort Composition
The current cohort still contains 24 public repositories:
10mcp-focused repos6cursor_plugin-focused repos8skills-focused repos
Overall Counts
Current checked-in wave 2 results:
24repos evaluated110total findings46stable findings64preview findings0runtime parser errors3diagnostics
Hybrid Scope Expansion Results
Current wave inventory for the newly expanded JSON lanes:
- repos with root
mcp.json:5 - repos with
.mcp.json:3 - repos with
.cursor/mcp.json:0 - repos with
.vscode/mcp.json:0 - repos with
.roo/mcp.json:1 - repos with
.kiro/settings/mcp.json:1 - repos with
gemini-extension.json:0 - repos with
gemini.settings.json:0 - repos with
.gemini/settings.json:0 - repos with
vscode.settings.json:0 - repos with
.claude/mcp/*.json:1 - repos with Docker-based MCP launch configs:
0 - MCP findings from expanded client-config coverage (
SEC301-SEC331,SEC337-SEC339,SEC346):4 - findings from
SEC336:0 - findings from
SEC337-SEC339,SEC346:0 - AI-native markdown preview findings:
SEC313fenced pipe-to-shell examples:1SEC335metadata-service access examples:1SEC347mutable MCP setup launcher examples:3- CLI-form repo hits:
2 - config-snippet-form repo hits:
3
- CLI-form repo hits:
SEC348mutable Docker registry-image examples:2SEC349Docker host-escape or privileged runtime examples:0SEC350untrusted-input instruction-promotion examples:0SEC351approval-bypass instruction examples:0SEC352unscoped Bash tool grants in frontmatter:0SEC353Copilot instruction files above 4000 chars:0SEC354path-specific Copilot instructions missingapplyTo:0SEC355wildcard tool grants in frontmatter:0SEC356plugin agent frontmatterpermissionMode:0SEC357plugin agent frontmatterhooks:0SEC358plugin agent frontmattermcpServers:0SEC359Cursor rule non-booleanalwaysApply:0SEC360Cursor rule non-sequenceglobs:0SEC361Claude settings missing$schema:0SEC362Claude settings wildcardBash(*)permissions:0SEC363Claude settings home-directory hook commands:0SEC364Claude settingsbypassPermissionsdefault mode:0SEC365Claude settings non-HTTPSallowedHttpHookUrls:0SEC366Claude settings dangerous host literals inallowedHttpHookUrls:0SEC367Claude settings wildcardWebFetch(*)permissions:0SEC368Claude settings repo-external absolute hook paths:0SEC369Claude settings wildcardWrite(*)permissions:0SEC370path-specific Copilot instructions using the wrong suffix:0SEC371path-specific Copilot instructions with invalidapplyTo:0SEC377path-specific Copilot instructions with invalidapplyToglobs:0SEC378Cursor rules with redundantglobsalongsidealwaysApply: true:0SEC379Cursor rules with unknown frontmatter keys:0SEC380Cursor rules missingdescription:0SEC381Claude settings command hooks missingtimeout:0SEC382Claude settingsmatcheron unsupported hook events:0SEC383Claude settings missingmatcheron matcher-capable hook events:0SEC384Claude settings bareWebSearchpermissions:0SEC385Claude settings sharedgit pushpermissions:0SEC386Claude settings sharedgit checkout:*permissions:0SEC387Claude settings sharedgit commit:*permissions:0SEC388Claude settings sharedgit stash:*permissions:0SEC394MCP configs with wildcardautoApprove:0SEC395MCP configs withautoApproveTools: true:0SEC396MCP configs withtrustTools: true:0SEC397MCP configs with sandbox disabled:0SEC398MCP configs with wildcard capabilities:0SEC399Claude settings sharedBash(npx ...)permissions:0SEC400Claude settings sharedenabledMcpjsonServers:0SEC405Claude settings shared package installation permissions:0SEC406Claude settings sharedgit addpermissions:0SEC407Claude settings sharedgit clonepermissions:0SEC372Claude settings wildcardRead(*)permissions:0SEC373Claude settings wildcardEdit(*)permissions:0SEC374Claude settings wildcardWebSearch(*)permissions:0SEC375Claude settings wildcardGlob(*)permissions:0SEC376Claude settings wildcardGrep(*)permissions:0- current
SEC347usefulness is being driven mainly by MCP config snippets
- repos with
tool_descriptor_json:3 - findings from
SEC314-SEC318:0 - repos where new MCP client-config variants existed only under fixture-like paths:
1 - repos where Docker-based MCP launch existed only under fixture-like client-config variants:
0 - no external hits were produced yet from Docker-based MCP launch hardening on the canonical cohort
- no non-fixture external
Stablehits were produced yet on committed tool-descriptor JSON SEC348repo-level preview hits on the canonical cohort:zebbern/claude-code-guide:1preview finding(s) viaSEC348zechenzhangAGI/AI-research-SKILLs:1preview finding(s) viaSEC348
SEC349produced no repo-level preview hits yet on the canonical cohortSEC350produced no repo-level preview hits yet on the canonical cohortSEC351produced no repo-level preview hits yet on the canonical cohortSEC352produced no repo-level preview hits yet on the canonical cohortSEC353produced no repo-level preview hits yet on the canonical cohortSEC354produced no repo-level preview hits yet on the canonical cohortSEC355produced no repo-level preview hits yet on the canonical cohortSEC356produced no repo-level preview hits yet on the canonical cohortSEC357produced no repo-level preview hits yet on the canonical cohortSEC358produced no repo-level preview hits yet on the canonical cohortSEC359produced no repo-level preview hits yet on the canonical cohortSEC360produced no repo-level preview hits yet on the canonical cohortSEC361produced no repo-level preview hits yet on the canonical cohortSEC362produced no repo-level preview hits yet on the canonical cohortSEC363produced no repo-level preview hits yet on the canonical cohortSEC364produced no repo-level preview hits yet on the canonical cohortSEC365produced no repo-level preview hits yet on the canonical cohortSEC366produced no repo-level preview hits yet on the canonical cohortSEC367produced no repo-level preview hits yet on the canonical cohortSEC368produced no repo-level preview hits yet on the canonical cohortSEC369produced no repo-level preview hits yet on the canonical cohortSEC370produced no repo-level preview hits yet on the canonical cohortSEC371produced no repo-level preview hits yet on the canonical cohortSEC372produced no repo-level preview hits yet on the canonical cohortSEC373produced no repo-level preview hits yet on the canonical cohortSEC374produced no repo-level preview hits yet on the canonical cohortSEC375produced no repo-level preview hits yet on the canonical cohortSEC376produced no repo-level preview hits yet on the canonical cohortSEC377produced no repo-level preview hits yet on the canonical cohortSEC378produced no repo-level preview hits yet on the canonical cohortSEC379produced no repo-level preview hits yet on the canonical cohortSEC380produced no repo-level preview hits yet on the canonical cohortSEC381produced no repo-level preview hits yet on the canonical cohortSEC382produced no repo-level preview hits yet on the canonical cohortSEC383produced no repo-level preview hits yet on the canonical cohortSEC384produced no repo-level preview hits yet on the canonical cohortSEC385produced no repo-level preview hits yet on the canonical cohortSEC386produced no repo-level preview hits yet on the canonical cohortSEC387produced no repo-level preview hits yet on the canonical cohortSEC388produced no repo-level preview hits yet on the canonical cohortSEC399produced no repo-level preview hits yet on the canonical cohortSEC400produced no repo-level preview hits yet on the canonical cohortSEC405produced no repo-level preview hits yet on the canonical cohortSEC406produced no repo-level preview hits yet on the canonical cohortSEC407produced no repo-level preview hits yet on the canonical cohortSEC394produced no repo-level stable hits yet on the canonical cohortSEC395produced no repo-level stable hits yet on the canonical cohortSEC396produced no repo-level stable hits yet on the canonical cohortSEC397produced no repo-level stable hits yet on the canonical cohortSEC398produced no repo-level stable hits yet on the canonical cohort- fixture/testdata/example suppression stayed active for the newly added MCP client-config variants and did not create a fake usefulness signal from fixture-like paths
Delta From Previous Wave
- stable findings:
0->46 - preview findings:
1->64 - runtime parser errors:
2->0 - diagnostics:
0->3 - repo verdict changes:
cursor/plugins:useful_but_noisy->strong_fitdatadog-labs/cursor-plugin:useful_but_noisy->strong_fitEmmraan/agent-skills:useful_but_noisy->strong_fit
Stable Precision Summary
Wave 2 surfaced Stable findings and requires another precision pass before beta.
Preview Usefulness Summary
Wave 2 produced 64 preview finding(s).
datadog-labs/cursor-plugin:improvedcontainers/kubernetes-mcp-server:3preview finding(s) viaSEC328modelcontextprotocol/registry:10preview finding(s) viaSEC328airmcp-com/mcp-standards:9preview finding(s) viaSEC328,SEC347olostep/olostep-cursor-plugin:2preview finding(s) viaSEC347agent-sh/agnix:27preview finding(s) viaSEC325,SEC328zebbern/claude-code-guide:8preview finding(s) viaSEC313,SEC335,SEC348zechenzhangAGI/AI-research-SKILLs:5preview finding(s) viaSEC328,SEC347,SEC348
Runtime / Diagnostic Notes
cursor/plugins:improvedEmmraan/agent-skills:improved
Top FP Clusters
- No false-positive cluster observed in this wave.
- No false-positive cluster observed in this wave.
- No false-positive cluster observed in this wave.
Top FN Clusters
- No false-negative cluster observed in this wave.
- No false-negative cluster observed in this wave.
- No false-negative cluster observed in this wave.
Recommended Next Step
precision hardening
Rationale:
- this report is grounded in the current checked-in wave 2 ledger and archived wave 1 baseline
- the known Phase 1 follow-up repos are called out explicitly above
- one or more wave 2 signals still require another precision pass before beta