Skip to content

chore: agent DX improvements#458

Merged
AaronFeledy merged 9 commits into
mainfrom
chore/agent-dx
Apr 17, 2026
Merged

chore: agent DX improvements#458
AaronFeledy merged 9 commits into
mainfrom
chore/agent-dx

Conversation

@AaronFeledy
Copy link
Copy Markdown
Member

@AaronFeledy AaronFeledy commented Apr 14, 2026

Adds AGENTS.md and jsconfig.json to improve agent and editor DX.

  • AGENTS.md at repo root: commands, architecture, config, TypeScript migration pattern, gotchas
  • examples/AGENTS.md: Leia spec conventions and CI workflow guidance
  • jsconfig.json: enables checkJs across all source directories for JSDoc type validation
  • typescript + @types/lodash added as devDependencies
  • npm run typecheck / typecheck:full scripts for local type-checking via tsc --project jsconfig.json

Note

Low Risk
Primarily adds documentation and developer tooling (TypeScript-based checkJs) with no runtime behavior changes; main risk is new local typecheck noise or minor devDependency churn.

Overview
Improves contributor/agent and editor DX by adding repo guidance (AGENTS.md plus examples/AGENTS.md) and ignoring CLAUDE.md in .gitignore.

Introduces jsconfig.json with checkJs for JSDoc-based validation across source directories, adds typescript and @types/lodash as devDependencies, and wires up npm run typecheck / typecheck:full scripts to run tsc locally.

Reviewed by Cursor Bugbot for commit fa30718. Bugbot is set up for automated code reviews on this repo. Configure here.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 14, 2026

Deploy Preview for lando-core ready!

Name Link
🔨 Latest commit fa30718
🔍 Latest deploy log https://app.netlify.com/projects/lando-core/deploys/69e11365d7b70a0008d6c902
😎 Deploy Preview https://deploy-preview-458--lando-core.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 87 (🔴 down 4 from production)
Accessibility: 89 (no change from production)
Best Practices: 83 (no change from production)
SEO: 90 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

- adds typescript and @types/lodash as devDependencies
- adds allowJs, noEmit, skipLibCheck, ignoreDeprecations to jsconfig.json
- adds npm run typecheck (source errors only) and typecheck:full
- updates AGENTS.md with typecheck docs and consolidated gotchas
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Autofix Details

Bugbot Autofix prepared a fix for 1 of the 2 issues found in the latest run.

  • ✅ Fixed: jsconfig.json include omits key source directories and root files
    • Added missing source directories (app.js, index.js, bin/, experimental/, inits/, messages/, packages/) to jsconfig.json include array to match pkg.scripts.

Create PR

Or push these changes by commenting:

