Skip to content

Add "netlify-website-optimizer" check#20

Merged
Android-studio61 merged 1 commit into
mainfrom
add-check/netlify-website-optimizer
May 8, 2026
Merged

Add "netlify-website-optimizer" check#20
Android-studio61 merged 1 commit into
mainfrom
add-check/netlify-website-optimizer

Conversation

@continue

@continue continue Bot commented May 8, 2026

Copy link
Copy Markdown

Adds the netlify-website-optimizer check to this repository.

This check will be synced from .continue/checks/netlify-website-optimizer.md and can be customized by editing the file directly.


Opened via Continue Hub


Summary by cubic

Adds the netlify-website-optimizer check to audit Netlify preview vs production deploys for bundle size regressions and common perf misconfigurations. Blocks merges on critical issues and posts concise reports with recommendations.

  • New Features
    • Quick triage: <10% change auto-approve, 10–50% request review, >50% block.
    • Compares JS/CSS/image totals between production and preview deploys via netlify/netlify-mcp.
    • Flags config problems: disabled minification/tree-shaking, production sourcemaps, missing cache headers.
    • Provides ready-to-use report templates for minor, significant, and critical changes.
    • Blocking criteria: >50% bundle increase or any critical config issue.
    • Customizable via .continue/checks/netlify-website-optimizer.md.

Written for commit 225754c. Summary will update on new commits.

@vercel

vercel Bot commented May 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
adk-docs Error Error May 8, 2026 6:56am

Request Review

@cr-gpt

cr-gpt Bot commented May 8, 2026

Copy link
Copy Markdown

Seems you are using me but didn't get OPENAI_API_KEY seted in Variables/Secrets for this repo. you could follow readme for more information

@Android-studio61 Android-studio61 merged commit 9c5a673 into main May 8, 2026
4 of 11 checks passed
@sonarqubecloud

sonarqubecloud Bot commented May 8, 2026

Copy link
Copy Markdown

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

AI Reviewer: first review requested successfully. AI can make mistakes. Always validate suggestions.

Run reviewer

TIP This summary will be updated as you push new changes.

@codacy-production codacy-production Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

The PR introduces a useful LLM-based agent for auditing Netlify deploys, and Codacy reports that the changes are up to standards. However, there are a few critical issues that must be addressed before merging:

  • Startup Failure: The model identifier anthropic/claude-sonnet-4-5 is invalid, which will cause the check to fail immediately upon initialization.
  • Functional Gaps: The current asset discovery logic fails to identify CSS files (which use href) and images. This directly contradicts the acceptance criteria for calculating total bundle sizes including images.
  • Tooling Incompatibility: There is a mismatch in expected MCP tool naming (snake_case vs kebab-case) and a non-actionable instruction for the agent to 'wait', which may lead to inefficient execution loops.

Test suggestions

  • Verify triage logic: PRs with <10% size increase are marked as APPROVED.
  • Verify asset discovery: Correctly identify JS and CSS assets from the HTML source.
  • Verify image discovery: Correctly identify image assets (.png, .jpg, etc.) for size comparison.
  • Verify blocking logic: PRs with >50% size increase or 'minify: false' are marked as BLOCKED.
  • Verify configuration audit: Correctly identify missing or 'no-cache' headers in netlify.toml.
  • Verify discovery of CSS assets linked via 'href' attributes in tags.
Prompt proposal for missing tests
Consider implementing these tests if applicable:
1. Verify image discovery: Correctly identify image assets (.png, .jpg, etc.) for size comparison.
2. Verify discovery of CSS assets linked via 'href' attributes in <link> tags.
Low confidence findings
  • The current strategy of using 'curl -sI' for every individual asset discovered may be inefficient for websites with a high volume of assets. While functional for small sites, consider if the Netlify MCP provides a more efficient way to fetch metadata for multiple files in a single call.

TIP Improve review quality by adding custom instructions
TIP How was this review? Give us feedback

