-
-
Notifications
You must be signed in to change notification settings - Fork 39
chore: agent DX improvements #458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
e0a2a86
chore: add AGENTS.md and jsconfig.json for agent DX
AaronFeledy da059d0
chore: add typecheck scripts with typescript and @types/lodash
AaronFeledy 7ec6bbc
condense AGENTS.md
AaronFeledy 174b83f
chore: add writing and changelog guidance to AGENTS.md
AaronFeledy d6d2d02
fix: sync jsconfig.json include with pkg.scripts
AaronFeledy f72a458
support claude code
AaronFeledy d597fe5
postinstall: replace symlink creation with cross-platform hint message
AaronFeledy 5d3c5ea
chore: remove postinstall script
cursoragent fa30718
fix: remove stale hasInstallScript flag from lockfile
cursoragent File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -56,6 +56,9 @@ config.*.timestamp-*-*.* | |
| yarn.lock | ||
|
|
||
|
|
||
| # Claude | ||
| CLAUDE.md | ||
|
|
||
| # Syncthing | ||
| .stfolder/ | ||
| .stversions/ | ||
|
|
||
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| # AGENTS.md | ||
|
|
||
| Lando is a local development orchestration tool built around Docker, recipes, and plugin-driven automation for app environments and developer tooling. Lando Core (`@lando/core`) is the event-driven Node.js runtime and plugin base behind the `lando` CLI: it bootstraps config, tasks, engine integration, app loading, and built-in plugin behavior. | ||
|
|
||
| ## Maintenance | ||
| - Keep this file up to date. If you identify a serious repo-specific gotcha that is likely to trip future agents, update this file in the same change. | ||
|
|
||
| ## Commands | ||
| - Use `npm`. Node 20 required. | ||
| - Full verification: `npm test`. Focused unit test: `npx mocha --timeout 5000 test/<file>.spec.js`. | ||
| - Integration tests: `npm run test:leia`. **Do not run locally** — they modify the host system and are CI-only. | ||
| - The `.lando.yml` at the project root is solely for docs work (VitePress); it has no relation to app code. | ||
|
|
||
| ## Architecture | ||
| - `bin/lando` — CLI entrypoint/runtime selector. | ||
| - `lib/lando.js` — package main export; owns bootstrap sequencing. | ||
| - `index.js` — **not** the library entrypoint; it's the core plugin bootstrap that registers default config and lifecycle hooks. | ||
| - Most behavior is wired through events and hook modules, not direct imports. Start with `lib/lando.js`, `app.js`, and `index.js`, then follow `hooks/`. | ||
| - Bootstrap levels: `config → tasks → engine → app`. Tooling commands may only reach `engine` if compose cache exists, so not every CLI path initializes a full app. | ||
|
|
||
| ## Config And Caches | ||
| - Landofile loading order (from the app root directory): `.lando.base.yml`, `.lando.dist.yml`, `.lando.recipe.yml`, `.lando.upstream.yml`, `.lando.yml`, `.lando.local.yml`, `.lando.user.yml`. | ||
| - CLI relies heavily on task cache and compose cache to decide bootstrap level and available commands. | ||
| - If a command change seems ignored, clear caches with `lando --clear` before assuming the code path is wrong. | ||
|
|
||
| ## Writing | ||
| - Keep commit messages, PR descriptions, and issue comments concise. | ||
| - User-facing changes only in `CHANGELOG.md`'s `## {{ UNRELEASED_VERSION }}` section; follow the existing bullet and verb style. | ||
|
|
||
| ## Repo-Specific Gotchas | ||
| - **Packaged binary**: adding runtime-loaded files or new top-level directories requires updating `pkg.assets` and `pkg.scripts` in `package.json`, or they'll be missing from the packaged CLI. | ||
| - **New source directories** must be added to `jsconfig.json` `include`, `package.json` `nyc.include`, and `package.json` `pkg.scripts`. | ||
| - **ESLint**: `require-jsdoc` applies to `FunctionDeclaration` only — arrow functions and expressions do not need JSDoc to pass lint. | ||
| - **`examples/**/README.md`** files are executable Leia specs — edits there affect CI test behavior. | ||
|
|
||
| ## TypeScript Migration | ||
| - We are incrementally migrating to TypeScript via JSDoc type definitions. Add `@param`, `@return`, `@typedef` to any functions you modify or create. | ||
| - Type definitions go in co-located `.types.js` files (e.g., `utils/foo.types.js` next to `utils/foo.js`). | ||
| - `npm run typecheck` is not gated in CI. Use `npm run typecheck:full` to include node_modules errors. | ||
| - Use proper TypeScript types in JSDoc annotations. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # AGENTS.md | ||
|
|
||
| - Each `README.md` is an executable Leia spec, not just documentation. **Do not run locally** — they are CI-only and can mutate host state. | ||
| - Leia expects specific section headings: `Start up tests`, `Verification commands`, `Destroy tests`. `npm run test:leia` targets `Destroy tests` for cleanup. | ||
| - When changing example behavior, keep the `README.md` commands in the same directory in sync. | ||
| - When adding, removing, or renaming specs, update the corresponding jobs in `.github/workflows/pr-core-tests.yml` and the `pr-setup-{linux,windows,macos}-tests.yml` workflows. | ||
| - `examples/.lando.yml` loads `@lando/core` from `..` — examples exercise this checkout, not an installed release. |
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| { | ||
| "compilerOptions": { | ||
| "allowJs": true, | ||
| "checkJs": true, | ||
| "noEmit": true, | ||
| "skipLibCheck": true, | ||
| "strict": false, | ||
| "moduleResolution": "node", | ||
| "ignoreDeprecations": "6.0", | ||
| "target": "es2022", | ||
| "resolveJsonModule": true | ||
| }, | ||
| "include": [ | ||
| "app.js", | ||
| "index.js", | ||
| "builders/**/*.js", | ||
| "components/**/*.js", | ||
| "experimental/**/*.js", | ||
| "hooks/**/*.js", | ||
| "inits/**/*.js", | ||
| "lib/**/*.js", | ||
| "messages/**/*.js", | ||
| "packages/**/*.js", | ||
| "plugins/**/*.js", | ||
| "renderers/**/*.js", | ||
| "sources/**/*.js", | ||
| "tasks/**/*.js", | ||
| "utils/**/*.js" | ||
|
cursor[bot] marked this conversation as resolved.
|
||
| ], | ||
| "exclude": [ | ||
| "node_modules" | ||
| ] | ||
| } | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.