docs: add local agent framework guidance - #164
Conversation
📝 WalkthroughWalkthroughThe PR adds local-first agent-service skills for .NET, Python, and JVM ecosystems; introduces n8n and framework-selection guidance; expands LM Studio and tool-calling capability gates; and updates catalog, export, validation, roadmap, and maintainer documentation. ChangesLocal-first agent skill expansion
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dea72e701a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -0,0 +1,65 @@ | |||
| --- | |||
| name: build-jvm-agent-service | |||
| description: Build a local-first Java or Kotlin Google ADK agent service with explicit tools, model capability checks, evaluation fixtures, and draft-before-write promotion. | |||
There was a problem hiding this comment.
Preserve Scala in the JVM agent workflow
When choose-service-shape selects a Scala-first service, this new handoff advertises only Java or Kotlin and later instructs the agent to preserve a Java/Kotlin decision, leaving the plugin's first-class Scala path without agent-service guidance. Include Scala-compatible ADK/interoperability handling or explicitly route Scala repositories to an appropriate supported implementation instead of silently replacing Scala with Kotlin.
AGENTS.md reference: plugins/server-side-jvm/AGENTS.md:L13-L16
Useful? React with 👍 / 👎.
| "build-dotnet-agent-service", | ||
| ) | ||
| PRODUCTIVITY_SKILLS = ("design-n8n-agent-workflow",) | ||
| PYTHON_SKILLS = ("build-python-agent-service",) | ||
| JVM_SKILLS = ("build-jvm-agent-service",) |
There was a problem hiding this comment.
Refresh the architecture inventory for the new skills
Adding these four skills to the shipped Hermes inventory without updating docs/architecture/architecture.json and docs/architecture/ARCHITECTURE.md leaves the checked-in architecture graph describing the pre-change catalog; a repo-wide search of those files finds none of build-dotnet-agent-service, design-n8n-agent-workflow, build-python-agent-service, or build-jvm-agent-service. Refresh the architecture artifacts in the same inventory change so repository audits and architecture consumers can discover the new surfaces.
AGENTS.md reference: AGENTS.md:L60-L62
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (1)
plugins/productivity-skills/skills/design-agent-automation-workflow/references/local-agent-frameworks.md (1)
104-109: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDisambiguate the two n8n handoff bullets.
Both lines are labeled
Handoff, but one names the application owner and the other names the productivity skill. Rename them, for example, toApplication handoffandPlanning handoff, or combine them so consumers do not have to infer which owner applies to which stage.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/productivity-skills/skills/design-agent-automation-workflow/references/local-agent-frameworks.md` around lines 104 - 109, Disambiguate the two Handoff bullets in the local-agent framework reference: label the owning integration/application project as the application handoff and the productivity skill as the planning handoff, while preserving their existing destinations and guidance.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@plugins/model-lab-skills/skills/choose-apple-model-runtime/references/apple-model-tooling.md`:
- Around line 30-32: Update the native endpoint guidance in the Apple model
tooling reference to remove API-token authentication from the conditions
requiring /api/v1. Keep native routing limited to model download/load/unload,
stateful chats, MCP control, and server lifecycle observation, while allowing
API-token authentication across the broader API surface.
In `@plugins/model-lab-skills/skills/choose-apple-model-runtime/SKILL.md`:
- Line 25: Update the routing sentence in both
plugins/model-lab-skills/skills/choose-apple-model-runtime/SKILL.md:25-25 and
skills/choose-apple-model-runtime/SKILL.md:25-25 so the local inference server
branch retains the project-selected server, while describing LM Studio only as
one available option; keep the app-packaged runtime/artifact branch focused on
identifying the source artifact.
In
`@plugins/productivity-skills/skills/design-agent-automation-workflow/references/automation-plan-template.md`:
- Around line 32-34: Update the State And Safety required-output contract in
SKILL.md to include the framework fit, inference server and model, and required
model capabilities fields introduced by automation-plan-template.md. Ensure
planners must provide these model/server capability details, or explicitly
require this template for local-first plans.
In
`@plugins/productivity-skills/skills/design-agent-automation-workflow/references/framework-selection.md`:
- Around line 32-36: Update the “Framework Choice Is A Separate Decision”
section heading text to state that framework selection occurs after choosing the
execution surface, covering all supported lanes including visual workflows,
retrieval, and typed-agent options. Keep the surrounding framework-selection
guidance unchanged.
In `@README.md`:
- Around line 159-165: Shorten the root README catalog entries for
dotnet-skills, game-dev-skills, network-protocol-skills, productivity-skills,
python-skills, reverse-engineering-skills, and server-side-jvm to brief,
user-facing capability summaries. Remove maintainer implementation details,
workflow handoffs, bundled configuration references, and expansion-plan links
from these bullets; retain such details only in ROADMAP.md or the relevant
plugin documentation.
In `@skills/design-n8n-agent-workflow/SKILL.md`:
- Around line 29-30: Make the n8n write-node gate conditional: in
skills/design-n8n-agent-workflow/SKILL.md lines 29-30, require draft/approval
only when the write is not proven safe for full automation, while retaining the
evidence requirements for unsafe writes. Apply identical wording at
plugins/productivity-skills/skills/design-n8n-agent-workflow/SKILL.md lines
29-30 to keep the packaged copy synchronized.
---
Nitpick comments:
In
`@plugins/productivity-skills/skills/design-agent-automation-workflow/references/local-agent-frameworks.md`:
- Around line 104-109: Disambiguate the two Handoff bullets in the local-agent
framework reference: label the owning integration/application project as the
application handoff and the productivity skill as the planning handoff, while
preserving their existing destinations and guidance.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: d225d551-f5b3-4221-849a-929fc9d98819
📒 Files selected for processing (32)
README.mdROADMAP.mddocs/maintainers/automation-suitability.mdplugins/dotnet-skills/skills/build-dotnet-agent-service/SKILL.mdplugins/model-lab-skills/skills/choose-apple-model-runtime/SKILL.mdplugins/model-lab-skills/skills/choose-apple-model-runtime/references/apple-model-tooling.mdplugins/model-lab-skills/skills/evaluate-tool-calling-model/SKILL.mdplugins/model-lab-skills/skills/evaluate-tool-calling-model/references/tool-evaluation-matrix.mdplugins/productivity-skills/skills/design-agent-automation-workflow/SKILL.mdplugins/productivity-skills/skills/design-agent-automation-workflow/references/automation-plan-template.mdplugins/productivity-skills/skills/design-agent-automation-workflow/references/framework-selection.mdplugins/productivity-skills/skills/design-agent-automation-workflow/references/local-agent-frameworks.mdplugins/productivity-skills/skills/design-agent-automation-workflow/tests/test_design_agent_automation_workflow.pyplugins/productivity-skills/skills/design-n8n-agent-workflow/SKILL.mdplugins/python-skills/skills/build-python-agent-service/SKILL.mdplugins/python-skills/skills/build-python-agent-service/agents/openai.yamlplugins/python-skills/skills/choose-python-project-shape/SKILL.mdplugins/python-skills/tests/test_build_python_agent_service_skill.pyplugins/server-side-jvm/skills/build-jvm-agent-service/SKILL.mdscripts/export_hermes_skills.pyskills.sh.jsonskills/build-dotnet-agent-service/SKILL.mdskills/build-jvm-agent-service/SKILL.mdskills/build-python-agent-service/SKILL.mdskills/build-python-agent-service/agents/openai.yamlskills/choose-apple-model-runtime/SKILL.mdskills/choose-apple-model-runtime/references/apple-model-tooling.mdskills/design-n8n-agent-workflow/SKILL.mdskills/evaluate-tool-calling-model/SKILL.mdskills/evaluate-tool-calling-model/references/tool-evaluation-matrix.mdtests/test_model_lab_skill_contracts.pytests/test_validate_hermes_compatibility.py
| - Use native `/api/v1` endpoints when the workflow needs model download/load/ | ||
| unload, stateful chats, API-token authentication, MCP control, or server | ||
| lifecycle observation. |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== candidate files =="
fd -a 'apple-model-tooling\.md|choose-apple-model-runtime' . | sed 's#^\./##'
echo "== target excerpt =="
file='plugins/model-lab-skills/skills/choose-apple-model-runtime/references/apple-model-tooling.md'
if [ -f "$file" ]; then
nl -ba "$file" | sed -n '1,80p'
fi
echo "== nearby references to /api/v1, /v1, API token =="
rg -n "(/api/v1|/v1|API token|API-key|authentication|auth)" plugins/model-lab-skills/skills/choose-apple-model-runtime plugins/model-lab-skills 2>/dev/null | head -200Repository: gaelic-ghost/socket
Length of output: 573
🌐 Web query:
LM Studio developer API token authentication /api/v1 /v1 endpoints
💡 Result:
LM Studio provides both a native v1 REST API and compatibility endpoints (OpenAI and Anthropic), each with different authentication and endpoint patterns. Authentication By default, the LM Studio local server does not require authentication [1][2]. For enhanced security in shared or production environments, you can enable API token authentication via the "Server Settings" in the Developer tab of the LM Studio application [1][3]. When authentication is enabled: - You must generate an API token through the "Manage Tokens" section in the Server Settings [1]. - Every request must include the token in the HTTP Authorization header using the Bearer scheme: Authorization: Bearer $LM_API_TOKEN [1][2]. - For the LM Studio Python and TypeScript SDKs, the token can be provided via an environment variable (LM_API_TOKEN) or passed directly in the client configuration [4]. - Note that for OpenAI-compatible client libraries, you may still need to provide an arbitrary API key (e.g., "lm-studio") to satisfy the client's internal validation, even if LM Studio does not strictly require or validate it [5]. API Endpoints LM Studio supports two primary types of API structures: 1. Native v1 REST API (/api/v1/) The native v1 REST API provides features specific to LM Studio, such as stateful chats, MCP integration, and advanced model management [6]. Key endpoints include: - POST /api/v1/chat [6][7] - GET /api/v1/models [6][7] - POST /api/v1/models/load [6][7] - POST /api/v1/models/unload [6][7] - POST /api/v1/models/download [6][7] - GET /api/v1/models/download/status [6][7] 2. Compatibility Endpoints (/v1/) LM Studio also exposes OpenAI-compatible and Anthropic-compatible endpoints, which typically map to the /v1/ path [6][8]. Commonly used OpenAI-compatible endpoints include: - GET /v1/models [8] - POST /v1/chat/completions [8] - POST /v1/completions [8] - POST /v1/embeddings [8] - POST /v1/responses (used for Codex/completions) [8] To use these compatibility endpoints, you generally set your client's base URL to point to your local instance (e.g., http://localhost:1234/v1) [8].
Citations:
- 1: https://lmstudio.ai/docs/developer/core/authentication
- 2: https://lmstudio.ai/docs/developer/rest/quickstart
- 3: https://lmstudio.ai/docs/developer/core/server/settings
- 4: https://lmstudio.ai/docs/python/getting-started/authentication
- 5: https://contracollective.com/blog/lm-studio-local-api-server-inference-guide-2026
- 6: https://lmstudio.ai/docs/developer/rest
- 7: https://github.com/lmstudio-ai/docs/blob/main/1_developer/2_rest/index.md
- 8: https://lmstudio.ai/docs/developer/openai-compat
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== target excerpt =="
python3 - <<'PY'
from pathlib import Path
p = Path('plugins/model-lab-skills/skills/choose-apple-model-runtime/references/apple-model-tooling.md')
lines = p.read_text().splitlines()
for i in range(min(80, len(lines))):
print(f"{i+1:4}\t{lines[i]}")
PY
echo "== nearby references to /api/v1, /v1, authentication, API-token =="
python3 - <<'PY'
from pathlib import Path
import re
root = Path('.')
for path in sorted(path for path in Path('.').rglob('*')
if '.git' not in path.parts and path.suffix in {'.md','.yaml','.json','.py','.sh'}):
try:
text = path.read_text(errors='replace')
except Exception:
continue
needle = re.compile(r'(/api/v1|/v1|API token|API-key|authentication|auth)', re.I)
matches = ((i+1, needle.findall(line.strip())) for i,line in enumerate(text.splitlines()) if needle.search(line))
if any(m[1] for m in matches):
print(f'-- {path} --')
for i,line in ((i,line) for i,line in enumerate(text.splitlines()) if needle.search(line)):
print(f'{i+1}: {line.strip()}')
PYRepository: gaelic-ghost/socket
Length of output: 50376
🏁 Script executed:
#!/bin/bash
set -euo pipefail
file='plugins/model-lab-skills/skills/choose-apple-model-runtime/references/apple-model-tooling.md'
python3 - <<'PY' "$file"
import sys
from pathlib import Path
p = Path(sys.argv[1])
lines = p.read_text().splitlines()
print("-- ", p, "--")
for i in range(min(80, len(lines))):
print(f"{i+1:4}\t{lines[i]}")
PY
echo "== targeted mentions in target file only =="
python3 - "$file" <<'PY'
import sys
from pathlib import Path
p=Path(sys.argv[1])
terms=['/api/v1','/v1','API-token authentication','API token','model download','load/unload','MCP']
lines=p.read_text().splitlines()
for i,line in enumerate(lines):
if any(t.lower() in line.lower() for t in terms):
print(f"{i+1}: {line}")
PYRepository: gaelic-ghost/socket
Length of output: 7406
Do not require native /api/v1 for API-token authentication.
API-token authentication applies to LM Studio’s API surface generally, while native-only routes are model lifecycle, stateful chats, and MCP control. Separating these avoids routing OpenAI-compatible /v1 users to /api/v1 just because authentication is enabled.
Proposed wording
-Use native `/api/v1` endpoints when the workflow needs model download/load/
- unload, stateful chats, API-token authentication, MCP control, or server
- lifecycle observation.
+Enable API-token authentication for any exposed API. Use native `/api/v1`
+ endpoints when the workflow needs model download/load/unload, stateful chats,
+ MCP control, or server lifecycle observation.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Use native `/api/v1` endpoints when the workflow needs model download/load/ | |
| unload, stateful chats, API-token authentication, MCP control, or server | |
| lifecycle observation. | |
| Enable API-token authentication for any exposed API. Use native `/api/v1` | |
| endpoints when the workflow needs model download/load/unload, stateful chats, | |
| MCP control, or server lifecycle observation. |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@plugins/model-lab-skills/skills/choose-apple-model-runtime/references/apple-model-tooling.md`
around lines 30 - 32, Update the native endpoint guidance in the Apple model
tooling reference to remove API-token authentication from the conditions
requiring /api/v1. Keep native routing limited to model download/load/unload,
stateful chats, MCP control, and server lifecycle observation, while allowing
API-token authentication across the broader API surface.
| ## Decision Workflow | ||
|
|
||
| 1. Identify the source artifact: PyTorch module/export, safetensors checkpoint, Core ML package, Core AI package, ExecuTorch program, or system model. | ||
| 1. Decide whether the need is a local inference server for a client or an app-packaged runtime/artifact. Use LM Studio for the former; identify the source artifact for the latter. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
The local-server branch must not force LM Studio. This routing sentence turns a category into a vendor choice and can misroute projects that intentionally use another local inference server.
plugins/model-lab-skills/skills/choose-apple-model-runtime/SKILL.md#L25-L25: retain the project-selected local server and describe LM Studio as one option.skills/choose-apple-model-runtime/SKILL.md#L25-L25: apply the same wording change to keep the packaged copy consistent.
📍 Affects 2 files
plugins/model-lab-skills/skills/choose-apple-model-runtime/SKILL.md#L25-L25(this comment)skills/choose-apple-model-runtime/SKILL.md#L25-L25
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/model-lab-skills/skills/choose-apple-model-runtime/SKILL.md` at line
25, Update the routing sentence in both
plugins/model-lab-skills/skills/choose-apple-model-runtime/SKILL.md:25-25 and
skills/choose-apple-model-runtime/SKILL.md:25-25 so the local inference server
branch retains the project-selected server, while describing LM Studio only as
one available option; keep the app-packaged runtime/artifact branch focused on
identifying the source artifact.
| - Framework and why it fits this workflow: | ||
| - Inference server and model: | ||
| - Required model capabilities (tool calling, structured output, vision, context): |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
Promote the new model fields into the required output contract.
This template now asks for framework fit, inference server/model, and model capabilities, but the related SKILL.md State And Safety contract in Lines 108-109 does not. A planner can therefore omit the exact model/server capability gate this PR intends to require. Add these fields to that contract or explicitly make this template mandatory for local-first plans.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@plugins/productivity-skills/skills/design-agent-automation-workflow/references/automation-plan-template.md`
around lines 32 - 34, Update the State And Safety required-output contract in
SKILL.md to include the framework fit, inference server and model, and required
model capabilities fields introduced by automation-plan-template.md. Ensure
planners must provide these model/server capability details, or explicitly
require this template for local-first plans.
| ## Framework Choice Is A Separate Decision | ||
|
|
||
| After choosing whether the work needs a code-owned agent service or durable | ||
| graph, choose the framework only from the requirements that remain: | ||
|
|
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Make the precondition cover all supported execution surfaces.
The section says framework choice happens after deciding between a code-owned agent service or durable graph, but its table also introduces n8n, LlamaIndex, and Pydantic AI. For visual workflows or retrieval/typed-agent lanes, that wording can cause the planner to skip the framework decision. Reword it as “after choosing the execution surface.”
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In
`@plugins/productivity-skills/skills/design-agent-automation-workflow/references/framework-selection.md`
around lines 32 - 36, Update the “Framework Choice Is A Separate Decision”
section heading text to state that framework selection occurs after choosing the
execution surface, covering all supported lanes including visual workflows,
retrieval, and typed-agent options. Keep the surrounding framework-selection
guidance unchanged.
| - `dotnet-skills`: .NET, F#, and C# project-shape, bootstrap, implementation, local-first Semantic Kernel agent-service, test, package, diagnostics, ASP.NET Core, Giraffe, Falco, Oxpecker, interop, CI, upgrade, and tooling guidance | ||
| - `game-dev-skills`: Apple platform game development workflows for native Metal and Metal 4 renderers, GPTK 3/4 routing, MetalFX, GPU asset streaming, experimental neural rendering, SpriteKit, SceneKit, GameplayKit simulation, Game Controller input, Core Haptics feedback, Xcode profiling, game-stack routing, and device-aware validation handoffs | ||
| - `network-protocol-skills`: modern networking and application-protocol workflows for transport selection, HTTP/3 and QUIC planning, Media over QUIC draft-aware guidance, WebRTC signaling/media/data-channel work, and protocol diagnostics with stack-plugin handoffs | ||
| - `productivity-skills`: general-purpose maintainer, documentation, Dice MCP job-search with bundled remote MCP config, Codex GUI worktree workflow, and automation-design workflows plus source-bundled docs-audit and code-tracing custom-agent definitions | ||
| - `python-skills`: Python runtime and tooling workflows for Python-based projects; see the [Python skills expansion plan](./docs/maintainers/python-skills-plugin-plan.md) for maintainer details | ||
| - `productivity-skills`: general-purpose maintainer, documentation, Dice MCP job-search with bundled remote MCP config, Codex GUI worktree workflow, automation-design and safe n8n-workflow planning, plus source-bundled docs-audit and code-tracing custom-agent definitions | ||
| - `python-skills`: Python runtime and tooling workflows, including local-first agent-service implementation guidance; see the [Python skills expansion plan](./docs/maintainers/python-skills-plugin-plan.md) for maintainer details | ||
| - `reverse-engineering-skills`: artifact triage, preservation, exact-build comparison, decompiler review, Apple Mach-O/runtime/signing/Apple Silicon/dyld/dynamic/kernel research, Cutter/Rizin, Malimite, Ghidra, Hopper, .NET, Unity and IL2CPP, and reproducible security evidence workflows | ||
| - `server-side-jvm`: server-side JVM, Java, Scala, Gradle, Maven, SBT, and testing workflow guidance, with future Clojure support planned | ||
| - `server-side-jvm`: server-side JVM, Java, Scala, Google ADK agent-service, Gradle, Maven, SBT, and testing workflow guidance, with future Clojure support planned |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Keep the root README catalog summary nontechnical.
These changed bullets add maintainer-level implementation details (Semantic Kernel agent-service, local-first, and guidance handoffs). Move those details to ROADMAP.md or plugin documentation and keep this inventory to short, user-facing capability summaries.
As per coding guidelines: Keep the root README short, nontechnical, and focused on end users or agents installing and using the Socket marketplace.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` around lines 159 - 165, Shorten the root README catalog entries
for dotnet-skills, game-dev-skills, network-protocol-skills,
productivity-skills, python-skills, reverse-engineering-skills, and
server-side-jvm to brief, user-facing capability summaries. Remove maintainer
implementation details, workflow handoffs, bundled configuration references, and
expansion-plan links from these bullets; retain such details only in ROADMAP.md
or the relevant plugin documentation.
Source: Coding guidelines
| 5. Leave write nodes disabled or draft-only until `auto-with-escalation` names | ||
| the recipient, action, payload evidence, and approval event. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Make the n8n write gate conditional on full-auto safety.
Both copies require auto-with-escalation before any write node, conflicting with the repository’s safe full-automation path for bounded, validated workflows.
skills/design-n8n-agent-workflow/SKILL.md#L29-L30: Require draft/approval only when the write is not proven safe for full automation.plugins/productivity-skills/skills/design-n8n-agent-workflow/SKILL.md#L29-L30: Apply the same conditional wording and keep the packaged copy synchronized.
📍 Affects 2 files
skills/design-n8n-agent-workflow/SKILL.md#L29-L30(this comment)plugins/productivity-skills/skills/design-n8n-agent-workflow/SKILL.md#L29-L30
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@skills/design-n8n-agent-workflow/SKILL.md` around lines 29 - 30, Make the n8n
write-node gate conditional: in skills/design-n8n-agent-workflow/SKILL.md lines
29-30, require draft/approval only when the write is not proven safe for full
automation, while retaining the evidence requirements for unsafe writes. Apply
identical wording at
plugins/productivity-skills/skills/design-n8n-agent-workflow/SKILL.md lines
29-30 to keep the packaged copy synchronized.
Summary
Verification
uv run pytest(134 passed, 1 skipped)uv run ruff check .uv run mypyuv run scripts/validate_socket_metadata.pyuv run scripts/export_hermes_skills.py --checkuv run scripts/validate_hermes_compatibility.pyuv run scripts/validate_claude_compatibility.pySummary by CodeRabbit