```bash
# Get HTML and extract assets
curl -s '<deploy-url>' > index.html
grep -oP 'src="[^"]+(\.js|\.css)"' index.html

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 HIGH RISK

The asset extraction logic needs to be significantly more robust to meet the PR requirements. It currently misses CSS files (referenced via href), images (which are required for the bundle size audit), and assets with query parameters (e.g., main.js?v=1.2).

Suggested change
grep -oP 'src="[^"]+(\.js|\.css)"' index.html
grep -oP '(src|href)=["\'][^"\']+\.(js|css|png|jpg|jpeg|svg|webp)(\?[^"\']*)?["\']' index.html

@@ -0,0 +1,132 @@
---
name: netlify-website-optimizer
model: anthropic/claude-sonnet-4-5

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 HIGH RISK

The model identifier anthropic/claude-sonnet-4-5 is invalid. The current available models are claude-3-5-sonnet or claude-3-opus.

Suggested change
model: anthropic/claude-sonnet-4-5
model: anthropic/claude-3-5-sonnet


Extract: `ssl_url`, `branch`, `commit_ref`, `state`, `published_at`

If preview not ready: Wait 30s, check again (max 5 mins), inform user.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚪ LOW RISK

Suggestion: The LLM agent does not have a native 'sleep' or 'wait' utility. Instructing it to wait 30s may cause it to enter a busy-loop or hallucinate a tool. Suggest instructing the agent to inform the user that the build is in progress and prompt for a manual retry.

pull Bot pushed a commit that referenced this pull request May 19, 2026
* Add Kotlin to hero / front page

* Add quickstart page for Kotlin

* Complete Kotlin quickstart guide and fix hero code sample (#2)

* Replace GitHub repo links with language icons in header (#3)

* Fix header icon FOUC and homepage font weight regression (#4)

* Testing staging pipeline

* Revert test edit (for staging pipeline)

* Update language icon tooltips to indicate GitHub destination (#5)

* Add link to ADK Kotlin release notes (#7)

* Initial commit of ADK Kotlin API reference docs (#6)

* Add script to generate ADK Kotlin API reference docs (#8)

* Update links and link checker ignore list (temporarily) (#9)

* Add ADK Kotlin for Android getting started guide to Advanced setup page (#10)

* Add advanced setup page with steps to "Use ADK Kotlin in Android projects"

* Update temp link checker rules

* Add placeholder folder for adk-samples (#13)

* adding linter/compilation checks for kotlin snippets (#12)

* adding linter/compilation checks for kotlin snippets

* Add Kotlin validation scripts

* Initial commit of Kotlin sample agents for adk-samples (#15)

* Adding kotlin snippet for llm agents (#16)

* Adding kotlin snippets to  Events (#17)

* Pull changes to docs/events/index.md from glaforge-kotlin-snippets

* fixing kotlin event timestamp and longRunningToolIds

* Fix language tags (#19)

* Fix language tags

* Update

* Fix wrapping

* Fix wrapping (again)

* Fix wrapping/format

* Fix language tag on integration page

* Enable check_paths in PyMdown Snippets Extension to make the build fail if a snippet can't be found (#20)

* Update mkdocs config (#21)

* Fix broken links, update URLs to adk.dev, and improve (temp) lychee config (#22)

* Add Kotlin/maven badge to README (#23)

* Adding Kotlin snippets for artifacts  (#18)

* Pull Kotlin snippets for artifacts from glaforge-kotlin-snippets

* Add comprehensive Kotlin snippets for artifacts

* Refactor artifacts documentation to use external Kotlin snippets

* Update Kotlin model to gemini-flash-latest

* Fix GCS initialization in Kotlin artifact snippet

* afixi failing test with capital-agent added to files_to_check

* Fix snippet label syntax for MkDocs build

* Configure proper Gradle project for Kotlin snippets and fix dependencies

* Add KSP support and generated sources to Kotlin snippets build

* fixing capital_agent turnComplete

* Fix syntax error in build.gradle.kts by removing invalid placeholders (#25)

* Adding Kotlin snippets to google-gemini.md (#27)

Pulling kotlin changes to google-gemini.md from glaforge-kotlin-snippets

* Add a warning about not adding an api key to production code. (#28)

* Add a warning about not adding an api key to production code.

* Update note

---------

Co-authored-by: Kristopher Overholt <koverholt@google.com>

* Add ADK Demo App sample showcasing Gemini-powered agents (#29)

This sample demonstrates how to use the Google ADK (Agent Development Kit) in an Android application to create a chat interface powered by a Gemini-based "Fun Facts" agent. The implementation features:
*   Integration with the Kotlin ADK core and processor libraries.
*   A `FunFactsAgent` defined using `LlmAgent` and the Gemini model.
*   A `ChatViewModel` utilizing `InMemoryRunner` for asynchronous message streaming.
*   A modern UI built with Jetpack Compose and Material 3.
*   Build configuration logic for secure API key management via environment variables or `local.properties`.

* Update Kotlin docs and samples to align with adk-kotlin API changes (#30)

Rename GeminiModel to Gemini, @AdkTool/@AdkParam to @Tool/@Param,
adkTools() to generatedTools(), replace DebugRunner with InMemoryRunner,
fix AgentLoader import path, use SingleAgentLoader, bump Kotlin to
2.3.21 and KSP to 2.3.7, and update Android minSdk from 24 to 26.

* adding kotlin info to READMEs (#14)

* Reorganize Android sample agent and add READMEs (#31)

* Move Android sample agent

* Update repo README, add Android README, update sample agent README

* Minor edit to language support tags (#32)

* Remove blog post link (#33)

Will re-add after it's published

* Remove examples link (#34)

* Adding Kotlin snippets for Sessions docs (#26)

* initial kotlins snippets additions to sessions docs

* Updating memory docs with kotlin snippets

* Adding kotlin snippets to session state docs.

* update model to gemini-flash-latest

* sessions examples clean-up

* fixing sessions snippet markers

* adding kotlin session snippets to files to test

* adding callback to memory_example

* Fixing capital agent snippet  (#35)

Fixing file name
Updating adkTool > Tool
Updating GeminiModel > Gemini

* Adding kotlin snippets for tools docs (#36)

* adding function tool kotlin snippets

* adding function_tools snippets to files to test

* Adding kotlin snippets to observability docs (#37)

* initial kotlin observability updates

* adding observability snippets to file check (#38)

* Adding Kotlin snippets to Callbacks docs (#39)

*  kotlin callbacks snippets

* adding callbacks snippets to file check

* Align Kotlin and KSP versions with published 0.1.0 artifacts (#40)

* switch CLI entry points from InMemoryRunner to ReplRunner (#41)

* Switch CLI entry points from InMemoryRunner to ReplRunner

* Fix wording

* Update API reference docs for Kotlin, 2026-05-18 (#42)

* Remove ADK on Android note until published (#43)

* Update Kotlin code samples (#44)

* Rename GeminiModel to Gemini in Kotlin snippets and docs

* Remove broken SessionKey call and use sessionId directly in AgentTool snippet

* Rewrite Go hero snippet to use llmagent API

* Use isFinalResponse with safe access in CapitalAgent snippet

* Use Role.USER constant instead of raw string in SetupExample

* Use full semver v0.1.0 in Kotlin language support tags

* Remove Android setup steps, moving to new property (#45)

* Tutorial Kotlin agent (#46)

* Adding multi-tool-agent snippet and updating tutorial
* Fixing Go language order on tutorial page
* adding multi tool agent example to files to test

* Inline Kotlin get-started code sample

* Kotlin Multi agents snippets (#47)

* Multi-agent kotlin snippets

* Fixing docs tags in multiagent example

* Fix Kotlin language support tags, code samples, and google-gemini.md cleanup (#48)

* Add Kotlin v0.1.0 to language support tags across docs

* Fix MultiToolAgent.kt model string and argument style

* Update MultiAgentExample.kt to use gemini-flash-latest model string

* Fix google-gemini.md: add Kotlin sample, remove unsupported Java tabs

* Remove explicit apiKey from CallbackBasic.kt for consistency

* Standardize Gemini() constructor to use named args in all snippets

* Remove adk-samples directory (moved to google/adk-samples#1969)

* Remove adk-samples directory (moved to google/adk-samples#1969) (#49)

* Update API reference docs for ADK Kotlin 0.1.0 (google#50)

* Remove adk-samples directory (moved to google/adk-samples#1969)

* Update API reference docs for ADK Kotlin 0.1.0

* Remove kotlin lycheeignore config (google#51)

* Remove adk-samples directory (moved to google/adk-samples#1969)

* Remove Kotlin .lycheeignore config links

---------

Co-authored-by: Toni Klopfenstein <2359976+ToniCorinne@users.noreply.github.com>
Co-authored-by: Jolanda Verhoef <JolandaVerhoef@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