Skip to content

fix: replace backslash with forward slash in /generate-image command#46

Open
Delqhi wants to merge 5 commits intomainfrom
fix/gen-thumbnail-backslash
Open

fix: replace backslash with forward slash in /generate-image command#46
Delqhi wants to merge 5 commits intomainfrom
fix/gen-thumbnail-backslash

Conversation

@Delqhi
Copy link
Copy Markdown
Member

@Delqhi Delqhi commented Apr 18, 2026

Summary by CodeRabbit

  • New Features

    • Added team configuration for coding agents with six member repositories.
    • Integrated box storage service via new MCP configuration.
    • Introduced governance contract templates framework with schema-validated configurations for platforms, PR watchers, and repository governance.
  • Bug Fixes

    • Fixed command prefix in image generation pipeline.
  • Documentation

    • Added governance templates documentation with usage and validation instructions.

SIN-Agent added 5 commits April 17, 2026 06:17
- Added sin-box-storage MCP entry to opencode.json
- MCP wrapper: python3 /Users/jeremy/dev/A2A-SIN-Box-Storage/scripts/mcp-box-storage.py
- Environment: BOX_STORAGE_URL, BOX_STORAGE_API_KEY
- Tools: box_upload_file, box_validate_file, box_list_public_files, box_get_health

Closes: #25
…rm-registry contract templates (#26)

- templates/governance/repo-governance.template.json: concrete template with fail-closed rules
- templates/governance/pr-watcher.template.json: PR review automation + credential scanning
- templates/governance/platform-registry.template.json: platform intake with fail-closed default
- templates/governance/README.md: usage guide for factory and backfill workflows

These templates complement the existing JSON Schemas (repo-governance.schema.json, etc.)
and provide copy-ready instances for the factory pipeline and manual backfill.

Resolves #26
…44)

Line 190 used \\generate-image instead of /generate-image, causing the
opencode CLI command to fail silently. The backslash is not a valid
command prefix — opencode commands use forward-slash (e.g. /generate-image).

Verified: line 190 now reads /generate-image, no backslash present.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 18, 2026

📝 Walkthrough

Walkthrough

Introduces team configuration for coding agents, adds a new MCP storage service to opencode.json, creates governance template files with documentation, and updates a command prefix in the thumbnail generation script.

Changes

Cohort / File(s) Summary
Configuration Files
my-sin-coding-agents.json, opencode.json
Adds team configuration for coding agents with member repositories and introduces a new sin-box-storage MCP entry with environment variables and local Python script command.
Governance Templates & Documentation
templates/governance/README.md, templates/governance/platform-registry.template.json, templates/governance/pr-watcher.template.json, templates/governance/repo-governance.template.json
Adds four new files defining governance templates for platform registry, PR watcher configuration, and repository governance workflows, along with usage documentation and schema references.
Code Adjustments
skills/gen-thumbnail/scripts/generate_thumbnail_pipeline.js
Updates command prefix from escaped backslash (\\generate-image) to forward slash (/generate-image) in the thumbnail pipeline runImage function.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰✨ A team takes shape with agents bright,
Storage MCPs ready for flight,
Templates and governance, all in place,
Commands run faster, at quickened pace! 🚀

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title specifically describes a single-line fix in generate_thumbnail_pipeline.js (backslash to forward slash in /generate-image command), but the changeset includes four additional files: a new team configuration (my-sin-coding-agents.json), a new MCP entry (opencode.json), a governance README, and three governance template files. The title is only partially related to the overall changeset. Revise the title to reflect the scope of all changes, such as 'feat: add SIN coding agents team config, governance templates, and box storage MCP' or split into multiple PRs if unrelated changes should be reviewed separately.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/gen-thumbnail-backslash

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🧹 Nitpick comments (2)
opencode.json (1)

503-505: Make the MCP command path portable (current path is machine-specific).

