Feature/opencode compatibility#4
Conversation
|
Too many files changed? Review this PR in Change Stack to see how the pieces fit before you dive in. 📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR introduces OpenCode as an integrated interface to BosskuAI, adding foundational configuration, 16 specialized agent role definitions, 11 command workflow specifications, and supporting installation logic. The changes enable coordinated AI-assisted workflows for planning, execution, research, code review, QA, and learning across multiple domains. ChangesOpenCode Integration & Agent/Command Framework
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes The review spans diverse agent specifications and command workflows with varying functional purposes, requires understanding MCP server configuration and permission models, and includes installation script logic changes. While each agent and command follows a consistent pattern, reviewers must assess the coherence of role definitions, output schemas, guardrails, and skill integration references across 27 new markdown specifications and updated orchestration files. Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 inconclusive)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
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.
Actionable comments posted: 10
Note
Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.
🟡 Minor comments (22)
.opencode/agents/e2e-runner.md-26-26 (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winSpecify the fenced block language for the report template.
Line 26 should include a language identifier to satisfy MD040 and keep markdown tooling clean.
Suggested diff
-``` +```md ## E2E Test Report: <Suite> | <Date> ... -``` +```🤖 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 @.opencode/agents/e2e-runner.md at line 26, The fenced code block that contains the report template (starting triple-backticks before "## E2E Test Report: <Suite> | <Date>") lacks a language identifier, triggering MD040; update the opening fence from ``` to ```md so the block is marked as Markdown and tools/linters recognize it (ensure only the opening fence is changed and the closing ``` remains unchanged)..opencode/agents/browser-agent.md-26-26 (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language tag to the fenced output example.
The code fence starts without a language, which triggers markdownlint MD040 and reduces editor rendering quality.
Suggested diff
-``` +```md ## Browser QA Report: <URL> | <Date> ... -``` +```🤖 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 @.opencode/agents/browser-agent.md at line 26, The fenced code block in the Browser QA Report example is missing a language tag, causing markdownlint MD040; update the opening fence to include the markdown language tag (change the triple backticks before "## Browser QA Report: <URL> | <Date>" to "```md") so the example renders correctly and linting passes..opencode/agents/design-reviewer.md-61-61 (1)
61-61:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language hint to the output-format code fence.
The fenced block should declare a language to satisfy markdownlint MD040.
Suggested diff
-``` +```md ## Design Review: <Screen/Component> ... -``` +```🤖 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 @.opencode/agents/design-reviewer.md at line 61, Add a language hint "md" to the output-format code fence so the opening fence becomes "```md" instead of "```" around the block that starts with "## Design Review: <Screen/Component>" in .opencode/agents/design-reviewer.md to satisfy markdownlint MD040; update the opening fence only and keep the closing fence as-is..opencode/agents/doc-updater.md-29-29 (1)
29-29:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language to the output-format fence.
This block is unlabeled and fails markdownlint MD040.
🤖 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 @.opencode/agents/doc-updater.md at line 29, The closing code fence is unlabeled (```) and triggers markdownlint MD040; update the corresponding code block in doc-updater.md by adding an appropriate language identifier after the opening ``` (for example ```bash, ```json, ```text, etc.) matching the block content so the fence is labeled and MD040 is satisfied..opencode/agents/build-fixer.md-29-29 (1)
29-29:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language to the fenced output template block.
The code fence under “Output Format” is missing a language tag, which triggers markdownlint MD040.
🤖 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 @.opencode/agents/build-fixer.md at line 29, The fenced code block under the "Output Format" section is missing a language tag (triggering markdownlint MD040); edit the fenced output template block (the triple-backtick code fence in the "Output Format" section) and add the appropriate language identifier (e.g., "md" or "markdown") immediately after the opening ``` to satisfy the linter and clarify the block type..opencode/agents/refactor-cleaner.md-29-29 (1)
29-29:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix missing language tag on the fenced template block.
The output-format fence is unlabeled and will keep triggering MD040.
🤖 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 @.opencode/agents/refactor-cleaner.md at line 29, A fenced code block in the file currently uses an unlabeled triple-backtick (```) which triggers MD040; add an appropriate language tag to the opening fence (for example ```output-format or ```text) so the block is labeled and the markdown lint rule MD040 is satisfied by changing the opening fence from ``` to a tagged fence like ```output-format..opencode/agents/planner.md-29-29 (1)
29-29:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language tag to the fenced plan template block.
The unlabeled fence violates markdownlint MD040.
🤖 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 @.opencode/agents/planner.md at line 29, The fenced plan template block currently uses an unlabeled triple-backtick fence (```) which triggers markdownlint MD040; update that fence to include an explicit language tag (for example change the opening fence to ```text or ```markdown) so the plan template block is labeled and the linter warning is resolved..opencode/agents/security-reviewer.md-29-29 (1)
29-29:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language identifier to the fenced output example.
This fence is currently unlabeled and violates markdownlint MD040.
🤖 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 @.opencode/agents/security-reviewer.md at line 29, The markdown fenced output example is missing a language identifier (violates markdownlint MD040); locate the unlabeled fenced code block (the triple-backtick fence used for the output example) and add an appropriate language tag after the opening ``` (for example ```text or ```json depending on content) so the fence is labeled and MD040 is satisfied..opencode/agents/tdd-guide.md-35-42 (1)
35-42:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHarden markdown structure for nested code + table rendering.
The output template embeds a fenced
typescriptblock inside another triple-backtick fence and places a table tightly inside the same block area; this is fragile and causes lint/render drift. Use a longer outer fence (e.g., ````markdown) and keep required blank lines around the table section.Also applies to: 55-57
🤖 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 @.opencode/agents/tdd-guide.md around lines 35 - 42, The nested fenced code blocks in the TDD guide (the RED test example containing the typescript block with it('should <behavior>') and the other similar block later) are fragile; change the outer fence to a longer delimiter (e.g., ````markdown) and ensure there are blank lines before and after any embedded fenced blocks and before/after any tables placed next to those blocks so the inner ```typescript fence and following table render correctly; update both occurrences mentioned (the block with the it('should <behavior>') example and the similar block at the later occurrence) to follow this pattern..opencode/agents/code-reviewer.md-30-30 (1)
30-30:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winSpecify the fenced code block language in the output template.
Line 30 should include a language identifier to satisfy markdownlint (MD040).
🤖 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 @.opencode/agents/code-reviewer.md at line 30, The fenced code block in the output template currently uses a bare opening fence (```) which triggers markdownlint MD040; update the opening fence to include a language identifier (for example replace ``` with ```text or ```json as appropriate) so the block is explicitly typed and MD040 is satisfied, ensuring any template variable or template string that emits the ``` fence is changed accordingly..opencode/agents/docs-lookup.md-25-25 (1)
25-25:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winSpecify languages for both fenced template blocks.
Both fences are missing language tags and will continue to trigger MD040.
Also applies to: 46-46
🤖 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 @.opencode/agents/docs-lookup.md at line 25, Add explicit language identifiers to the two fenced code blocks in .opencode/agents/docs-lookup.md (the template fences flagged by MD040) by replacing the bare ``` fences with language-tagged fences that match each block's content (e.g., ```bash, ```yaml, ```json, etc.), ensuring both fenced template blocks are annotated so the MD040 linter warning is resolved..opencode/agents/tdd-guide.md-26-26 (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winLabel the outer fenced template blocks with a language.
Both outer fences are missing a language tag and trigger MD040.
Also applies to: 58-58
🤖 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 @.opencode/agents/tdd-guide.md at line 26, The two outer triple-backtick fenced template blocks are missing a language identifier (triggering MD040); locate the outer fenced blocks (the top-level ```...``` template sections) and add an appropriate language tag (for example ```html, ```xml, or ```text depending on the content) to each fence so the blocks are language-labeled and satisfy the linter..opencode/agents/prototype-builder.md-26-26 (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language to the fenced output template block.
Line 26 triggers MD040; use
markdownfor this template fence.🤖 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 @.opencode/agents/prototype-builder.md at line 26, The fenced output template block currently uses a bare triple-backtick fence which triggers MD040; update the fence to include the language identifier by changing the opening fence from ``` to ```markdown so the block is explicitly marked as markdown (look for the fenced output template block / opening ``` in prototype-builder.md)..opencode/agents/harness-optimizer.md-26-26 (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winSpecify fenced code block language.
Markdown lint warning MD040 is valid here; add a language tag for the output template block.
Suggested fix
-``` +```markdown ## BosskuAI Harness Health Report ... -``` +```🤖 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 @.opencode/agents/harness-optimizer.md at line 26, The fenced code block that contains the output template (starting with "## BosskuAI Harness Health Report") is missing a language tag; update the triple-backtick fence to include "markdown" (i.e., ```markdown) so the block is correctly flagged and avoids MD040 lint warnings—edit the block in .opencode/agents/harness-optimizer.md where the output template is defined..opencode/agents/customer-researcher.md-21-21 (1)
21-21:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix markdownlint warnings in template sections.
Line 21 triggers MD037 (underscore emphasis parsing), and Line 27 triggers MD040 (missing fenced language). Both are low-effort and help keep docs/lint clean.
Suggested patch
-3. **JTBD framing** — For each insight: "When I ___, I want to ___, so I can ___." Captures context, motivation, and outcome. +3. **JTBD framing** — For each insight: `When I ___, I want to ___, so I can ___.` Captures context, motivation, and outcome. -``` +```md ## Customer Research Report @@ -``` +```Also applies to: 27-27
🤖 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 @.opencode/agents/customer-researcher.md at line 21, Escape or neutralize the underscores in the JTBD sentence "When I ___, I want to ___, so I can ___." (e.g., escape each underscore or wrap the whole sentence in backticks) to fix MD037, and add the markdown language tag to the fenced code blocks (change ``` to ```md) in the template section to fix MD040; locate the JTBD line and the adjacent fenced code fences in Customer Research Report within .opencode/agents/customer-researcher.md (look for the exact JTBD sentence and the ``` fences) and apply these two small edits..opencode/agents/market-researcher.md-26-26 (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language to the fenced output template block.
This removes MD040 and keeps markdownlint clean.
Suggested patch
-``` +```md ## Market Research Report: <Topic> @@ -``` +```🤖 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 @.opencode/agents/market-researcher.md at line 26, The fenced code block that contains the "Market Research Report: <Topic>" template is missing a language tag; change the opening fence from ``` to ```md to add the Markdown language identifier so markdownlint rule MD040 is satisfied and the block reads as a Markdown code fence..opencode/agents/competitor-tracker.md-26-26 (1)
26-26:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winSpecify fenced block language for the output template.
Line 26 should use a language tag to satisfy MD040.
Suggested patch
-``` +```md ## Competitor Check: <Date> @@ -``` +```🤖 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 @.opencode/agents/competitor-tracker.md at line 26, The fenced code block around the output template for "## Competitor Check: <Date>" needs a language tag to satisfy MD040; edit the block delimiter near that header (the triple backticks surrounding the template in .opencode/agents/competitor-tracker.md) to include a language like "md" (i.e., change ``` to ```md) so the markdown linter recognizes the fenced block language..opencode/agents/financial-analyst.md-27-27 (1)
27-27:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winMark the fenced template block with a language.
Using
mdhere resolves MD040.Suggested patch
-``` +```md ## Financial Model Summary @@ -``` +```🤖 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 @.opencode/agents/financial-analyst.md at line 27, Update the fenced code block that contains "## Financial Model Summary" to specify the markdown language by changing the opening fence from ``` to ```md so the block is marked with a language and satisfies MD040; locate the block that starts with the header "## Financial Model Summary" and modify only the opening fence to ```md, leaving the closing fence unchanged..opencode/agents/lead-finder.md-29-29 (1)
29-29:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd fenced code language in the output-format block.
This addresses MD040 and avoids lint noise.
Suggested patch
-``` +```md ## Lead Intelligence Report @@ -``` +```🤖 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 @.opencode/agents/lead-finder.md at line 29, Change the output-format fenced code block to include the language specifier "md" by replacing the opening triple backticks for the block that contains "## Lead Intelligence Report" with "```md" (leave the closing ``` intact) so the block is explicitly marked as Markdown and silences MD040 lint warnings..opencode/agents/growth-experimenter.md-27-27 (1)
27-27:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd a language tag to the fenced output template.
This fixes MD040 for the block at Line 27.
Suggested patch
-``` +```md ## Experiment Brief: <Name> @@ -``` +```🤖 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 @.opencode/agents/growth-experimenter.md at line 27, The fenced output template starting with "## Experiment Brief: <Name>" uses a plain code fence; update the opening fence to include the markdown language tag by changing the opening "```" to "```md" so the block is marked as Markdown (refer to the fenced block that contains "## Experiment Brief: <Name>" in growth-experimenter.md)..opencode/commands/quality-gate.md-4-6 (1)
4-6:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd explicit
/quality-gateinvocation syntax to the command header.This command doc does not currently show the slash invocation form, which can make usage inconsistent with the OpenCode command contract.
Suggested patch
# BosskuAI Quality Gate Command Use this command when you want a concise quality decision on the current work before moving on. +Invoke with: `/quality-gate`As per coding guidelines: "
.opencode/commands/**: Define 11 custom commands in.opencode/commands/and invoke them using/command-namesyntax".🤖 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 @.opencode/commands/quality-gate.md around lines 4 - 6, Update the command header to include the explicit slash invocation form by adding "/quality-gate" alongside the human title; specifically change the header text "BosskuAI Quality Gate Command" to include the invocation syntax (e.g., "BosskuAI Quality Gate Command — /quality-gate") so the doc follows the `.opencode/commands/**` convention and clearly shows how to invoke the command; ensure any introductory sentence references the slash form consistently (use "/quality-gate" wherever the command is mentioned)..opencode/commands/quality-gate.md-26-32 (1)
26-32:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRequire the
[BOSSKUAI]indicator in the output template.The output contract should explicitly require the mandatory indicator block/header so downstream command outputs stay consistent with repo protocol.
Suggested patch
## Output +- `[BOSSKUAI]` indicator at the top of the response - scope reviewed - gate decision - top findings or risks - missing checks - recommended next actionBased on learnings: "Always include the [BOSSKUAI] indicator at the top of responses".
🤖 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 @.opencode/commands/quality-gate.md around lines 26 - 32, Update the "## Output" template to mandate the [BOSSKUAI] indicator at the top of the output block so every downstream command includes it consistently; modify the "## Output" section (the header and its bullet list) to begin with a required line like "[BOSSKUAI] <status/metadata>" and add a short note that this indicator is mandatory for all responses produced from this template, referencing the "## Output" header and the existing list items to ensure the indicator is the first item emitted.
🧹 Nitpick comments (1)
.opencode/agents/docs-lookup.md (1)
4-6: ⚡ Quick winTighten subagent permissions to least privilege.
This agent is defined as documentation lookup, but it has
edit: allowandbash: allow. Restricting to deny-by-default reduces accidental or unnecessary write/command execution surface.Also applies to: 48-53
🤖 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 @.opencode/agents/docs-lookup.md around lines 4 - 6, The agent's permissions are too permissive: change the permission block so the docs-lookup subagent uses least privilege by removing or setting permission.edit and permission.bash to deny (or omit them) and only allow read/lookup operations; update the same permission keys in the other occurrence referenced (lines 48-53) so both blocks enforce deny-by-default for edits and shell execution, leaving only the minimal read/lookup privileges required for documentation lookup.
🤖 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 @.opencode/agents/harness-optimizer.md:
- Line 20: The audit step currently targets the wrong directory ("agents/")
which misses OpenCode agents living under ".opencode/agents/"; update the audit
logic to list files from ".opencode/agents/" (not "agents/") and compare that
inventory to AGENTS.md so the roster check and the "Flag agents with no
corresponding skill" logic use the canonical OpenCode agent path; ensure any
variable or config that referenced "agents/" is changed to ".opencode/agents/"
so functions that build the agent list and perform the comparison (the agent
audit routine) operate on the correct directory.
- Around line 1-7: Add an explicit front-matter "name" field so the subagent can
be routed via `@harness-optimizer`; update the YAML front-matter to include name:
harness-optimizer (or the exact agent identifier you want) at the top-level of
the markdown so loaders recognize the subagent identity and `@harness-optimizer`
invocations resolve correctly.
In @.opencode/agents/prototype-builder.md:
- Around line 1-7: The front matter in prototype-builder.md is missing a `name`
field which prevents invocation via `@agent-name`; add a top-level YAML `name:
prototype-builder` (or the intended agent identifier) to the existing front
matter so the agent can be resolved by `@prototype-builder`; ensure the `name`
value matches the file/agent identifier and keep it at the same level as
`description`, `mode`, and `permission`.
In @.opencode/commands/competitor-check.md:
- Line 6: Update the invocation text to document a slash command rather than a
skill trigger: replace the phrase referencing `bosskuai-competitor-intelligence`
with the slash command `/competitor-check`, and reword the sentence to read
something like "Invoke the `/competitor-check` slash command for systematic
competitor monitoring" so the command doc in `.opencode/commands/**` uses the
required `/command-name` syntax.
In @.opencode/commands/continuous-learning.md:
- Line 30: Replace the skill-style token "bosskuai-continuous-learning" in the
execution step with the slash command "/continuous-learning" so the file in
.opencode/commands (specifically the execution step that references
bosskuai-continuous-learning and the learning-promotion/continuous-learning
checklists) uses the required `/command-name` syntax; update any adjacent
examples or instructions in continuous-learning.md to invoke
"/continuous-learning" instead of the skill-style token to comply with the
.opencode/commands/** guideline.
In @.opencode/commands/deep-research.md:
- Line 6: Update the command invocation text to use the slash-command format:
replace the skill-style trigger "bosskuai-deep-research" with the OpenCode
command "/deep-research" so the doc uses the required `/command-name` syntax for
invoking the deep-research command.
In @.opencode/commands/investor-prep.md:
- Line 6: Replace the raw skill name "bosskuai-investor-prep" with the
command-style invocation "/investor-prep" in the documentation text so it reads
something like "Activate the /investor-prep command to build or review
fundraising materials"; update any other occurrences in this doc that reference
bosskuai-investor-prep to use the slash-prefixed command name so the file
follows the .opencode/commands command-syntax guideline.
In @.opencode/commands/rules-distill.md:
- Line 16: Update the command invocation text so it uses the slash-command
syntax: replace occurrences of the non-slash token `bosskuai-rules-distill` with
`/rules-distill` and ensure any surrounding guidance (the "rule distillation
checklist" reference) reflects the new `/rules-distill` invocation so the
document in .opencode/commands follows the required `/command-name` convention.
In @.opencode/commands/skill-stocktake.md:
- Line 17: Replace the inline skill token "bosskuai-skill-stocktake" with the
slash-command invocation "/skill-stocktake" in the skill-stocktake command docs
and ensure the skill health checklist is referenced using the same slash-command
syntax; update any occurrences in the markdown where the token form appears and
confirm headings or examples use "/skill-stocktake" consistently.
In `@scripts/install.sh`:
- Around line 166-169: The loop that copies ai-assistant subpaths (for sub in
memory references scripts hooks; do copy_path "ai-assistant/$sub"; done)
unconditionally copies ai-assistant/memory which allows --sync-layer to
overwrite existing memory; change this to skip copying "ai-assistant/memory"
when running in sync-layer mode unless the user explicitly set the
preserve-memory flag (e.g. check the variable set by --sync-layer and the
variable set by --preserve-memory or --skills-only) so that memory is only
copied when not syncing layers or when preserve-memory is true; update the
conditional around the copy_path call (or split the loop) to respect those flags
while leaving other subfolders unaffected.
---
Minor comments:
In @.opencode/agents/browser-agent.md:
- Line 26: The fenced code block in the Browser QA Report example is missing a
language tag, causing markdownlint MD040; update the opening fence to include
the markdown language tag (change the triple backticks before "## Browser QA
Report: <URL> | <Date>" to "```md") so the example renders correctly and linting
passes.
In @.opencode/agents/build-fixer.md:
- Line 29: The fenced code block under the "Output Format" section is missing a
language tag (triggering markdownlint MD040); edit the fenced output template
block (the triple-backtick code fence in the "Output Format" section) and add
the appropriate language identifier (e.g., "md" or "markdown") immediately after
the opening ``` to satisfy the linter and clarify the block type.
In @.opencode/agents/code-reviewer.md:
- Line 30: The fenced code block in the output template currently uses a bare
opening fence (```) which triggers markdownlint MD040; update the opening fence
to include a language identifier (for example replace ``` with ```text or
```json as appropriate) so the block is explicitly typed and MD040 is satisfied,
ensuring any template variable or template string that emits the ``` fence is
changed accordingly.
In @.opencode/agents/competitor-tracker.md:
- Line 26: The fenced code block around the output template for "## Competitor
Check: <Date>" needs a language tag to satisfy MD040; edit the block delimiter
near that header (the triple backticks surrounding the template in
.opencode/agents/competitor-tracker.md) to include a language like "md" (i.e.,
change ``` to ```md) so the markdown linter recognizes the fenced block
language.
In @.opencode/agents/customer-researcher.md:
- Line 21: Escape or neutralize the underscores in the JTBD sentence "When I
___, I want to ___, so I can ___." (e.g., escape each underscore or wrap the
whole sentence in backticks) to fix MD037, and add the markdown language tag to
the fenced code blocks (change ``` to ```md) in the template section to fix
MD040; locate the JTBD line and the adjacent fenced code fences in Customer
Research Report within .opencode/agents/customer-researcher.md (look for the
exact JTBD sentence and the ``` fences) and apply these two small edits.
In @.opencode/agents/design-reviewer.md:
- Line 61: Add a language hint "md" to the output-format code fence so the
opening fence becomes "```md" instead of "```" around the block that starts with
"## Design Review: <Screen/Component>" in .opencode/agents/design-reviewer.md to
satisfy markdownlint MD040; update the opening fence only and keep the closing
fence as-is.
In @.opencode/agents/doc-updater.md:
- Line 29: The closing code fence is unlabeled (```) and triggers markdownlint
MD040; update the corresponding code block in doc-updater.md by adding an
appropriate language identifier after the opening ``` (for example ```bash,
```json, ```text, etc.) matching the block content so the fence is labeled and
MD040 is satisfied.
In @.opencode/agents/docs-lookup.md:
- Line 25: Add explicit language identifiers to the two fenced code blocks in
.opencode/agents/docs-lookup.md (the template fences flagged by MD040) by
replacing the bare ``` fences with language-tagged fences that match each
block's content (e.g., ```bash, ```yaml, ```json, etc.), ensuring both fenced
template blocks are annotated so the MD040 linter warning is resolved.
In @.opencode/agents/e2e-runner.md:
- Line 26: The fenced code block that contains the report template (starting
triple-backticks before "## E2E Test Report: <Suite> | <Date>") lacks a language
identifier, triggering MD040; update the opening fence from ``` to ```md so the
block is marked as Markdown and tools/linters recognize it (ensure only the
opening fence is changed and the closing ``` remains unchanged).
In @.opencode/agents/financial-analyst.md:
- Line 27: Update the fenced code block that contains "## Financial Model
Summary" to specify the markdown language by changing the opening fence from ```
to ```md so the block is marked with a language and satisfies MD040; locate the
block that starts with the header "## Financial Model Summary" and modify only
the opening fence to ```md, leaving the closing fence unchanged.
In @.opencode/agents/growth-experimenter.md:
- Line 27: The fenced output template starting with "## Experiment Brief:
<Name>" uses a plain code fence; update the opening fence to include the
markdown language tag by changing the opening "```" to "```md" so the block is
marked as Markdown (refer to the fenced block that contains "## Experiment
Brief: <Name>" in growth-experimenter.md).
In @.opencode/agents/harness-optimizer.md:
- Line 26: The fenced code block that contains the output template (starting
with "## BosskuAI Harness Health Report") is missing a language tag; update the
triple-backtick fence to include "markdown" (i.e., ```markdown) so the block is
correctly flagged and avoids MD040 lint warnings—edit the block in
.opencode/agents/harness-optimizer.md where the output template is defined.
In @.opencode/agents/lead-finder.md:
- Line 29: Change the output-format fenced code block to include the language
specifier "md" by replacing the opening triple backticks for the block that
contains "## Lead Intelligence Report" with "```md" (leave the closing ```
intact) so the block is explicitly marked as Markdown and silences MD040 lint
warnings.
In @.opencode/agents/market-researcher.md:
- Line 26: The fenced code block that contains the "Market Research Report:
<Topic>" template is missing a language tag; change the opening fence from ```
to ```md to add the Markdown language identifier so markdownlint rule MD040 is
satisfied and the block reads as a Markdown code fence.
In @.opencode/agents/planner.md:
- Line 29: The fenced plan template block currently uses an unlabeled
triple-backtick fence (```) which triggers markdownlint MD040; update that fence
to include an explicit language tag (for example change the opening fence to
```text or ```markdown) so the plan template block is labeled and the linter
warning is resolved.
In @.opencode/agents/prototype-builder.md:
- Line 26: The fenced output template block currently uses a bare
triple-backtick fence which triggers MD040; update the fence to include the
language identifier by changing the opening fence from ``` to ```markdown so the
block is explicitly marked as markdown (look for the fenced output template
block / opening ``` in prototype-builder.md).
In @.opencode/agents/refactor-cleaner.md:
- Line 29: A fenced code block in the file currently uses an unlabeled
triple-backtick (```) which triggers MD040; add an appropriate language tag to
the opening fence (for example ```output-format or ```text) so the block is
labeled and the markdown lint rule MD040 is satisfied by changing the opening
fence from ``` to a tagged fence like ```output-format.
In @.opencode/agents/security-reviewer.md:
- Line 29: The markdown fenced output example is missing a language identifier
(violates markdownlint MD040); locate the unlabeled fenced code block (the
triple-backtick fence used for the output example) and add an appropriate
language tag after the opening ``` (for example ```text or ```json depending on
content) so the fence is labeled and MD040 is satisfied.
In @.opencode/agents/tdd-guide.md:
- Around line 35-42: The nested fenced code blocks in the TDD guide (the RED
test example containing the typescript block with it('should <behavior>') and
the other similar block later) are fragile; change the outer fence to a longer
delimiter (e.g., ````markdown) and ensure there are blank lines before and after
any embedded fenced blocks and before/after any tables placed next to those
blocks so the inner ```typescript fence and following table render correctly;
update both occurrences mentioned (the block with the it('should <behavior>')
example and the similar block at the later occurrence) to follow this pattern.
- Line 26: The two outer triple-backtick fenced template blocks are missing a
language identifier (triggering MD040); locate the outer fenced blocks (the
top-level ```...``` template sections) and add an appropriate language tag (for
example ```html, ```xml, or ```text depending on the content) to each fence so
the blocks are language-labeled and satisfy the linter.
In @.opencode/commands/quality-gate.md:
- Around line 4-6: Update the command header to include the explicit slash
invocation form by adding "/quality-gate" alongside the human title;
specifically change the header text "BosskuAI Quality Gate Command" to include
the invocation syntax (e.g., "BosskuAI Quality Gate Command — /quality-gate") so
the doc follows the `.opencode/commands/**` convention and clearly shows how to
invoke the command; ensure any introductory sentence references the slash form
consistently (use "/quality-gate" wherever the command is mentioned).
- Around line 26-32: Update the "## Output" template to mandate the [BOSSKUAI]
indicator at the top of the output block so every downstream command includes it
consistently; modify the "## Output" section (the header and its bullet list) to
begin with a required line like "[BOSSKUAI] <status/metadata>" and add a short
note that this indicator is mandatory for all responses produced from this
template, referencing the "## Output" header and the existing list items to
ensure the indicator is the first item emitted.
---
Nitpick comments:
In @.opencode/agents/docs-lookup.md:
- Around line 4-6: The agent's permissions are too permissive: change the
permission block so the docs-lookup subagent uses least privilege by removing or
setting permission.edit and permission.bash to deny (or omit them) and only
allow read/lookup operations; update the same permission keys in the other
occurrence referenced (lines 48-53) so both blocks enforce deny-by-default for
edits and shell execution, leaving only the minimal read/lookup privileges
required for documentation lookup.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 45baa0a0-e2bc-49d6-b8bb-b763dd68e35b
📒 Files selected for processing (35)
.opencode/agents/browser-agent.md.opencode/agents/build-fixer.md.opencode/agents/code-reviewer.md.opencode/agents/competitor-tracker.md.opencode/agents/customer-researcher.md.opencode/agents/design-reviewer.md.opencode/agents/doc-updater.md.opencode/agents/docs-lookup.md.opencode/agents/e2e-runner.md.opencode/agents/financial-analyst.md.opencode/agents/growth-experimenter.md.opencode/agents/harness-optimizer.md.opencode/agents/lead-finder.md.opencode/agents/market-researcher.md.opencode/agents/planner.md.opencode/agents/prototype-builder.md.opencode/agents/refactor-cleaner.md.opencode/agents/security-reviewer.md.opencode/agents/tdd-guide.md.opencode/commands/bossku.md.opencode/commands/competitor-check.md.opencode/commands/continuous-learning.md.opencode/commands/deep-research.md.opencode/commands/investor-prep.md.opencode/commands/plan.md.opencode/commands/quality-gate.md.opencode/commands/route.md.opencode/commands/rules-distill.md.opencode/commands/skill-stocktake.md.opencode/commands/verify.md.opencode/skillsAGENTS.mdopencode.jsonscripts/check-workspace.shscripts/install.sh
| --- | ||
| description: Optimize bosskuAI configuration — skill routing, hook tuning, MCP health, and memory hygiene. Auto-activate on "optimize bosskuAI", "skill stocktake", or "harness health check" requests. | ||
| mode: subagent | ||
| permission: | ||
| edit: deny | ||
| bash: deny | ||
| --- |
There was a problem hiding this comment.
Add explicit subagent name in front matter for @agent-name routing.
This spec is missing name, which makes @harness-optimizer invocation ambiguous for loaders that rely on front-matter identity.
Suggested fix
---
+name: harness-optimizer
description: Optimize bosskuAI configuration — skill routing, hook tuning, MCP health, and memory hygiene. Auto-activate on "optimize bosskuAI", "skill stocktake", or "harness health check" requests.
mode: subagent
permission:
edit: deny
bash: deny
---As per coding guidelines: .opencode/agents/** should define subagents and be invokable via @agent-name syntax.
📝 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.
| --- | |
| description: Optimize bosskuAI configuration — skill routing, hook tuning, MCP health, and memory hygiene. Auto-activate on "optimize bosskuAI", "skill stocktake", or "harness health check" requests. | |
| mode: subagent | |
| permission: | |
| edit: deny | |
| bash: deny | |
| --- | |
| --- | |
| name: harness-optimizer | |
| description: Optimize bosskuAI configuration — skill routing, hook tuning, MCP health, and memory hygiene. Auto-activate on "optimize bosskuAI", "skill stocktake", or "harness health check" requests. | |
| mode: subagent | |
| permission: | |
| edit: deny | |
| bash: deny | |
| --- |
🤖 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 @.opencode/agents/harness-optimizer.md around lines 1 - 7, Add an explicit
front-matter "name" field so the subagent can be routed via `@harness-optimizer`;
update the YAML front-matter to include name: harness-optimizer (or the exact
agent identifier you want) at the top-level of the markdown so loaders recognize
the subagent identity and `@harness-optimizer` invocations resolve correctly.
|
|
||
| ## Process | ||
| 1. **Skill audit** — Read `skill-index.json` and `AGENTS.md`. Check skill count match. Flag deprecated aliases. Identify skills with no checklists or playbooks. | ||
| 2. **Agent audit** — List all files in `agents/`. Verify each is in the agent roster in `AGENTS.md`. Flag agents with no corresponding skill. |
There was a problem hiding this comment.
Agent audit path is pointed at the wrong directory for OpenCode specs.
Line 20 audits agents/, but this agent lives under .opencode/agents/; this can report false drift/missing-agent results.
Suggested fix
-2. **Agent audit** — List all files in `agents/`. Verify each is in the agent roster in `AGENTS.md`. Flag agents with no corresponding skill.
+2. **Agent audit** — List all files in `.opencode/agents/`. Verify each is in the agent roster in `AGENTS.md`. Flag agents with no corresponding skill.Based on learnings: AGENTS.md is the canonical contract, so agent inventory needs to target the correct OpenCode agent path to compare correctly.
📝 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.
| 2. **Agent audit** — List all files in `agents/`. Verify each is in the agent roster in `AGENTS.md`. Flag agents with no corresponding skill. | |
| 2. **Agent audit** — List all files in `.opencode/agents/`. Verify each is in the agent roster in `AGENTS.md`. Flag agents with no corresponding skill. |
🤖 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 @.opencode/agents/harness-optimizer.md at line 20, The audit step currently
targets the wrong directory ("agents/") which misses OpenCode agents living
under ".opencode/agents/"; update the audit logic to list files from
".opencode/agents/" (not "agents/") and compare that inventory to AGENTS.md so
the roster check and the "Flag agents with no corresponding skill" logic use the
canonical OpenCode agent path; ensure any variable or config that referenced
"agents/" is changed to ".opencode/agents/" so functions that build the agent
list and perform the comparison (the agent audit routine) operate on the correct
directory.
| --- | ||
| description: Rapid time-boxed prototyping with explicit tech-debt ledger. Auto-activate on "prototype", "POC", "MVP in X hours", or "hackathon build" requests. | ||
| mode: subagent | ||
| permission: | ||
| edit: allow | ||
| bash: allow | ||
| --- |
There was a problem hiding this comment.
Add name in front matter so @prototype-builder is resolvable.
Without an explicit name, invocation by @agent-name is fragile across dispatchers.
Suggested fix
---
+name: prototype-builder
description: Rapid time-boxed prototyping with explicit tech-debt ledger. Auto-activate on "prototype", "POC", "MVP in X hours", or "hackathon build" requests.
mode: subagent
permission:
edit: allow
bash: allow
---As per coding guidelines: .opencode/agents/** definitions should be invokable using @agent-name syntax.
📝 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.
| --- | |
| description: Rapid time-boxed prototyping with explicit tech-debt ledger. Auto-activate on "prototype", "POC", "MVP in X hours", or "hackathon build" requests. | |
| mode: subagent | |
| permission: | |
| edit: allow | |
| bash: allow | |
| --- | |
| --- | |
| name: prototype-builder | |
| description: Rapid time-boxed prototyping with explicit tech-debt ledger. Auto-activate on "prototype", "POC", "MVP in X hours", or "hackathon build" requests. | |
| mode: subagent | |
| permission: | |
| edit: allow | |
| bash: allow | |
| --- |
🤖 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 @.opencode/agents/prototype-builder.md around lines 1 - 7, The front matter
in prototype-builder.md is missing a `name` field which prevents invocation via
`@agent-name`; add a top-level YAML `name: prototype-builder` (or the intended
agent identifier) to the existing front matter so the agent can be resolved by
`@prototype-builder`; ensure the `name` value matches the file/agent identifier
and keep it at the same level as `description`, `mode`, and `permission`.
| --- | ||
| # BosskuAI Competitor Check | ||
|
|
||
| Activate the `bosskuai-competitor-intelligence` skill for systematic competitor monitoring. |
There was a problem hiding this comment.
Document this as a slash command, not a skill trigger.
For command docs in .opencode/commands/**, invocation should be /command-name. Replace this with /competitor-check to match the required interface.
Suggested patch
-Activate the `bosskuai-competitor-intelligence` skill for systematic competitor monitoring.
+Invoke `/competitor-check` for systematic competitor monitoring.As per coding guidelines, .opencode/commands/** commands must be invoked with /command-name syntax.
🤖 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 @.opencode/commands/competitor-check.md at line 6, Update the invocation text
to document a slash command rather than a skill trigger: replace the phrase
referencing `bosskuai-competitor-intelligence` with the slash command
`/competitor-check`, and reword the sentence to read something like "Invoke the
`/competitor-check` slash command for systematic competitor monitoring" so the
command doc in `.opencode/commands/**` uses the required `/command-name` syntax.
|
|
||
| ## Instructions | ||
|
|
||
| 1. Use `bosskuai-continuous-learning` plus the learning-promotion and continuous-learning checklists. |
There was a problem hiding this comment.
Use /continuous-learning in the execution step.
The instruction currently uses a skill-style token; this should be a slash command for consistency and operability.
Suggested patch
-1. Use `bosskuai-continuous-learning` plus the learning-promotion and continuous-learning checklists.
+1. Use `/continuous-learning` plus the learning-promotion and continuous-learning checklists.As per coding guidelines, .opencode/commands/** must invoke commands with /command-name syntax.
📝 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.
| 1. Use `bosskuai-continuous-learning` plus the learning-promotion and continuous-learning checklists. | |
| 1. Use `/continuous-learning` plus the learning-promotion and continuous-learning checklists. |
🤖 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 @.opencode/commands/continuous-learning.md at line 30, Replace the
skill-style token "bosskuai-continuous-learning" in the execution step with the
slash command "/continuous-learning" so the file in .opencode/commands
(specifically the execution step that references bosskuai-continuous-learning
and the learning-promotion/continuous-learning checklists) uses the required
`/command-name` syntax; update any adjacent examples or instructions in
continuous-learning.md to invoke "/continuous-learning" instead of the
skill-style token to comply with the .opencode/commands/** guideline.
| --- | ||
| # BosskuAI Deep Research | ||
|
|
||
| Activate the `bosskuai-deep-research` skill for a multi-source investigation. |
There was a problem hiding this comment.
Use slash-command invocation format in command docs.
This command guide currently instructs a skill-style trigger (bosskuai-deep-research) instead of the required command trigger format. Update it to /deep-research so users can invoke it consistently with OpenCode command conventions.
Suggested patch
-Activate the `bosskuai-deep-research` skill for a multi-source investigation.
+Invoke `/deep-research` for a multi-source investigation.As per coding guidelines, .opencode/commands/** must invoke commands using /command-name syntax.
📝 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.
| Activate the `bosskuai-deep-research` skill for a multi-source investigation. | |
| Invoke `/deep-research` for a multi-source investigation. |
🤖 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 @.opencode/commands/deep-research.md at line 6, Update the command invocation
text to use the slash-command format: replace the skill-style trigger
"bosskuai-deep-research" with the OpenCode command "/deep-research" so the doc
uses the required `/command-name` syntax for invoking the deep-research command.
| --- | ||
| # BosskuAI Investor Prep | ||
|
|
||
| Activate the `bosskuai-investor-prep` skill to build or review fundraising materials. |
There was a problem hiding this comment.
Switch the trigger text to command syntax.
This should instruct /investor-prep invocation, not a raw skill name.
Suggested patch
-Activate the `bosskuai-investor-prep` skill to build or review fundraising materials.
+Invoke `/investor-prep` to build or review fundraising materials.As per coding guidelines, command docs under .opencode/commands/** must use /command-name invocation.
📝 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.
| Activate the `bosskuai-investor-prep` skill to build or review fundraising materials. | |
| Invoke `/investor-prep` to build or review fundraising materials. |
🤖 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 @.opencode/commands/investor-prep.md at line 6, Replace the raw skill name
"bosskuai-investor-prep" with the command-style invocation "/investor-prep" in
the documentation text so it reads something like "Activate the /investor-prep
command to build or review fundraising materials"; update any other occurrences
in this doc that reference bosskuai-investor-prep to use the slash-prefixed
command name so the file follows the .opencode/commands command-syntax
guideline.
|
|
||
| ## Instructions | ||
|
|
||
| 1. Use `bosskuai-rules-distill` and the rule distillation checklist. |
There was a problem hiding this comment.
Align invocation to /rules-distill.
Replace the current non-slash trigger with slash-command syntax to match the command framework.
Suggested patch
-1. Use `bosskuai-rules-distill` and the rule distillation checklist.
+1. Use `/rules-distill` and the rule distillation checklist.As per coding guidelines, commands in .opencode/commands/** must be invoked using /command-name.
📝 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.
| 1. Use `bosskuai-rules-distill` and the rule distillation checklist. | |
| 1. Use `/rules-distill` and the rule distillation checklist. |
🤖 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 @.opencode/commands/rules-distill.md at line 16, Update the command
invocation text so it uses the slash-command syntax: replace occurrences of the
non-slash token `bosskuai-rules-distill` with `/rules-distill` and ensure any
surrounding guidance (the "rule distillation checklist" reference) reflects the
new `/rules-distill` invocation so the document in .opencode/commands follows
the required `/command-name` convention.
|
|
||
| ## Instructions | ||
|
|
||
| 1. Use `bosskuai-skill-stocktake` and the skill health checklist. |
There was a problem hiding this comment.
Use /skill-stocktake for command invocation.
The current wording uses a skill token; this should be slash-command syntax in command docs.
Suggested patch
-1. Use `bosskuai-skill-stocktake` and the skill health checklist.
+1. Use `/skill-stocktake` and the skill health checklist.As per coding guidelines, .opencode/commands/** requires /command-name invocation format.
📝 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.
| 1. Use `bosskuai-skill-stocktake` and the skill health checklist. | |
| 1. Use `/skill-stocktake` and the skill health checklist. |
🤖 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 @.opencode/commands/skill-stocktake.md at line 17, Replace the inline skill
token "bosskuai-skill-stocktake" with the slash-command invocation
"/skill-stocktake" in the skill-stocktake command docs and ensure the skill
health checklist is referenced using the same slash-command syntax; update any
occurrences in the markdown where the token form appears and confirm headings or
examples use "/skill-stocktake" consistently.
| for e in AGENTS.md CLAUDE.md WORKSPACE-ONBOARDING.md skill-index.json agents mcp-configs .codex .claude .cursor .claude-plugin opencode.json .opencode; do copy_path "$e"; done | ||
| mkdir -p "$target_dir/ai-assistant" | ||
| for sub in memory references scripts hooks; do copy_path "ai-assistant/$sub"; done | ||
| mapfile -t selected < <(profile_skills) | ||
| selected=(); while IFS= read -r s; do selected+=("$s"); done < <(profile_skills) |
There was a problem hiding this comment.
--sync-layer currently overwrites ai-assistant/memory/ despite the documented contract.
Line 168 copies ai-assistant/memory unconditionally in the non---skills-only path, so --sync-layer can erase existing memory unless users also pass --preserve-memory. That conflicts with the option description on Line 22 (“except ai-assistant/memory/”).
Suggested fix
else
for e in AGENTS.md CLAUDE.md WORKSPACE-ONBOARDING.md skill-index.json agents mcp-configs .codex .claude .cursor .claude-plugin opencode.json .opencode; do copy_path "$e"; done
mkdir -p "$target_dir/ai-assistant"
- for sub in memory references scripts hooks; do copy_path "ai-assistant/$sub"; done
+ if (( sync_layer )); then
+ for sub in references scripts hooks; do copy_path "ai-assistant/$sub"; done
+ else
+ for sub in memory references scripts hooks; do copy_path "ai-assistant/$sub"; done
+ fi
selected=(); while IFS= read -r s; do selected+=("$s"); done < <(profile_skills)
copy_selected_skills "${selected[@]}"
apply_hooks_choice
fi📝 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.
| for e in AGENTS.md CLAUDE.md WORKSPACE-ONBOARDING.md skill-index.json agents mcp-configs .codex .claude .cursor .claude-plugin opencode.json .opencode; do copy_path "$e"; done | |
| mkdir -p "$target_dir/ai-assistant" | |
| for sub in memory references scripts hooks; do copy_path "ai-assistant/$sub"; done | |
| mapfile -t selected < <(profile_skills) | |
| selected=(); while IFS= read -r s; do selected+=("$s"); done < <(profile_skills) | |
| for e in AGENTS.md CLAUDE.md WORKSPACE-ONBOARDING.md skill-index.json agents mcp-configs .codex .claude .cursor .claude-plugin opencode.json .opencode; do copy_path "$e"; done | |
| mkdir -p "$target_dir/ai-assistant" | |
| if (( sync_layer )); then | |
| for sub in references scripts hooks; do copy_path "ai-assistant/$sub"; done | |
| else | |
| for sub in memory references scripts hooks; do copy_path "ai-assistant/$sub"; done | |
| fi | |
| selected=(); while IFS= read -r s; do selected+=("$s"); done < <(profile_skills) |
🤖 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 `@scripts/install.sh` around lines 166 - 169, The loop that copies ai-assistant
subpaths (for sub in memory references scripts hooks; do copy_path
"ai-assistant/$sub"; done) unconditionally copies ai-assistant/memory which
allows --sync-layer to overwrite existing memory; change this to skip copying
"ai-assistant/memory" when running in sync-layer mode unless the user explicitly
set the preserve-memory flag (e.g. check the variable set by --sync-layer and
the variable set by --preserve-memory or --skills-only) so that memory is only
copied when not syncing layers or when preserve-memory is true; update the
conditional around the copy_path call (or split the loop) to respect those flags
while leaving other subfolders unaffected.
No description provided.