Fix all findings from post-integration codebase review#26
Fix all findings from post-integration codebase review#26AnExiledDev wants to merge 1 commit intomainfrom
Conversation
Resolves 19 issues (1 critical, 4 high, 4 medium, 10 low) identified after 12 rapid squash-merges into main. Reclassified 5 findings as intentional or not-issues (M-4, M-5, L-5, L-7, L-10). Critical: worktree skill crash (plain strings → weighted tuples), merge conflict marker in first-session.md. Security: dangerous-command- blocker now fails closed on unexpected exceptions. Python: remove redundant ValueError, add maxsplit to split(). Shell: executable bit, variable quoting, pipefail, POSIX redirects, command -v. Docs: agent count 17→21, skill count→38, plugin count→14, feature count→22 across all pages; new plugin pages for git-workflow and prompt-snippets; cc-orc and dbr added to commands reference; architecture tree updated.
📝 WalkthroughWalkthroughThis PR contains post-integration stability fixes and documentation updates, including shell script hardening, Python exception handling corrections, skill-engine data structure changes, and documentation updates reflecting expanded agent, skill, and plugin counts. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/src/content/docs/features/agents.md`:
- Line 3: The frontmatter claim "description: Complete reference for all 21
CodeForge agents" is out of sync with the page content; either add the missing
agent documentation entries to the reference matrix and detailed sections or
reduce the number in the description to match the documented agents. Update the
page content by adding the missing agent sections (names, capabilities, tools,
and use cases) to the existing reference matrix and detail blocks, and ensure
any index lists, navigation anchors, and counts are updated accordingly so the
on-page agent count and the "description" text remain consistent.
In `@docs/src/content/docs/features/skills.md`:
- Line 3: Update the front-matter description line in
docs/src/content/docs/features/skills.md to accurately reflect the current
content: either add the missing skill entries to fully document all 38 skills or
change the description string ("description: Complete reference for all 38
CodeForge skills — domain knowledge packs for frameworks, patterns, and
workflows.") to a softened phrasing (e.g., "Overview of available CodeForge
skills" or "Reference for the documented subset of CodeForge skills") so the
page doesn't claim complete coverage; ensure the revised text is saved in the
file's description field and that any linked docs pages are updated
consistently.
In `@docs/src/content/docs/getting-started/installation.md`:
- Around line 51-52: Update the inconsistent feature count in the installation
docs: change the mention of "21 features" to "22 features" in the same page so
it matches the earlier line that lists "features/ # 22 custom
DevContainer features"; find the sentence referencing "21 features are installed
in dependency order" and replace the number with 22 to keep docs consistent.
In `@docs/src/content/docs/plugins/agent-system.md`:
- Line 3: Add the four missing agent reference entries (documenter, implementer,
investigator, tester) to the Agent Reference tables so the documentation lists
all 21 agents; for each agent add a row with the agent name (documenter,
implementer, investigator, tester), a concise role description, the default
model(s) used, and the key skills/capabilities (e.g., documenter: generates
docs, summarization, formatting; implementer: writes code, applies patches,
refactoring; investigator: root-cause analysis, log/debugging, source tracing;
tester: writes/runs tests, asserts, coverage), mirroring the format and column
order used by the existing entries in the table around the other agents (so the
table remains consistent).
In `@docs/src/content/docs/plugins/prompt-snippets.md`:
- Line 87: Update the text that currently reads "[Skills
Reference](../features/skills/) — the `/ps` skill is also documented in the
skills catalog" to avoid calling `/ps` a "skill"; rephrase to indicate `/ps` is
a slash command and either link to the correct command reference or remove
"skill" wording (e.g., "[Skills Reference](../features/skills/) — the `/ps`
slash command is documented in the command reference" or simply "See the command
reference for `/ps`"), and update any surrounding copy in prompt-snippets.md
that mentions `/ps` to consistently call it a slash command rather than a skill.
- Around line 14-16: Add a language identifier to the fenced code blocks
containing the prompt snippets so markdownlint MD040 is satisfied: replace the
three backtick-only fences surrounding the blocks with fences that include a
language (e.g., change ``` to ```text) for the blocks containing "/ps noaction",
"/ps noaction brief", and "/ps plan go" so each fenced block explicitly
specifies the language.
In `@docs/src/content/docs/reference/commands.md`:
- Line 210: Add a dedicated slash-command table row for `/ps` in the "Slash
commands" reference so the command has a purpose and example entry (not only
appearing in the source mapping list); edit the "Slash commands" table to add a
new row with the command column containing `/ps`, a description column
describing its purpose (e.g., "post system/status or run a private prompt
snippet"), and an example column showing typical usage (e.g., `/ps show recent
sessions`), and optionally reference the related SKILL.md mapping so readers can
find implementation details; update any surrounding text to mention `/ps` where
other commands are described.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (26)
.devcontainer/CHANGELOG.md.devcontainer/connect-external-terminal.sh.devcontainer/features/tmux/install.sh.devcontainer/plugins/devs-marketplace/plugins/dangerous-command-blocker/scripts/block-dangerous.py.devcontainer/plugins/devs-marketplace/plugins/skill-engine/scripts/skill-suggester.py.devcontainer/plugins/devs-marketplace/plugins/ticket-workflow/scripts/ticket-linker.py.devcontainer/plugins/devs-marketplace/plugins/workspace-scope-guard/scripts/guard-workspace-scope.py.devcontainer/scripts/check-setup.sh.devcontainer/scripts/setup-plugins.sh.devcontainer/scripts/setup-projects.sh.devcontainer/scripts/setup-terminal.shdocs/src/content/docs/features/agents.mddocs/src/content/docs/features/index.mddocs/src/content/docs/features/skills.mddocs/src/content/docs/getting-started/first-session.mddocs/src/content/docs/getting-started/index.mddocs/src/content/docs/getting-started/installation.mddocs/src/content/docs/index.mdxdocs/src/content/docs/plugins/agent-system.mddocs/src/content/docs/plugins/git-workflow.mddocs/src/content/docs/plugins/index.mddocs/src/content/docs/plugins/prompt-snippets.mddocs/src/content/docs/reference/architecture.mddocs/src/content/docs/reference/changelog.mddocs/src/content/docs/reference/commands.mddocs/src/content/docs/reference/index.md
| --- | ||
| title: Agents | ||
| description: Complete reference for all 17 CodeForge agents — capabilities, tool access, and use cases. | ||
| description: Complete reference for all 21 CodeForge agents — capabilities, tool access, and use cases. |
There was a problem hiding this comment.
Agent count claim and on-page reference content are out of sync.
Lines 3/8 now state 21 agents, but the detailed reference matrix/sections in this page still cover fewer agents. Please reconcile by adding the missing agent docs or adjusting the claim until the full set is documented.
As per coding guidelines, user-facing documentation changes must be reflected accurately in relevant pages under docs/.
Also applies to: 8-8
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/src/content/docs/features/agents.md` at line 3, The frontmatter claim
"description: Complete reference for all 21 CodeForge agents" is out of sync
with the page content; either add the missing agent documentation entries to the
reference matrix and detailed sections or reduce the number in the description
to match the documented agents. Update the page content by adding the missing
agent sections (names, capabilities, tools, and use cases) to the existing
reference matrix and detail blocks, and ensure any index lists, navigation
anchors, and counts are updated accordingly so the on-page agent count and the
"description" text remain consistent.
| --- | ||
| title: Skills | ||
| description: Complete reference for all 22 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows. | ||
| description: Complete reference for all 38 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows. |
There was a problem hiding this comment.
“Complete reference for all 38 skills” overstates current page content.
Line 3 claims full coverage of all 38 skills, but this page currently documents a smaller subset. Please either add the missing skill entries or soften the description to avoid a false completeness claim.
Suggested wording fallback
-description: Complete reference for all 38 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.
+description: Reference for CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows.As per coding guidelines, user-facing documentation changes must be reflected accurately in relevant pages under docs/.
📝 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: Complete reference for all 38 CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows. | |
| description: Reference for CodeForge skills — domain knowledge packs for frameworks, patterns, and workflows. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/src/content/docs/features/skills.md` at line 3, Update the front-matter
description line in docs/src/content/docs/features/skills.md to accurately
reflect the current content: either add the missing skill entries to fully
document all 38 skills or change the description string ("description: Complete
reference for all 38 CodeForge skills — domain knowledge packs for frameworks,
patterns, and workflows.") to a softened phrasing (e.g., "Overview of available
CodeForge skills" or "Reference for the documented subset of CodeForge skills")
so the page doesn't claim complete coverage; ensure the revised text is saved in
the file's description field and that any linked docs pages are updated
consistently.
| │ ├── features/ # 22 custom DevContainer features | ||
| │ ├── plugins/ # 14 plugins with hooks and scripts |
There was a problem hiding this comment.
Feature count is now inconsistent within the same page.
Lines 51-52 correctly say 22 features, but Line 73 still says 21 features are installed in dependency order. Please update Line 73 to 22 to keep installation guidance consistent.
As per coding guidelines, user-facing documentation changes must be reflected in relevant pages under docs/.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/src/content/docs/getting-started/installation.md` around lines 51 - 52,
Update the inconsistent feature count in the installation docs: change the
mention of "21 features" to "22 features" in the same page so it matches the
earlier line that lists "features/ # 22 custom DevContainer
features"; find the sentence referencing "21 features are installed in
dependency order" and replace the number with 22 to keep docs consistent.
| --- | ||
| title: Agent System | ||
| description: The agent system plugin provides 17 specialized AI agents with automatic delegation, CWD injection, and read-only enforcement. | ||
| description: The agent system plugin provides 21 specialized AI agents with automatic delegation, CWD injection, and read-only enforcement. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Count actual agent definition files and compare with documented agents
echo "=== Repository structure ==="
find . -type d -name "agent*" | head -20
echo -e "\n=== Looking for agent definition files ==="
# Check if agent files exist
fd -type f -name "*.md" | grep -i agent | head -20
echo -e "\n=== Checking plugin structure ==="
ls -la plugins/ 2>/dev/null || echo "No plugins dir at root"
# Try to find the agent-system plugin
find . -type d -name "*agent*" 2>/dev/null | grep -v node_modulesRepository: AnExiledDev/CodeForge
Length of output: 809
🏁 Script executed:
#!/bin/bash
# More direct approach - look at the actual documentation file
echo "=== File content check ==="
wc -l docs/src/content/docs/plugins/agent-system.md
echo -e "\n=== Extracting agent names from tables ==="
# Look for agent names in the reference tables (between certain line ranges)
sed -n '114,139p' docs/src/content/docs/plugins/agent-system.md | grep "^\|" | grep -oP '\*\*\K[a-z-]+(?=\*\*)'
echo -e "\n=== Counting extracted agents ==="
sed -n '114,139p' docs/src/content/docs/plugins/agent-system.md | grep "^\|" | grep -oP '\*\*\K[a-z-]+(?=\*\*)' | wc -lRepository: AnExiledDev/CodeForge
Length of output: 439
🏁 Script executed:
#!/bin/bash
# Check the actual claim lines
echo "=== Line 3 content ==="
sed -n '3p' docs/src/content/docs/plugins/agent-system.md
echo -e "\n=== Line 8 content ==="
sed -n '8p' docs/src/content/docs/plugins/agent-system.md
echo -e "\n=== Line 108 content ==="
sed -n '108p' docs/src/content/docs/plugins/agent-system.md
echo -e "\n=== Agent reference section (lines 106-143) ==="
sed -n '106,143p' docs/src/content/docs/plugins/agent-system.mdRepository: AnExiledDev/CodeForge
Length of output: 3507
🏁 Script executed:
#!/bin/bash
# Check agent definition files in the actual location
echo "=== Files in agent-system/agents directory ==="
find ./.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents -type f | sort
echo -e "\n=== Count ==="
find ./.devcontainer/plugins/devs-marketplace/plugins/agent-system/agents -type f | wc -lRepository: AnExiledDev/CodeForge
Length of output: 1900
Documentation missing 4 agents from reference tables.
The documentation correctly claims 21 specialized agents, but the Agent Reference section only documents 17. Four agents are missing from the tables:
- documenter
- implementer
- investigator
- tester
Add these agents to the appropriate reference tables (lines 114–139) with their roles, models, and skills to ensure complete user-facing documentation.
Affects lines: 3, 8, 108
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/src/content/docs/plugins/agent-system.md` at line 3, Add the four
missing agent reference entries (documenter, implementer, investigator, tester)
to the Agent Reference tables so the documentation lists all 21 agents; for each
agent add a row with the agent name (documenter, implementer, investigator,
tester), a concise role description, the default model(s) used, and the key
skills/capabilities (e.g., documenter: generates docs, summarization,
formatting; implementer: writes code, applies patches, refactoring;
investigator: root-cause analysis, log/debugging, source tracing; tester:
writes/runs tests, asserts, coverage), mirroring the format and column order
used by the existing entries in the table around the other agents (so the table
remains consistent).
| ``` | ||
| /ps noaction | ||
| ``` |
There was a problem hiding this comment.
Add languages to fenced code blocks to satisfy markdownlint (MD040).
These fenced blocks should specify a language to avoid lint warnings.
Suggested fix
-```
+```text
/ps noaction- +text
/ps noaction brief
-```
+```text
/ps plan go
</details>
Also applies to: 48-50, 54-56
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @docs/src/content/docs/plugins/prompt-snippets.md around lines 14 - 16, Add a
language identifier to the fenced code blocks containing the prompt snippets so
markdownlint MD040 is satisfied: replace the three backtick-only fences
surrounding the blocks with fences that include a language (e.g., change ``` to
"/ps plan go" so each fenced block explicitly specifies the language.
|
|
||
| ## Related | ||
|
|
||
| - [Skills Reference](../features/skills/) — the `/ps` skill is also documented in the skills catalog |
There was a problem hiding this comment.
Related link text appears inaccurate for /ps documentation.
Line 87 says the “/ps skill” is documented in the skills catalog, but /ps is a slash command and (in the provided skills reference) not documented as a skill entry. Please reword this to avoid misdirection.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/src/content/docs/plugins/prompt-snippets.md` at line 87, Update the text
that currently reads "[Skills Reference](../features/skills/) — the `/ps` skill
is also documented in the skills catalog" to avoid calling `/ps` a "skill";
rephrase to indicate `/ps` is a slash command and either link to the correct
command reference or remove "skill" wording (e.g., "[Skills
Reference](../features/skills/) — the `/ps` slash command is documented in the
command reference" or simply "See the command reference for `/ps`"), and update
any surrounding copy in prompt-snippets.md that mentions `/ps` to consistently
call it a slash command rather than a skill.
| | DevContainer features | `ccms`, `ccusage`, `ccburn`, `ruff`, `biome`, `sg`, etc. | `install.sh` in each feature directory | | ||
| | Slash commands | `/spec-new`, `/ticket:new`, `/ship`, `/pr:review`, etc. | Skill SKILL.md files in plugin directories | | ||
| | DevContainer features | `ccms`, `ccusage`, `ccburn`, `ruff`, `biome`, `sg`, `dbr`, etc. | `install.sh` in each feature directory | | ||
| | Slash commands | `/spec-new`, `/ticket:new`, `/ship`, `/pr:review`, `/ps`, etc. | Skill SKILL.md files in plugin directories | |
There was a problem hiding this comment.
Add a dedicated /ps command entry (not only source mapping).
Line 210 adds /ps to source mapping, but the page still lacks a proper slash-command table entry (purpose + example) for /ps. This leaves the “complete reference” incomplete.
Suggested docs patch
+## Prompt Snippets Slash Command
+
+Behavior-control slash command for applying preset instruction snippets in-session.
+
+| Command | Purpose | Example |
+|---------|---------|---------|
+| `/ps <snippet...>` | Apply one or more prompt snippets (e.g., `brief`, `noaction`, `plan`) | `/ps brief noaction` |As per coding guidelines, user-facing documentation changes must be reflected in relevant pages under docs/.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/src/content/docs/reference/commands.md` at line 210, Add a dedicated
slash-command table row for `/ps` in the "Slash commands" reference so the
command has a purpose and example entry (not only appearing in the source
mapping list); edit the "Slash commands" table to add a new row with the command
column containing `/ps`, a description column describing its purpose (e.g.,
"post system/status or run a private prompt snippet"), and an example column
showing typical usage (e.g., `/ps show recent sessions`), and optionally
reference the related SKILL.md mapping so readers can find implementation
details; update any surrounding text to mention `/ps` where other commands are
described.
Summary
Critical & Security
sys.exit(0)→sys.exit(2))Python Hooks
ValueErrorfrom 2 exception handlers (subclass ofjson.JSONDecodeError)maxsplit=1tosplit("=")for edge-case safetyDocumentation (14 pages updated, 2 new)
cc-orcanddbrShell Scripts
check-setup.sh— added missing executable bitsetup-plugins.sh— quotedPLUGIN_BLACKLISTvariable (SC2086)tmux/install.sh—set -e→set -euo pipefailconnect-external-terminal.sh—which→command -vsetup-projects.sh,setup-terminal.sh—&>/dev/null→>/dev/null 2>&1Excluded (not bugs)
Test plan
py_compile)check-setup.shhas executable bitgit diff --statmatches expected file listSummary by CodeRabbit
New Features
/ship,/pr:review, and/psfor enhanced workflow automation.Bug Fixes
Documentation
Chores
.claudedirectory to home directory with persistent Docker volume storage.