Line 504 hardcodes /Users/jeremy/..., which is host-specific. With Line 510 set to enabled, this is likely to break on other machines.

♻️ Safer default for shared config
-      "enabled": true
+      "enabled": false

Also applies to: 510-510

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@opencode.json` around lines 503 - 505, The command array currently uses a
machine-specific absolute path (the entry containing "python3" and
"/Users/jeremy/dev/A2A-SIN-Box-Storage/scripts/mcp-box-storage.py"); replace the
hardcoded absolute path with a portable alternative such as a
repository-relative path ("./scripts/mcp-box-storage.py") or make the script
path configurable via an environment variable (e.g., respect MCP_COMMAND or fall
back to "./scripts/mcp-box-storage.py"), or invoke an installed entrypoint on
PATH; update the JSON entry accordingly and ensure the script is included in the
repo or documented for installation.
my-sin-coding-agents.json (1)

2-2: Consider pinning the schema to a specific version.

The $schema URL references the main branch, which means the schema definition could change over time and potentially break validation. Consider using a versioned schema URL or a commit SHA for stability.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@my-sin-coding-agents.json` at line 2, The $schema field currently points to
the repository's main branch which can drift; update the "$schema" value to a
stable, versioned URL or a commit SHA (for example replace the "main" URL with a
tag/commit-based URL or a release-specific path) so the schema used for
validation is pinned and immutable; locate the "$schema" key in the JSON (the
existing "$schema" entry) and update its string value to the chosen versioned
URL or commit reference.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@my-sin-coding-agents.json`:
- Around line 1-55: The PR title references fixing path separators for a
/generate-image command but the changed file my-sin-coding-agents.json is a team
configuration (contains keys like "team_id", "members", and member entries such
as "A2A-SIN-Code-Tool" and "A2A-SIN-Code-Backend"); confirm whether this file
truly belongs to the change set, if the PR accidentally includes unrelated
files, and if so either remove this JSON from the PR or split into a separate PR
and update the PR description to list all affected files and the actual change
to the /generate-image command (or move the path-separator fix into the
repo/file that implements /generate-image).
- Around line 7-11: The model identifiers in the configuration (fields
primary_model and fallback_models containing
"google/antigravity-claude-sonnet-4-6", "openai/gpt-5.4", and
"google/antigravity-gemini-3.1-pro") look non-standard; confirm these exact IDs
match your deployment registry or replace them with official provider model IDs
(e.g., gemini-2.0-flash, gpt-4-turbo, etc.) used by your runtime, then update
primary_model and/or fallback_models accordingly and validate by running a quick
test call to the model endpoint to ensure the identifiers resolve.

In `@opencode.json`:
- Around line 506-509: The environment entry for BOX_STORAGE_API_KEY is using
unsupported interpolation syntax `${BOX_STORAGE_API_KEY}`; update the value in
the environment object (the "BOX_STORAGE_API_KEY" key) to use OpenCode's
supported form `{env:BOX_STORAGE_API_KEY}` so the real MCP API key is injected
at runtime instead of the literal string.

In `@templates/governance/pr-watcher.template.json`:
- Line 12: The template currently defaults followupCommand to an unconditional
approval ("followupCommand" value "gh pr review --approve"); change this to a
non-approving safe default by either removing the approve flag or clearing the
followupCommand value (e.g., set followupCommand to an empty string or a neutral
command) so adopters must explicitly opt into approving PRs; update the
"followupCommand" entry in the pr-watcher.template.json accordingly (refer to
the followupCommand key in the JSON).

In `@templates/governance/README.md`:
- Line 33: The README currently uses the macOS/BSD-only sed invocation `sed -i
''` which fails on GNU sed in CI; update the line that targets
`governance/*.json` and `platforms/*.json` to show both platform-specific
variants by replacing the single `sed -i '' 's/{{REPO_SLUG}}/your-agent-slug/g'
governance/*.json platforms/*.json` entry with two clearly labeled commands: one
example for macOS/BSD (using the `-i ''` form) and one for Linux/GNU (using the
`-i` form), and add a short note advising which to use in CI/environments to
prevent failures.

---

Nitpick comments:
In `@my-sin-coding-agents.json`:
- Line 2: The $schema field currently points to the repository's main branch
which can drift; update the "$schema" value to a stable, versioned URL or a
commit SHA (for example replace the "main" URL with a tag/commit-based URL or a
release-specific path) so the schema used for validation is pinned and
immutable; locate the "$schema" key in the JSON (the existing "$schema" entry)
and update its string value to the chosen versioned URL or commit reference.

In `@opencode.json`:
- Around line 503-505: The command array currently uses a machine-specific
absolute path (the entry containing "python3" and
"/Users/jeremy/dev/A2A-SIN-Box-Storage/scripts/mcp-box-storage.py"); replace the
hardcoded absolute path with a portable alternative such as a
repository-relative path ("./scripts/mcp-box-storage.py") or make the script
path configurable via an environment variable (e.g., respect MCP_COMMAND or fall
back to "./scripts/mcp-box-storage.py"), or invoke an installed entrypoint on
PATH; update the JSON entry accordingly and ensure the script is included in the
repo or documented for installation.
🪄 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: 06f99ac3-7ba8-46b4-9024-94cc083a5b1c

📥 Commits

Reviewing files that changed from the base of the PR and between bd52c5d and 63c9d76.

⛔ Files ignored due to path filters (1)
  • local-plugins/opencode-qwen-auth/dist/src/plugin.js is excluded by !**/dist/**
📒 Files selected for processing (7)
  • my-sin-coding-agents.json
  • opencode.json
  • skills/gen-thumbnail/scripts/generate_thumbnail_pipeline.js
  • templates/governance/README.md
  • templates/governance/platform-registry.template.json
  • templates/governance/pr-watcher.template.json
  • templates/governance/repo-governance.template.json

Comment thread my-sin-coding-agents.json
Comment on lines +1 to +55
{
"$schema": "https://github.com/Delqhi/upgraded-opencode-stack/blob/main/schemas/team-config.schema.json",
"team_id": "team-coding-agents",
"name": "Team Coding Agents (6 dedicated repos)",
"description": "6 dedicated A2A Coder Agents with individual GitHub repos — split from monolithic OpenSIN-Code for isolated deployments, independent versioning, and crash-storm protection. Established after BUG-OCI-001 (OCI VM disk-full incident, 2026-04-16).",
"manager": "A2A-SIN-Zeus",
"primary_model": "google/antigravity-claude-sonnet-4-6",
"fallback_models": [
"openai/gpt-5.4",
"google/antigravity-gemini-3.1-pro",
"qwen/coder-model"
],
"established": "2026-04-17",
"bug_references": [
"BUG-OCI-001"
],
"members": {
"A2A-SIN-Code-Backend": {
"github": "https://github.com/OpenSIN-AI/A2A-SIN-Code-Backend",
"port": 7863,
"purpose": "Backend specialists — Server, OracleCloud, APIs",
"specialization": "backend-api-server"
},
"A2A-SIN-Code-Command": {
"github": "https://github.com/OpenSIN-AI/A2A-SIN-Code-Command",
"port": 7861,
"purpose": "Command/CLI agents — shell, automation, scripting",
"specialization": "cli-automation"
},
"A2A-SIN-Code-Frontend": {
"github": "https://github.com/OpenSIN-AI/A2A-SIN-Code-Frontend",
"port": 7865,
"purpose": "Frontend specialists — UI/UX, React, CSS",
"specialization": "frontend-ui-ux"
},
"A2A-SIN-Code-Fullstack": {
"github": "https://github.com/OpenSIN-AI/A2A-SIN-Code-Fullstack",
"port": 7864,
"purpose": "Fullstack specialists — end-to-end implementations",
"specialization": "fullstack-end-to-end"
},
"A2A-SIN-Code-Plugin": {
"github": "https://github.com/OpenSIN-AI/A2A-SIN-Code-Plugin",
"port": 7860,
"purpose": "Plugin developers — MCPs, integrations, auth",
"specialization": "plugins-mcps-integrations"
},
"A2A-SIN-Code-Tool": {
"github": "https://github.com/OpenSIN-AI/A2A-SIN-Code-Tool",
"port": 7862,
"purpose": "Tool builders — CLI utilities, external integrations",
"specialization": "cli-utilities-external-tools"
}
}
} No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Clarify the relationship between PR title and file content.

The PR title indicates a fix for "replace backslash with forward slash in /generate-image command," but this file (my-sin-coding-agents.json) is a team configuration file with no apparent connection to image generation or path separators.

Please verify:

  • Is this the correct file for this PR?
  • Does the PR contain multiple unrelated changes?
  • Should this be in a separate PR?
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@my-sin-coding-agents.json` around lines 1 - 55, The PR title references
fixing path separators for a /generate-image command but the changed file
my-sin-coding-agents.json is a team configuration (contains keys like "team_id",
"members", and member entries such as "A2A-SIN-Code-Tool" and
"A2A-SIN-Code-Backend"); confirm whether this file truly belongs to the change
set, if the PR accidentally includes unrelated files, and if so either remove
this JSON from the PR or split into a separate PR and update the PR description
to list all affected files and the actual change to the /generate-image command
(or move the path-separator fix into the repo/file that implements
/generate-image).

Comment thread my-sin-coding-agents.json
Comment on lines +7 to +11
"primary_model": "google/antigravity-claude-sonnet-4-6",
"fallback_models": [
"openai/gpt-5.4",
"google/antigravity-gemini-3.1-pro",
"qwen/coder-model"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Are "google/antigravity-claude-sonnet-4-6" and "google/antigravity-gemini-3.1-pro" valid Google AI model identifiers as of April 2026?

💡 Result:

No, "google/antigravity-claude-sonnet-4-6" and "google/antigravity-gemini-3.1-pro" are not valid Google AI model identifiers as of April 2026. They appear to be provider-prefixed model IDs used in third-party tools like OpenClaw that integrate with Google's Antigravity IDE/platform, which hosts models such as claude-sonnet-4-6 and gemini-3.1-pro (or variants like gemini-3.1-pro-high/low). Official Google AI model identifiers, per Vertex AI and Gemini documentation, use formats like "gemini-3.1-pro" or "claude-sonnet-4-5" without the "google/antigravity-" prefix, as Antigravity acts as a unified gateway for models from Google, Anthropic, etc.

Citations:


Confirm these model identifiers match your deployment environment.

These model IDs use non-standard formatting:

  • google/antigravity-claude-sonnet-4-6 and google/antigravity-gemini-3.1-pro appear to be OpenClaw/Antigravity platform-specific identifiers rather than standard Google AI endpoints
  • openai/gpt-5.4 has an unusually high version number

If these are intentional for your deployment, confirm they're correct. If deploying with standard APIs, they should be updated to use official model identifiers (e.g., gemini-2.0-flash, gpt-4-turbo).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@my-sin-coding-agents.json` around lines 7 - 11, The model identifiers in the
configuration (fields primary_model and fallback_models containing
"google/antigravity-claude-sonnet-4-6", "openai/gpt-5.4", and
"google/antigravity-gemini-3.1-pro") look non-standard; confirm these exact IDs
match your deployment registry or replace them with official provider model IDs
(e.g., gemini-2.0-flash, gpt-4-turbo, etc.) used by your runtime, then update
primary_model and/or fallback_models accordingly and validate by running a quick
test call to the model endpoint to ensure the identifiers resolve.

Comment thread opencode.json
Comment on lines +506 to +509
"environment": {
"BOX_STORAGE_URL": "http://room-09-box-storage:3000",
"BOX_STORAGE_API_KEY": "${BOX_STORAGE_API_KEY}"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

OpenCode CLI opencode.jsondocs: what is the supported syntax for environment variable references insidemcp..environmentvalues —${VAR}or{env:VAR}?

💡 Result:

The supported syntax for environment variable references inside mcp..environment values in OpenCode CLI's opencode.json is {env:VAR}. OpenCode's configuration files support variable substitution throughout, including in MCP configurations. The official documentation explicitly states: "Use {env:VARIABLE_NAME} to substitute environment variables." Examples show this syntax used in MCP URLs, headers, and command args (e.g., --api-key "{env:CONTEXT7_API_KEY}"), and since environment values are strings processed the same way, it applies there. No sources mention ${VAR} as supported syntax. Hardcoded string values are shown in basic examples (e.g., "MY_ENV_VAR": "my_env_var_value"), but the general variable substitution mechanism uses {env:VAR}. This is confirmed across official config docs, MCP server docs, and GitHub issues/discussions where {env:VAR} is used successfully in MCP contexts.

Citations:


Fix env variable interpolation syntax for MCP API key.

At Line 508, BOX_STORAGE_API_KEY uses ${BOX_STORAGE_API_KEY}, which OpenCode does not support. The correct syntax is {env:BOX_STORAGE_API_KEY}. With the current syntax, the literal string ${BOX_STORAGE_API_KEY} will be passed to the MCP server, causing authentication to fail at runtime.

Fix
       "environment": {
         "BOX_STORAGE_URL": "http://room-09-box-storage:3000",
-        "BOX_STORAGE_API_KEY": "${BOX_STORAGE_API_KEY}"
+        "BOX_STORAGE_API_KEY": "{env:BOX_STORAGE_API_KEY}"
       },
📝 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.

Suggested change
"environment": {
"BOX_STORAGE_URL": "http://room-09-box-storage:3000",
"BOX_STORAGE_API_KEY": "${BOX_STORAGE_API_KEY}"
},
"environment": {
"BOX_STORAGE_URL": "http://room-09-box-storage:3000",
"BOX_STORAGE_API_KEY": "{env:BOX_STORAGE_API_KEY}"
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@opencode.json` around lines 506 - 509, The environment entry for
BOX_STORAGE_API_KEY is using unsupported interpolation syntax
`${BOX_STORAGE_API_KEY}`; update the value in the environment object (the
"BOX_STORAGE_API_KEY" key) to use OpenCode's supported form
`{env:BOX_STORAGE_API_KEY}` so the real MCP API key is injected at runtime
instead of the literal string.

"noisePrefixes": ["chore(deps):", "ci:"],
"noiseSubstrings": ["bump version", "auto-generated"],
"watcherScript": "scripts/watch-pr-feedback.sh",
"followupCommand": "gh pr review --approve",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Avoid defaulting to unconditional PR approval in shared governance templates.

gh pr review --approve as a template default creates a broad auto-approval path for every adopting repo. Make approval explicit per-repo, and keep the shared default non-approving.

🔧 Safer default
-  "followupCommand": "gh pr review --approve",
+  "followupCommand": "gh pr review --comment --body \"Auto-review completed; manual approval required.\"",
📝 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.

Suggested change
"followupCommand": "gh pr review --approve",
"followupCommand": "gh pr review --comment --body \"Auto-review completed; manual approval required.\"",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@templates/governance/pr-watcher.template.json` at line 12, The template
currently defaults followupCommand to an unconditional approval
("followupCommand" value "gh pr review --approve"); change this to a
non-approving safe default by either removing the approve flag or clearing the
followupCommand value (e.g., set followupCommand to an empty string or a neutral
command) so adopters must explicitly opt into approving PRs; update the
"followupCommand" entry in the pr-watcher.template.json accordingly (refer to
the followupCommand key in the JSON).

cp templates/governance/platform-registry.template.json platforms/registry.json

# Replace placeholder with actual repo slug
sed -i '' 's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify docs do not contain BSD-only in-place sed syntax without GNU alternative.
# Expected result after fix: either no matches, or both macOS and Linux variants documented.
rg -nP "sed\s+-i\s+''" --type md

Repository: Delqhi/upgraded-opencode-stack

Length of output: 188


🏁 Script executed:

# Search for other sed usages in documentation
rg "sed\s+" templates/governance/README.md -A 1 -B 1

# Check if there are any other platform-specific notes or patterns in the repo
rg -l "macOS|Linux|GNU|BSD" --type md | head -10

# Look for existing sed patterns in shell scripts or docs
rg "sed\s+-i" --type sh -c 5

Repository: Delqhi/upgraded-opencode-stack

Length of output: 1102


🏁 Script executed:

# Get more context around the sed line in the README
cat -n templates/governance/README.md | sed -n '25,40p'

# Check for any platform-specific guidance in the repo
rg "platform|macOS|Linux|cross-platform" templates/governance/README.md

# Look for .sed alternatives or other sed patterns
rg "\-i\." --type md --type sh | head -10

Repository: Delqhi/upgraded-opencode-stack

Length of output: 1471


🏁 Script executed:

# Check if there are shell scripts in the repo with sed usage patterns
fd -e sh -e bash | head -20 | xargs rg "sed\s+-i" --no-heading -A 0 -B 0

# Check the exact context of the sed command in the README
cat -n templates/governance/README.md | sed -n '32,34p'

# Look for any existing cross-platform handling patterns
rg "platform" templates/governance/README.md --context 2

Repository: Delqhi/upgraded-opencode-stack

Length of output: 2700


🏁 Script executed:

# Check if there's any CI/GitHub Actions that might indicate platform support
fd -e yml -e yaml | xargs grep -l "macos\|ubuntu\|linux" | head -5

# Look for any .sedrc or sed configuration
find . -name ".sed*" -o -name "*sed*rc"

# Check if there's any mention of cross-platform or sed alternatives
rg "cross.platform|gsed|perl.*substitute" --type md --type sh

Repository: Delqhi/upgraded-opencode-stack

Length of output: 544


🏁 Script executed:

# Check the CI workflow to see what platform(s) it runs on
cat scripts/ci-workflow-template.yml | head -50

# Look for any OS detection or platform-specific commands in setup
rg "runs-on|runner|uname|darwin" scripts/ci-workflow-template.yml

Repository: Delqhi/upgraded-opencode-stack

Length of output: 514


Provide both macOS/BSD and Linux/GNU sed syntax variants in the documentation.

The sed -i '' command fails on GNU sed (standard on Linux/CI environments). Since the CI runs on ubuntu-latest, users following these docs will encounter errors. Provide both variants:

Suggested docs update
# Replace placeholder with actual repo slug
-sed -i '' 's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json
+# macOS / BSD sed
+sed -i '' 's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json
+# Linux / GNU sed
+sed -i 's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json
📝 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.

Suggested change
sed -i '' 's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json
# Replace placeholder with actual repo slug
# macOS / BSD sed
sed -i '' 's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json
# Linux / GNU sed
sed -i 's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@templates/governance/README.md` at line 33, The README currently uses the
macOS/BSD-only sed invocation `sed -i ''` which fails on GNU sed in CI; update
the line that targets `governance/*.json` and `platforms/*.json` to show both
platform-specific variants by replacing the single `sed -i ''
's/{{REPO_SLUG}}/your-agent-slug/g' governance/*.json platforms/*.json` entry
with two clearly labeled commands: one example for macOS/BSD (using the `-i ''`
form) and one for Linux/GNU (using the `-i` form), and add a short note advising
which to use in CI/environments to prevent failures.

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