@cursor push 856c32ab5f
Preview (856c32ab5f)
diff --git a/jsconfig.json b/jsconfig.json
--- a/jsconfig.json
+++ b/jsconfig.json
@@ -11,10 +11,17 @@
     "resolveJsonModule": true
   },
   "include": [
+    "app.js",
+    "index.js",
+    "bin/**/*.js",
     "builders/**/*.js",
     "components/**/*.js",
+    "experimental/**/*.js",
     "hooks/**/*.js",
+    "inits/**/*.js",
     "lib/**/*.js",
+    "messages/**/*.js",
+    "packages/**/*.js",
     "plugins/**/*.js",
     "renderers/**/*.js",
     "sources/**/*.js",

You can send follow-ups to the cloud agent here.

Comment thread jsconfig.json
Comment thread jsconfig.json
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Postinstall script breaks npm install on Windows
    • Replaced POSIX-only commands with cross-platform Node.js script using child_process.execSync and fs.symlinkSync that gracefully handles errors with try/catch.

Create PR

Or push these changes by commenting:

@cursor push 8834b3038f
Preview (8834b3038f)
diff --git a/package.json b/package.json
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
     "all": true
   },
   "scripts": {
-    "postinstall": "command -v claude >/dev/null 2>&1 && ln -sf AGENTS.md CLAUDE.md || true",
+    "postinstall": "node -e \"try { require('child_process').execSync('claude --version', {stdio: 'ignore'}); require('fs').symlinkSync('AGENTS.md', 'CLAUDE.md', 'file'); } catch {}\"",
     "coverage": "nyc report --reporter=text-lcov | coveralls",
     "docs:build": "VPL_MVB_VERSION=$(git describe --tags --always --abbrev=1 --match=\"v[0-9].*\") vitepress build docs && npm run docs:rename-sitemap",
     "docs:dev": "VPL_BASE_URL=http://localhost:5173 VPL_MVB_VERSION=$(git describe --tags --always --abbrev=1 --match=\"v[0-9].*\") vitepress dev docs",

You can send follow-ups to the cloud agent here.

Comment thread package.json Outdated
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 2 total unresolved issues (including 1 from previous review).

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Typecheck script uses grep unavailable on Windows
    • Replaced grep command with cross-platform Node.js script that filters node_modules lines from TypeScript compiler output.

Create PR

Or push these changes by commenting:

@cursor push 78091d6151
Preview (78091d6151)
diff --git a/package.json b/package.json
--- a/package.json
+++ b/package.json
@@ -51,7 +51,7 @@
     "test:unit": "nyc --reporter=html --reporter=text mocha --timeout 5000 test/**/*.spec.js",
     "test:leia": "leia \"examples/**/README.md\" -c 'Destroy tests' --stdin",
     "test": "npm run lint && npm run test:unit",
-    "typecheck": "tsc --project jsconfig.json 2>&1 | grep -v '^node_modules/' || true",
+    "typecheck": "tsc --project jsconfig.json 2>&1 | node scripts/filter-typecheck.js || true",
     "typecheck:full": "tsc --project jsconfig.json || true"
   },
   "pkg": {

diff --git a/scripts/filter-typecheck.js b/scripts/filter-typecheck.js
new file mode 100644
--- /dev/null
+++ b/scripts/filter-typecheck.js
@@ -1,0 +1,15 @@
+#!/usr/bin/env node
+
+const readline = require('readline');
+
+const rl = readline.createInterface({
+  input: process.stdin,
+  output: process.stdout,
+  terminal: false,
+});
+
+rl.on('line', line => {
+  if (!line.startsWith('node_modules/')) {
+    console.log(line);
+  }
+});

You can send follow-ups to the cloud agent here.

Comment thread package.json
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: postinstall prints confusing message to downstream consumers
    • Added a check for the 'test' directory (excluded from published packages) to ensure the postinstall script only runs in development environments.

Create PR

Or push these changes by commenting:

@cursor push 6a46b4e8f7
Preview (6a46b4e8f7)
diff --git a/package.json b/package.json
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
     "all": true
   },
   "scripts": {
-    "postinstall": "node -e \"try{require('fs').statSync('CLAUDE.md')}catch{console.log('Tip: symlink CLAUDE.md -> AGENTS.md for Claude Code support:\\n  Unix:    ln -sf AGENTS.md CLAUDE.md\\n  Windows: mklink CLAUDE.md AGENTS.md')}\"",
+    "postinstall": "node -e \"try{if(require('fs').existsSync('test')){try{require('fs').statSync('CLAUDE.md')}catch{console.log('Tip: symlink CLAUDE.md -> AGENTS.md for Claude Code support:\\n  Unix:    ln -sf AGENTS.md CLAUDE.md\\n  Windows: mklink CLAUDE.md AGENTS.md')}}}catch{}\"",
     "coverage": "nyc report --reporter=text-lcov | coveralls",
     "docs:build": "VPL_MVB_VERSION=$(git describe --tags --always --abbrev=1 --match=\"v[0-9].*\") vitepress build docs && npm run docs:rename-sitemap",
     "docs:dev": "VPL_BASE_URL=http://localhost:5173 VPL_MVB_VERSION=$(git describe --tags --always --abbrev=1 --match=\"v[0-9].*\") vitepress dev docs",

You can send follow-ups to the cloud agent here.

Comment thread package.json Outdated
Co-authored-by: Aaron Feledy <AaronFeledy@users.noreply.github.com>
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Stale hasInstallScript flag in lockfile without install script
    • Regenerated package-lock.json with npm install to remove the stale hasInstallScript flag that had no corresponding install scripts in package.json.

Create PR

Or push these changes by commenting:

@cursor push bfddc78d2c
Preview (bfddc78d2c)
diff --git a/package-lock.json b/package-lock.json
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,7 +7,6 @@
     "": {
       "name": "@lando/core",
       "version": "3.26.3",
-      "hasInstallScript": true,
       "license": "MIT",
       "dependencies": {
         "@lando/argv": "^1.2.0",

You can send follow-ups to the cloud agent here.

Reviewed by Cursor Bugbot for commit 5d3c5ea. Configure here.

Comment thread package-lock.json Outdated
@AaronFeledy
Copy link
Copy Markdown
Member Author

@cursor push bfddc78

@AaronFeledy AaronFeledy merged commit 9c913b1 into main Apr 17, 2026
71 checks passed
@AaronFeledy AaronFeledy deleted the chore/agent-dx branch April 17, 2026 03:41
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.

2 participants