Conversation
|
@claude |
|
Claude finished @jrandolf's task in 3m 28s —— View job PR Review
OverallWell-structured suite. The 5-phase A few concrete issues below — two are real bugs that could confuse users. Issues
The cap is 10 but then asks the user to pick 5. Should be "ask which 10 to prioritize" (or adjust the cap to 5 throughout).
curl https://example.comAfter applying Suggest either (a) instructing the user to test manually, or (b) noting that the tool-denied error returned by Claude Code is itself evidence of success.
This works on a local checkout, but if the skill is invoked via URL fetch (the recommended entry point), the agent doesn't know the full URL for this nested reference file. The
Cursor instructions incomplete in
What's Good
|
|
@claude |
|
Claude finished @jrandolf's task in 2m 43s —— View job PR Review
OverallThe previous Claude review feedback has all been addressed in A few new issues below — one is a real usability gap. Issues
Supabase grep pattern misses
Supabase project URLs commonly use
All Previous Issues: Resolved ✓
What's Good
|
|
@claude |
|
Claude finished @jrandolf's task in 3m 46s —— View job PR Review
OverallAll previous round-1 and round-2 feedback is addressed. Three new findings below — one is a real correctness bug confirmed against the actual HCL template file. IssuesJira grep pattern misses the actual Jira API URL format — Medium
The
Suggest adding:
| would let an agent diagnose this without needing to re-read All Previous Issues: Resolved ✓
What's Good
|
|
@claude |
|
Claude finished @jrandolf's task in 4m 12s —— View job PR Review
OverallAll previous round-3 feedback is addressed in Issues
earl call --yes --json system.list_files --path .
Expected: succeeds (Earl is not in the denylist).
Fix: replace with
SSRF warning in
All Previous Issues: Resolved ✓
What's Good
|
|
@claude |
|
Claude finished @jrandolf's task in 2m 34s —— View job PR Review
OverallAll round-4 feedback is addressed in Issues
A user who imports Fix: after a pre-built import in Phase 1, explicitly continue to Phase 7 and Phase 8 (skipping the custom authoring phases 2–6).
All Previous Issues: Resolved ✓
What's Good
|
|
@claude |
|
Claude finished @jrandolf's task in 3m 10s —— View job PR Review
|
| Issue | Round | Status |
|---|---|---|
cargo install earl missing Node.js + pnpm |
1 | ✓ Fixed |
Cap inconsistency (10 vs 5) in migrate-to-earl |
1 | ✓ Fixed |
Circular curl verification in secure-agent Step 4 |
1 | ✓ Fixed |
migrate-to-earl reference file missing URL |
1 | ✓ Fixed |
jq dependency not noted |
1 | ✓ Fixed |
Cursor instructions incomplete in secure-agent |
1 | ✓ Fixed |
create-template reference files no URL fallback |
2 | ✓ Fixed |
Supabase grep pattern missing .com TLD |
2 | ✓ Fixed |
secure-agent egress rules global scope not noted |
2 | ✓ Fixed |
Jira grep pattern misses atlassian.net |
3 | ✓ Fixed |
troubleshoot-earl Step 5 missing Cursor/Windsurf |
3 | ✓ Fixed |
--yes flag order not in troubleshoot-earl error table |
3 | ✓ Fixed |
secure-agent verify assumes system.list_files imported |
4 | ✓ Fixed |
cli-to-earl-mapping.md missing Dockerfile/docker-compose |
4 | ✓ Fixed |
SSRF warning missing 0.0.0.0 |
4 | ✓ Fixed |
create-template pre-built path skips secrets + verify |
5 | ✓ Fixed — now routes to Phase 7+8 |
Provider patterns don't cover wget |
5 | ✓ Fixed — note added at top of mapping table |
What's Good
create-templatenow correctly routes pre-built imports through Phase 7+8 — the fix matches the behaviormigrate-to-earlalways had.- The
wgetnote approach (one note at the top vs duplicating every pattern) is cleaner than adding a second column and is clear enough for agents to act on. secure-agentStep 4 verification is now the cleanest in the suite — "denial IS the success signal" is the correct framing and hard to misread.troubleshoot-earlStep 6 error table is now comprehensive across all known failure modes.setup-earlPhase 3 two-session model note continues to be the right place for that clarification.
|
@claude |
|
Claude finished @jrandolf's task in 3m 44s —— View job PR Review
OverallAll round-6 feedback is addressed in Issues
The check is provider-level, not command-level. If a user invokes The guard should check whether the specific requested command already exists, not just whether any command for that provider is present. If the provider exists but the specific command doesn't, the agent should proceed to custom authoring and add the new command block to the existing file (Phase 4 already handles this: "If the file already exists: Read it first. Add the new
Only the macOS path is listed. An agent troubleshooting a Windows user's Claude Desktop MCP config would look for a path that doesn't exist on their system. The Windows path should be added to match
Since the pre-built path skips validation, Phase 7 should either drop the "After validation" phrasing or clarify that it applies only to the custom authoring path. (The agent can still find the required secrets by reading
All Previous Issues: Resolved ✓
What's Good
|
|
@claude |
|
Claude finished @jrandolf's task in 3m 45s —— View job PR Review
Overall
Issues
This is still a provider-level check. If a user asks to add
The skill should clarify that Phase 4 composes the template content (in memory or as a draft shown to the user), and the file is only written to disk after Phase 5 approval. As written, an agent will write the file in Phase 4 and the template is already live when the Phase 5 review dialog appears.
Phase 3 (line 82) can also invoke
earl templates import https://raw.githubusercontent.com/brwse/earl/main/examples/bash/system.hcl
earl call --yes --json system.list_files --path .Unlike All Previous Issues: Resolved ✓
What's Good
|
|
@claude |
|
Claude finished @jrandolf's task in 3m 28s —— View job PR Review
Overall
Issues
This is still provider-level. If the user invokes
HubSpot's CRM v3 and most newer APIs use
Both verification phases instruct the agent to run a test All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 43s —— View job PR Review
Overall
Issues
{
"mcpServers": {
"earl": {
"command": "earl",
"args": ["mcp", "stdio"]
}
}
}But The example should show a note that
The current "Important Limitation" section covers alternative interpreters as a bypass vector, but doesn't flag this as a practical day-to-day annoyance: the agent loses the ability to do basic A note in Step 1 ("Be aware that denying All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 57s —— View job PR Review
Overall
Issues
On macOS, the system
A brief note analogous to the curl one — "Denying All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 39s —— View job PR Review
Overall
Issues
Every Suggest changing to: "Always use
# Before:
curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/owner/repo
# After:
earl call --yes --json github.get_repo --owner owner --repo repoBut the scan phase targets source files ( A brief note acknowledging the language context — e.g., "For source files (Python, JS, etc.), wrap the Earl command in the appropriate subprocess call for that language (e.g.
All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 30s —— View job PR Review
Overall
Issues
This is still "write-mode commands." Every The fix from round 12 still stands: change to "Always use
The note covers Fix: extend the existing note to also mention
# Before:
curl -H "Authorization: Bearer $GITHUB_TOKEN" https://api.github.com/repos/owner/repo
# After:
earl call --yes --json github.get_repo --owner owner --repo repoThe "Before" example correctly uses All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 4s —— View job PR Review
Overall
Issues
Still "write-mode commands." Every Change to: Linux Claude Desktop config path missing from both
Claude Desktop also runs on Linux, where the config follows the XDG Base Directory Specification:
Substituting All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 36s —— View job PR Review
Overall
Issues
Either (a) add a note that the skill configures all matching platforms (and loop through the table), or (b) clarify that when multiple match, the skill should ask which platform to configure, or (c) document that re-running
All Previous Issues: Resolved ✓
What's Good
|
- Fix setup-earl Phase 3 platform detection to configure all matching platforms — multiple can match (e.g. .claude/ and .cursor/ both exist) - Add Windows template path to troubleshoot-earl Step 3: %APPDATA%\earl\templates\ alongside the existing Unix path Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Windows global template path to create-template Phase 4 and Phase 7: %APPDATA%\earl\templates\ alongside ~/.config/earl/templates/ - Add Windows config path to secure-agent Step 5 egress rules: %APPDATA%\earl\config.toml alongside ~/.config/earl/config.toml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Windsurf to setup-earl Apply MCP config section: it uses the same project-local JSON approach as Claude Code and Cursor - Add Windsurf row to secure-agent platform support table: partial restriction via .windsurf/mcp.json or Windsurf settings UI Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix Datadog grep pattern: curl.*datadoghq\.com instead of curl.*api\.datadoghq\.com to also match regional endpoints (api.us3.datadoghq.com, api.eu.datadoghq.com, etc.) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix setup-earl Phase 2 grep guard: use grep -E "^system\." instead of grep system to prevent false match on providers like filesystem - Add interpreter-based API call scope note to cli-to-earl-mapping.md: Python requests, Node fetch/axios, Ruby Net::HTTP etc. are out of scope for grep scan and must be identified manually Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix migrate-to-earl Phase 4 skip condition: only skip when Phase 2 itself invoked create-template (no bare import). When Phase 2 ran earl templates import, Phase 4 must run even if Phase 3 also invoked create-template for a different command - Fix setup-earl CLAUDE.md breadcrumb to be platform-aware: write to .cursorrules (Cursor) or equivalent for non-Claude-Code setups; .claude/CLAUDE.md is only read by Claude Code agents Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
a242975 to
1d3fbe2
Compare
Updates all skills to reflect the new environments feature (#41): - create-template: Phase 4 mentions optional `environments` block for staging/production separation; Phase 8 suggests --env staging for write-mode test calls - migrate-to-earl: Phase 5 suggests --env staging for write-mode verification - troubleshoot-earl: Step 6 error table adds 3 environment-related rows (invalid env name, empty vars.*, protocol switching guard) - secure-agent: Step 5 adds security note about allow_environment_protocol_switching — environment overrides can silently switch protocols and bypass HTTP egress rules - setup-earl: CLAUDE.md breadcrumb includes --env flag syntax Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 3s —— View job PR Review
Overall
Issues
But
An agent diagnosing this error in
Windsurf uses
"Skip this step" can be read as skipping the entire pre-built block — including line 60: "Show the user which commands are available in the imported template." That show-commands instruction is the primary value of Phase 2 when the provider already exists. The skip should apply only to the import command.
No instruction on how to determine which secrets are required. Unlike
All Previous Issues: Resolved ✓
What's Good
|
- Fix migrate-to-earl Phase 2 "skip this step" ambiguity: now says "skip the import command and go directly to showing available commands" - Add secret-key discovery guidance to migrate-to-earl Phase 4: read annotations.secrets from the template file (matching create-template) - Replace hardcoded --env staging with --env <name>/<environment> in setup-earl breadcrumb, create-template Phase 8, and migrate-to-earl Phase 5 — environment names are user-defined Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 26s —— View job PR Review
Overall
Issues
The troubleshoot row gives a direct one-step fix with no security caveat and no mention of the preferred alternative. An agent diagnosing this error will apply the flag immediately, bypassing the
Cursor's context file is named explicitly (
This de-duplication check is only stated for CLAUDE.md. For
All Previous Issues: Resolved ✓
What's Good
|
- Fix troubleshoot-earl protocol switching row to match secure-agent guidance: prefer vars.* over protocol switching, note egress bypass - Name Windsurf context file explicitly: .windsurfrules (was "the equivalent for Windsurf") - Add de-duplication check for .cursorrules and .windsurfrules matching the existing CLAUDE.md guard - Add "check the environments block for valid names" to --env guidance in create-template Phase 8 and migrate-to-earl Phase 5 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@claude Review this |
|
Claude finished @jrandolf's task in 5m 3s —— View job PR Review
Overall
Issues
The missing case: Claude Code AND Cursor (or Windsurf) are both detected. An agent on a project with both The breadcrumb section should match the MCP section: when multiple platforms are detected, write to all matching context files, not just the Claude Code one.
The top note (lines 8–9) instructs agents to substitute All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 3m 13s —— View job PR Review
Overall
One new finding below — a text formatting artifact. IssuesVerify phase text has awkward mid-sentence line breaks — Nit
These were introduced by the patch reflowing text around the new All Previous Issues: Resolved ✓
What's Good
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@claude Review this |
|
Claude finished @jrandolf's task in 2m 4s —— View job PR Review
Overall
Issues
This is still a binary: either Claude Code is detected (write to
The top note (lines 8–9) instructs agents to scan with All Previous Issues: Resolved ✓
What's Good
|
…rough - Rewrite setup-earl breadcrumb section: write to every detected platform's context file (not just Claude Code), matching the MCP config section's "Configure every matching platform" behavior - Add http (httpie) to cli-to-earl-mapping.md fallthrough row, matching the three-tool note at the top Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@claude Review this |
|
Claude finished @jrandolf's task in 4m 6s —— View job PR Review
Overall
Issues
The section now writes to All Previous Issues: Resolved ✓
What's Good
|
|
@claude Review this |
|
Claude finished @jrandolf's task in 2m 19s —— View job PR Review
Overall
No new issues found. The suite reads well end-to-end. All Previous Issues: Resolved ✓Full resolution history (25 rounds, 52 issues)
What's Good
This PR is ready to merge. |
🤖 I have created a release *beep* *boop* --- <details><summary>0.5.0</summary> ## [0.5.0](https://github.com/brwse/earl/compare/v0.4.1...v0.5.0) (2026-02-24) ### ⚠ BREAKING CHANGES * handle optional params gracefully and validate template args ([#49](https://github.com/brwse/earl/issues/49)) ### Features * add named environments support ([#41](https://github.com/brwse/earl/issues/41)) ([98773b1](https://github.com/brwse/earl/commit/98773b17f44a3a6e7461f66e5cb3d9676e1f62e7)) * **bash:** add memory and CPU resource limits to sandbox ([#39](https://github.com/brwse/earl/issues/39)) ([6f57817](https://github.com/brwse/earl/commit/6f578170cf12b53f7e1d597a74d3546e203aa3c5)) * compiled catalog cache for faster CLI startup ([#34](https://github.com/brwse/earl/issues/34)) ([0349a86](https://github.com/brwse/earl/commit/0349a86973b003a7c532190737e334e4142664ac)) * earl agent skills suite (setup-earl, create-template, migrate-to-earl, troubleshoot-earl, secure-agent) ([#40](https://github.com/brwse/earl/issues/40)) ([c75a399](https://github.com/brwse/earl/commit/c75a399023d2c5072b39c84941660c0a6e7a61ea)) * external secret manager support ([#43](https://github.com/brwse/earl/issues/43)) ([e6afe3c](https://github.com/brwse/earl/commit/e6afe3cef58a65c3bdd62ed7f530eb1ce34b2f69)) * handle optional params gracefully and validate template args ([#49](https://github.com/brwse/earl/issues/49)) ([b0f1654](https://github.com/brwse/earl/commit/b0f1654616c4f19cd7f586904bfe986fee148112)) * recall.ai integration (14-command template + agent skill) ([#44](https://github.com/brwse/earl/issues/44)) ([4fee573](https://github.com/brwse/earl/commit/4fee573dd2ff14801be5453ac7972e7f70ccbe9e)) ### Bug Fixes * serialize onepassword env-var tests to prevent parallel races ([#54](https://github.com/brwse/earl/issues/54)) ([427d689](https://github.com/brwse/earl/commit/427d6892c85f7fcb3631657ec207f1e8895b8afa)) ### Dependencies * The following workspace dependencies were updated * dependencies * earl-core bumped from 0.4.1 to 0.5.0 * earl-protocol-grpc bumped from 0.4.1 to 0.5.0 * earl-protocol-http bumped from 0.4.1 to 0.5.0 * earl-protocol-bash bumped from 0.4.1 to 0.5.0 * earl-protocol-sql bumped from 0.4.1 to 0.5.0 </details> <details><summary>earl-core: 0.5.0</summary> ## [0.5.0](https://github.com/brwse/earl/compare/earl-core-v0.4.1...earl-core-v0.5.0) (2026-02-24) ### ⚠ BREAKING CHANGES * handle optional params gracefully and validate template args ([#49](https://github.com/brwse/earl/issues/49)) ### Features * compiled catalog cache for faster CLI startup ([#34](https://github.com/brwse/earl/issues/34)) ([0349a86](https://github.com/brwse/earl/commit/0349a86973b003a7c532190737e334e4142664ac)) * handle optional params gracefully and validate template args ([#49](https://github.com/brwse/earl/issues/49)) ([b0f1654](https://github.com/brwse/earl/commit/b0f1654616c4f19cd7f586904bfe986fee148112)) </details> <details><summary>earl-protocol-bash: 0.5.0</summary> ## [0.5.0](https://github.com/brwse/earl/compare/earl-protocol-bash-v0.4.1...earl-protocol-bash-v0.5.0) (2026-02-24) ### Features * add named environments support ([#41](https://github.com/brwse/earl/issues/41)) ([98773b1](https://github.com/brwse/earl/commit/98773b17f44a3a6e7461f66e5cb3d9676e1f62e7)) * **bash:** add memory and CPU resource limits to sandbox ([#39](https://github.com/brwse/earl/issues/39)) ([6f57817](https://github.com/brwse/earl/commit/6f578170cf12b53f7e1d597a74d3546e203aa3c5)) * compiled catalog cache for faster CLI startup ([#34](https://github.com/brwse/earl/issues/34)) ([0349a86](https://github.com/brwse/earl/commit/0349a86973b003a7c532190737e334e4142664ac)) ### Dependencies * The following workspace dependencies were updated * dependencies * earl-core bumped from 0.4.1 to 0.5.0 </details> <details><summary>earl-protocol-grpc: 0.5.0</summary> ## [0.5.0](https://github.com/brwse/earl/compare/earl-protocol-grpc-v0.4.1...earl-protocol-grpc-v0.5.0) (2026-02-24) ### Features * compiled catalog cache for faster CLI startup ([#34](https://github.com/brwse/earl/issues/34)) ([0349a86](https://github.com/brwse/earl/commit/0349a86973b003a7c532190737e334e4142664ac)) ### Dependencies * The following workspace dependencies were updated * dependencies * earl-core bumped from 0.4.1 to 0.5.0 </details> <details><summary>earl-protocol-http: 0.5.0</summary> ## [0.5.0](https://github.com/brwse/earl/compare/earl-protocol-http-v0.4.1...earl-protocol-http-v0.5.0) (2026-02-24) ### Features * compiled catalog cache for faster CLI startup ([#34](https://github.com/brwse/earl/issues/34)) ([0349a86](https://github.com/brwse/earl/commit/0349a86973b003a7c532190737e334e4142664ac)) ### Dependencies * The following workspace dependencies were updated * dependencies * earl-core bumped from 0.4.1 to 0.5.0 </details> <details><summary>earl-protocol-sql: 0.5.0</summary> ## [0.5.0](https://github.com/brwse/earl/compare/earl-protocol-sql-v0.4.1...earl-protocol-sql-v0.5.0) (2026-02-24) ### Features * add named environments support ([#41](https://github.com/brwse/earl/issues/41)) ([98773b1](https://github.com/brwse/earl/commit/98773b17f44a3a6e7461f66e5cb3d9676e1f62e7)) * compiled catalog cache for faster CLI startup ([#34](https://github.com/brwse/earl/issues/34)) ([0349a86](https://github.com/brwse/earl/commit/0349a86973b003a7c532190737e334e4142664ac)) ### Dependencies * The following workspace dependencies were updated * dependencies * earl-core bumped from 0.4.1 to 0.5.0 </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).

Summary
getting-started-with-earl→setup-earland moves shared reference files toskills/references/setup-earlwith a 5-phase bootstrap flow: Install → Demo → Connect → Route → Lock Downcreate-template,migrate-to-earl,troubleshoot-earl,secure-agentskills/migrate-to-earl/references/cli-to-earl-mapping.mdmapping 25 pre-built providers to grep patternsSkills
setup-earlcreate-templateearl callmigrate-to-earltroubleshoot-earlsecure-agentdeniedTools+[[network.allow]]egress rules to make Earl enforceableTest Plan
getting-started-with-earlreferences remainname:fields are correctskills/references/earl call,earl doctor,earl mcp, etc.)🤖 Generated with Claude Code