[failproofai-511] Fix AgentEye languages and translation pipeline#512
[failproofai-511] Fix AgentEye languages and translation pipeline#512NiveditJain wants to merge 9 commits into
Conversation
📝 WalkthroughWalkthroughThe PR updates translation navigation for canonical Portuguese locale casing, strengthens translation-workflow validation, and refreshes policy, audit, configuration, dashboard, quick-start, introduction, and README documentation across supported languages. ChangesTranslation tooling and CI
Documentation synchronization
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related PRs
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
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.
🧹 Nitpick comments (1)
.github/workflows/translate-docs.yml (1)
136-137: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winPin the Mintlify CLI version to ensure deterministic builds.
As indicated by static analysis tools, installing the
mintlifypackage globally without a version pin is an ad-hoc installation. This can lead to unexpected CI failures if a new major version of the CLI introduces breaking changes.Consider pinning the version to guarantee stability, or executing it locally via
bunx mintlify validateif it's already specified in yourpackage.json.🛠️ Proposed fix
- - name: Install Mintlify CLI - run: npm install -g mintlify + - name: Install Mintlify CLI + run: npm install -g mintlify@^4.0.0 # replace with your current known-good version🤖 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 @.github/workflows/translate-docs.yml around lines 136 - 137, Update the “Install Mintlify CLI” step to use a specific pinned Mintlify version instead of installing the unversioned package globally. Alternatively, reuse the project’s declared dependency through the existing package runner if Mintlify is already listed in package.json, while preserving the workflow’s current CLI behavior.Source: Linters/SAST tools
🤖 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.
Nitpick comments:
In @.github/workflows/translate-docs.yml:
- Around line 136-137: Update the “Install Mintlify CLI” step to use a specific
pinned Mintlify version instead of installing the unversioned package globally.
Alternatively, reuse the project’s declared dependency through the existing
package runner if Mintlify is already listed in package.json, while preserving
the workflow’s current CLI behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 88a03be7-2b43-4f13-aec1-28ce247c5a08
📒 Files selected for processing (7)
.github/workflows/translate-docs.yml__tests__/scripts/translate-docs/config.test.ts__tests__/scripts/translate-docs/mintlify-nav.test.tsdocs/docs.jsonscripts/translate-docs/config.tsscripts/translate-docs/mintlify-nav.tsscripts/translate-docs/types.ts
|
Automated code review started - full review. Results will be posted here. |
|
⏳ Hermes Code Review — Phase 1: Setup & Build
|
|
✅ Hermes Code Review — Build & Test Complete
No regressions introduced. Now posting detailed review... |
|
Automated code review started - full review. Results will be posted here. |
|
⏳ Hermes Code Review — Phase 3: Build and Verification Running test suite and checking build... |
|
✅ Hermes Code Review — Build and Test Complete
Full review findings below. |
🔍 Automated Code Review — Hermes Agent📋 Executive SummaryThis PR fixes two translation pipeline issues: (1) emitting Mintlify's canonical 📊 Change Architecturegraph TD
A["config.ts: LANGUAGES array"] -->|"adds mintlifyCode field"| B["types.ts: LanguageConfig"]
B --> C["mintlify-nav.ts: buildLanguageNav()"]
C -->|"uses getLanguageByCode().mintlifyCode ?? lang"| D["docs.json output"]
C --> E["AgentEye product nav"]
F["CI: translate-docs.yml"] -->|"--ignore-scripts + atomic consolidate"| G["consolidate job"]
G -->|"new: mintlify validate + validate:mdx"| H["PR opened only if valid"]
style C fill:#87CEEB
style F fill:#FFD700
style G fill:#FFD700
style D fill:#90EE90
Legend: 🟢 New output | 🔵 Modified core logic | 🟡 CI pipeline change 🔴 Breaking Changes✅ No breaking changes detected. The
|
hermes-exosphere
left a comment
There was a problem hiding this comment.
Automated review: Approved. ✅ All 1,954 tests pass, TypeScript is clean. One non-blocking suggestion re-reported (Mintlify version pinning).
|
✅ Resolved 1 previously-reported issue that has been addressed in this update:
One issue remains open (Mintlify version pinning — re-reported as inline comment). |
…gravity (12 CLIs), remove Gemini (#508) * feat: OpenClaw (openclaw gateway) integration — real-time enforcement + audit Adds OpenClaw as the 9th CLI/agent integration, dual-pillar like Hermes: Pillar 1 (live enforcement) — OpenClaw's in-process plugin hooks (its file-based "internal hooks" are observation-only and cannot block): - openclaw-plugin/ shipped package (manifest + plain-ESM index.js) that async-spawns the failproofai binary and maps a flat {permission,reason} verdict to each hook's native return shape (before_tool_call → {block:true,blockReason}; before_agent_run → {outcome:"block"}; before_agent_finalize → {action:"revise"}). - OPENCLAW_EVENT_MAP / TOOL_MAP / TOOL_INPUT_MAP in types.ts; handler + tool-name-canonicalize + policy-evaluator branches; the openclaw Integration (install/uninstall manages plugins.load.paths + plugins.entries.failproofai in ~/.openclaw/openclaw.json); bin plumbing. Pillar 2 (audit + dashboard) — reads the real JSONL transcripts at ~/.openclaw/agents/<agentId>/sessions/<uuid>.jsonl: - lib/openclaw-sessions.ts (pure type-discriminated parser, UUID-safe discovery) + lib/openclaw-projects.ts (sessions.json index, agentId grouping) + src/audit/cli-adapters/openclaw.ts. - Dashboard wiring: cli-registry, projects, download-session, app routes. Verified live against openclaw v2026.7.1 (tool block confirmed end-to-end; hook payloads, tool ids, and transcript schema captured from a real gateway). Tests mirror the Hermes matrix. All maps are validated, not provisional. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: document OpenClaw integration (CHANGELOG + CLAUDE.md) - CHANGELOG 0.0.13-beta.3 entry (Features + Docs). - CLAUDE.md "OpenClaw hooks" section: plugin-not-shell-hook enforcement surface, async-spawn design, per-hook verdict mapping, the real Stop gate, audit layout, and the auth-profile / bundledDiscovery setup gotchas. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * fix(openclaw): organize dashboard by channel with readable session names Live testing surfaced two UX issues: OpenClaw routes gateway sessions through the agent's default key (agent:<id>:main) and records the channel in metadata (lastChannel / chatType / origin.{label,provider,from}), NOT in the session key. So the prior key-parsing grouped everything under "openclaw-main" (which the dashboard's decodeFolderName rendered as the confusing "openclaw/main") and named sessions with the raw "agent:main:main" key. Now group projects by channel (telegram/slack/…/local, like Hermes groups by source) and name sessions from the human-readable origin.label — so it reads as "openclaw / telegram" → "Chetan (@chhhee10) id:8674922496" with the chat id/type in the gateway-metadata columns. Verified live against openclaw v2026.7.1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat: remove Gemini CLI integration entirely Google retired Gemini CLI (consumer accounts stopped 2026-06-18) in favor of the closed-source Antigravity CLI (agy), which failproofai is migrating to. Removes the `gemini` id from INTEGRATION_TYPES, the INTEGRATIONS/ADAPTERS registries, KNOWN_CLI_IDS, all GEMINI_* event/tool maps, the gemini audit adapter + lib/gemini-{projects,sessions}.ts, the --cli gemini install/audit paths (bin + docs), and the dashboard's Gemini session provider. Deletes the gemini logo assets and the .gemini dogfood config. Keeps the ~/.gemini/ config-file protections in the block-* builtins and re-points them at Antigravity (which reuses that directory). Fixes a latent bug where OpenClaw sessions without a cwd were mislabeled "Gemini CLI" in the session viewer. Docs + all 14 locale mirrors swept; tsc/build/tests green (111 files, 1916 tests). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat: add Factory droid (droid) CLI integration 9th CLI integration. Factory droid is a Claude-shaped external-shell-hook CLI, but with two contract quirks that were live-verified against droid v0.171.0 (and differ from Factory's published docs): - hooks.json uses event names at the TOP LEVEL (no `{"hooks":{...}}` wrapper — droid rejects the wrapper as unknown keys). Tool events carry matcher:"*". - deny is driven by EXIT CODE 2 + stderr, not a JSON decision (droid ignores the JSON decision field). Stop uses `{decision:"block"}` for require-*-before-stop. Payload is Claude snake_case (no normalization); FACTORY_TOOL_MAP maps Execute→Bash, Create→Write, etc. Config at ~/.factory/hooks.json (user) / .factory/hooks.json (project); binary probe `droid`. Audit reads the JSONL transcripts at ~/.factory/sessions/<enc-cwd>/<id>.jsonl (Claude-style adapter). Wires all surfaces: types union + maps, Integration + registry, canonicalize, policy-evaluator deny/instruct branches, audit adapter + lib providers, cli-registry, projects/download-session, app pages, bin VALID_CLIS + help. Adds unit + e2e + canonicalize tests, CLAUDE.md section, CHANGELOG, docs. tsc/lint clean; 1932 unit + 289 e2e tests pass; build green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat: add Devin CLI (devin) integration 10th CLI integration. Devin CLI is a pure Claude-clone for hooks — same snake_case payloads (hook_event_name, tool_name, tool_input, tool_use_id), so the Integration is modeled verbatim on claudeCode with a "hooks" key in ~/.config/devin/config.json (user) / .devin/config.json (project). Verified live against devin v3000.1.27: deny via {"decision":"block","reason"} on stdout blocks the tool (and overrides --permission-mode dangerous). DEVIN_TOOL_MAP maps exec→Bash (tool_input.command already canonical); no payload/event maps. Audit reads the SQLite store at ~/.local/share/devin/cli/sessions.db (sessions.working_directory → per-project grouping, message_nodes.chat_message JSON). Devin's tool_calls use a flat {id,name,arguments-as-object} shape (not the OpenAI wire form), so lib/devin-sessions.ts uses a Devin-specific normalizer; created_at prefers the higher-precision metadata ISO string. All 16 surfaces wired; unit + e2e + SQLite-parser tests added; CLAUDE.md section, CHANGELOG, docs. tsc/lint clean; 1956 unit + 297 e2e pass; build green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat: add Antigravity CLI (agy) integration — Gemini's successor 11th CLI integration. Antigravity CLI (`agy`, Google's closed-source Go replacement for the retired Gemini CLI) has its OWN hook contract — NOT a Claude clone. Live-verified against agy v1.1.2. - Named-hook schema: hooks.json = {"failproofai": {"PreToolUse":[{matcher,hooks}], "PreInvocation":[{...}], "Stop":[{...}]}} at ~/.gemini/config/hooks.json (user) / .agents/hooks.json (project). Tool events use a {matcher,hooks} wrapper; PreInvocation/Stop are flat handler arrays. - camelCase protojson payload → the handler normalizes toolCall.name→tool_name, toolCall.args→tool_input, conversationId→session_id, workspacePaths[0]→cwd, transcriptPath→transcript_path before the usual canonicalization. - Own response shapes: PreToolUse deny → {decision:"deny",reason}; Stop → {decision:"continue",reason} (re-enters the loop, so require-*-before-stop enforce); instruct → PreInvocation {injectSteps:[{ephemeralMessage}]}. - ANTIGRAVITY_TOOL_MAP (run_command→Bash, view_file→Read, ...) + ANTIGRAVITY_TOOL_INPUT_MAP (Bash: CommandLine→command, Cwd→cwd). - Audit reads plain JSONL transcript_full.jsonl under ~/.gemini/antigravity-cli/brain/<id>/.system_generated/logs/, indexed by conversation_summaries.db (falls back to brain/ dir scan when the index is empty). Keeps the ~/.gemini/ path guards (relabeled for Antigravity in the Gemini removal). All 16 surfaces wired; unit + e2e + parser tests; CLAUDE.md section, CHANGELOG, docs. tsc/lint clean; 1976 unit + 306 e2e pass; build green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * docs: backfill OpenClaw into user-facing docs + document VS Code coverage Two documentation gaps closed: 1. OpenClaw was shipped as a fully-wired integration but was never added to the user-facing supported-CLI lists. Backfills it into README + docs (configuration / getting-started / introduction): a dual-pillar bullet after Hermes, the --cli lists, install examples, and the detection list. 2. Documents that VS Code's Copilot Chat agent mode (Preview) needs no dedicated integration — its agent hooks load from .github/hooks/*.json, ~/.copilot/hooks/*.json, and ~/.claude/settings.json (the exact paths the copilot/claude integrations already write), verified live against VS Code 1.127 / github.copilot-chat 0.55.0. So `--cli copilot` (or --cli claude) already enforces in VS Code agent-mode sessions. Adds a CLAUDE.md section + a docs note. No code change. tsc/build/tests green (115 files, 1976 tests). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * refactor: make resolve-transcript-path enumerate openclaw explicitly Add an explicit `case "openclaw"` (functionally a no-op that returns undefined, same as the default) documenting that OpenClaw's transcript_path comes from its plugin shim's stdin and its audit reads sessions directly via lib/openclaw-sessions.ts. Makes the switch cover all 11 CLIs explicitly so the wiring is unambiguous for future integrations. No behavior change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: drop brittle line-number cross-refs from policy-evaluator comments Replace stale `(line ~N)` / `at line ~N` comment cross-references (which went out of date when the Gemini branches were removed and shift on every edit) with descriptive references to the mirrored per-CLI branches. Comment-only; no behavior change. Avoids automated-review flags on outdated line numbers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * feat: add Goose (codename goose, Block) as the 12th CLI integration Dual-pillar like Hermes/OpenClaw/Factory/Devin/Antigravity — real-time policy enforcement + offline audit. Enforcement uses Goose's "hooks" system (the cross-agent Open Plugins spec): the installer drops an auto-discovered plugin dir at ~/.agents/plugins/failproofai/hooks/hooks.json (user/project). Deny is {"decision":"block"} JSON on PreToolUse only (goose >= v1.37.0); goose has no Stop event, so require-*-before-stop is inapplicable (like Hermes). Audit reads the SQLite sessions.db (cwd-grouped like Devin; Claude-style content_json). Verified live end-to-end against goose v1.43.0 (real sudo blocked; real sessions.db read). Follows the Factory (enforcement) + Devin (SQLite audit) templates. Also backfills the README supported-CLI logo grid (openclaw/factory/devin/ antigravity/goose were missing) with dark/light variants, and documents Goose across CLAUDE.md + docs/{getting-started,configuration}. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: link each supported-CLI logo to its official site Point the 9 logos the maintainer supplied URLs for at their official pages (codex→learn.chatgpt.com, copilot→github.com/features/copilot/cli, cursor, opencode, pi, hermes, openclaw, factory, goose→goose-docs.ai); claude/devin/ antigravity keep their existing links. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(hooks): correct Antigravity file-tool map + quiet channel-less allow-notes Two issues surfaced while testing every CLI: 1. Antigravity file writes weren't gated. ANTIGRAVITY_TOOL_MAP had guessed tool names (`write_file`/`list_directory`/`find_filepath`) — the real ones (from the agy binary + live transcripts) are `write_to_file`/`list_dir`/ `find_by_name`, and there was no input-key map for file tools, so the path (delivered as `TargetFile`) never became `file_path`. Result: block-env-files / block-secrets-write silently allowed `.env` writes on Antigravity. Corrected the tool names and added Write/Edit/Read input maps (TargetFile→file_path, CodeContent→content). Verified live: agy now denies a `.env` write. 2. Noisy Stop-hook output. Informational allow-notes were emitted as stdout `{reason}` on events with no agent-facing context channel (Stop, SubagentStop, Session*, …), so a passing Stop rendered as a "…skipping commit check…skipping PR check…" wall (visible e.g. in droid). Those notes now go to stderr + the activity store only; stdout stays clean on channel-less events. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(readme): arrange the 12 CLI logos as 2 rows of 6 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(audit): reconstruct Devin's active conversation path (de-dup the forest) Devin stores a session's messages as a FOREST (node_id/parent_node_id) and replays earlier context under fresh roots on later turns, so message_nodes holds many branches that repeat the same messages — verified live: 26-31 raw nodes for 8-10 real messages. The parser read every node in node_id order, so the dashboard rendered each message 2-4× (a wall of duplicated "Create a file named .env…"). Reconstruct the real conversation instead: walk parent_node_id from the newest leaf (max node_id) to its root and reverse. Devin sessions now render the true 8-10 message conversation. Adds devinActiveConversationPath + unit tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(release): finalize CHANGELOG + dogfood the 4 newest CLIs - CHANGELOG: add the missing Fixes section (Antigravity file-tool map, quiet channel-less allow-notes, Devin forest de-dup) and a Docs entry for the README logo grid. - Dogfood: ship project-scope configs for Factory (.factory/hooks.json), Devin (.devin/config.json), Antigravity (.agents/hooks.json), and Goose (.agents/plugins/failproofai/hooks/hooks.json) using the dev `bun bin/failproofai.mjs` command — generated from each integration's own writeHookEntries so they track the live schema. Documented in CLAUDE.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(release): bump to 0.0.14-beta.1 main shipped 0.0.13 stable (#506) without this CLI-expansion work, so it releases as 0.0.14-beta.1. Moves the branch's CHANGELOG entries into a fresh 0.0.14-beta.1 section above the released 0.0.13. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(changelog): reference PR #508 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: complete the dashboard + config CLI lists for all 12 agents The dashboard project-list description, session-viewer/activity badge lists, the ?cli= filter, and the auto-detect list only covered the original 7 CLIs. Add the five newer ones (OpenClaw, Factory Droid, Devin, Antigravity, Goose) with their session-store paths and badge colors. Caught by the PR #508 automated review. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
|
Automated code review started - full review. Results will be posted here. |
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.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
docs/zh/getting-started.mdx (1)
169-175: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the uninstall description for multi-CLI installations.
Line 175 says only
~/.claude/settings.jsonis modified, although this guide installs hooks for twelve CLI targets. Describe removal from the selected/detected CLI hook configurations while noting that~/.failproofai/is retained.🤖 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 `@docs/zh/getting-started.mdx` around lines 169 - 175, Update the uninstall section in the getting-started documentation to describe removing hook entries from the selected or detected CLI hook configurations, rather than only ~/.claude/settings.json. Retain the statement that configuration files in ~/.failproofai/ are preserved.docs/pt-br/getting-started.mdx (1)
169-175: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDescribe multi-CLI uninstallation accurately.
The installation flow writes hooks for twelve integrations, while this says uninstall only removes
~/.claude/settings.json. Document that it removes the selected agents’ hook entries.🤖 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 `@docs/pt-br/getting-started.mdx` around lines 169 - 175, Atualize a seção “Desinstalação” em getting-started.mdx para informar que o comando remove as entradas de hook dos agentes selecionados, em vez de mencionar apenas ~/.claude/settings.json. Preserve a observação de que os arquivos de configuração em ~/.failproofai/ são mantidos.docs/it/getting-started.mdx (1)
169-175: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDocument uninstall behavior for every selected CLI.
policies --uninstallis presented elsewhere as integration-aware, but this says it only removes entries from~/.claude/settings.json. Describe removal from the selected/detected CLI hook configurations while retaining~/.failproofai/.🤖 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 `@docs/it/getting-started.mdx` around lines 169 - 175, Update the Italian “Disinstallazione” section for the `policies --uninstall` command to describe removing hook entries from the selected or detected CLI integration configurations, rather than only `~/.claude/settings.json`. Preserve the statement that configuration files in `~/.failproofai/` are retained.
🟡 Minor comments (43)
docs/he/getting-started.mdx-187-189 (1)
187-189: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the stale built-in policy count.
This card says 26 policies, while the updated introduction and built-in policy reference consistently state 39.
Proposed fix
<Card title="מדיניות מובנה" icon="shield" href="/he/built-in-policies"> - כל 26 המדיניות עם פרמטרים + כל 39 המדיניות עם פרמטרים </Card>🤖 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 `@docs/he/getting-started.mdx` around lines 187 - 189, Update the policy count in the Card content near the built-in policies link from 26 to 39, keeping the existing Hebrew title, icon, href, and surrounding text unchanged.docs/zh/dashboard.mdx-29-32 (1)
29-32: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winComplete the CLI badge list.
Line 31 omits OpenClaw, Factory Droid, Devin, Antigravity, and Goose despite line 27 stating their projects are displayed. Add their badges/colors or make the list explicitly non-exhaustive.
🤖 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 `@docs/zh/dashboard.mdx` around lines 29 - 32, Update the CLI badge list in the project display description to include OpenClaw, Factory Droid, Devin, Antigravity, and Goose with their corresponding badge colors, consistent with the supported project list; alternatively, explicitly mark the existing list as non-exhaustive.docs/zh/getting-started.mdx-187-189 (1)
187-189: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the built-in policy count.
The card says 26 policies, while this PR’s introduction and built-in-policy page document 39.
- 全部 26 条策略及其参数 + 全部 39 条策略及其参数🤖 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 `@docs/zh/getting-started.mdx` around lines 187 - 189, Update the “内置策略” Card content in docs/zh/getting-started.mdx to state that there are 39 built-in policies instead of 26, keeping the existing title, icon, href, and surrounding wording unchanged.docs/fr/built-in-policies.mdx-47-48 (1)
47-48: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winKeep the
require-definition with the other policy prefixes.The
require-bullet now appears after the namespace explanation, disconnected from theblock-,warn-, andsanitize-list on Lines 28–30. Move it back into that list so the namespace paragraph remains cohesive.🤖 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 `@docs/fr/built-in-policies.mdx` around lines 47 - 48, Move the `require-` bullet from after the namespace explanation into the policy-prefix list alongside `block-`, `warn-`, and `sanitize-`. Keep the namespace paragraph cohesive and preserve the existing definition of `require-`.docs/fr/cli/audit.mdx-58-58 (1)
58-58: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winList all supported offline audit sources.
This list omits Hermes, OpenClaw, Factory Droid, Devin, Antigravity, and Goose, although the dashboard and configuration pages explicitly identify each as an offline audit source.
🤖 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 `@docs/fr/cli/audit.mdx` at line 58, Update the offline audit source list in the dashboard description to include Hermes, OpenClaw, Factory Droid, Devin, Antigravity, and Goose alongside the existing agents. Keep the existing description and formatting unchanged otherwise.docs/fr/configuration.mdx-199-199 (1)
199-199: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winRemove the stale “five other CLIs” count.
The section now documents twelve integrations, so describing OpenCode as different from “the five other CLIs” is no longer accurate. Use “les autres CLI” instead.
🤖 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 `@docs/fr/configuration.mdx` at line 199, Update the OpenCode description to replace “les cinq autres CLI” with “les autres CLI”, leaving the surrounding explanation unchanged.docs/built-in-policies.mdx-713-733 (1)
713-733: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winThe Stop-semantics tables omit newly supported integrations. Configuration documentation says OpenClaw, Factory Droid, Devin, and Antigravity expose enforceable end-of-turn hooks, making the six-CLI count and “other five” recommendation stale.
docs/built-in-policies.mdx#L713-L733: add the four integrations and update the count/recommendation.docs/fr/built-in-policies.mdx#L707-L727: apply the equivalent correction to the French table and prose.🤖 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 `@docs/built-in-policies.mdx` around lines 713 - 733, Update the Stop-semantics table and surrounding prose in docs/built-in-policies.mdx (lines 713-733) to include OpenClaw, Factory Droid, Devin, and Antigravity, revise the supported-integration count, and replace the “other five” recommendation with the correct number while preserving each integration’s documented hook behavior. Apply the equivalent table and prose corrections in docs/fr/built-in-policies.mdx (lines 707-727), including all four integrations and updated counts/recommendations.docs/fr/cli/audit.mdx-95-95 (1)
95-95: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winCorrect the malformed conditional phrase.
“qu'aurait-il s'est passé” is ungrammatical; use “ce qui se serait passé en 2025”.
Proposed correction
- elles n'ont pas d'interprétation significative du type « qu'aurait-il s'est passé en 2025 » + elles n'ont pas d'interprétation significative du type « ce qui se serait passé en 2025 »🤖 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 `@docs/fr/cli/audit.mdx` at line 95, Dans la phrase de la section « Politiques de workflow ignorées », remplacez la formulation conditionnelle mal formée « qu'aurait-il s'est passé en 2025 » par « ce qui se serait passé en 2025 », sans modifier le reste du texte.docs/ar/introduction.mdx-12-12 (1)
12-12: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winFinish the Arabic localization.
Correct
إنبيهكtoتنبيهك, and translate the two shell comments so the quick-start block is fully Arabic.Also applies to: 53-54
🤖 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 `@docs/ar/introduction.mdx` at line 12, Finish the Arabic localization in the introduction by correcting “إنبيهك” to “تنبيهك” and translating both shell comments in the quick-start block at the referenced lines into Arabic, while leaving the commands unchanged.docs/de/cli/audit.mdx-12-14 (1)
12-14: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winCorrect the German audit copy.
Use
der Archetyp, replaceeinzeiligerwitheinseitiger, and correctKorrektourlistetoKorrekturliste.Also applies to: 63-69
🤖 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 `@docs/de/cli/audit.mdx` around lines 12 - 14, Überarbeite die deutsche Audit-Dokumentation: verwende „der Archetyp“, ersetze „einzeiliger“ durch „einseitiger“ und korrigiere „Korrektourliste“ zu „Korrekturliste“ in allen betroffenen Textstellen, einschließlich des zusätzlich genannten Abschnitts.docs/de/configuration.mdx-144-144 (1)
144-144: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winClose the German quotations consistently.
Replace the trailing ASCII quotes with
“in both sentences.Also applies to: 169-169
🤖 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 `@docs/de/configuration.mdx` at line 144, In docs/de/configuration.mdx, update both German quotation sentences containing “Force-pushing is blocked...” and the corresponding occurrence to use the closing German quotation mark `“` instead of the trailing ASCII `"`, keeping the existing text unchanged.Source: Linters/SAST tools
docs/de/getting-started.mdx-187-189 (1)
187-189: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the stale built-in policy count.
This card says 26 policies, while the refreshed documentation consistently documents 39.
Proposed fix
<Card title="Integrierte Richtlinien" icon="shield" href="/de/built-in-policies"> - Alle 26 Richtlinien mit Parametern + Alle 39 Richtlinien mit Parametern </Card>🤖 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 `@docs/de/getting-started.mdx` around lines 187 - 189, Update the “Integrierte Richtlinien” card text in the getting-started documentation from 26 to 39 policies, keeping the existing title, icon, link, and surrounding wording unchanged.docs/ar/getting-started.mdx-169-175 (1)
169-175: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winDescribe uninstall behavior for all supported CLIs.
This now documents installation across multiple agents, but says uninstall only removes
~/.claude/settings.jsonentries. Clarify that it removes hooks for the targeted/detected integrations while retaining failproofai configuration files.🤖 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 `@docs/ar/getting-started.mdx` around lines 169 - 175, Update the Arabic uninstall section around the `failproofai policies --uninstall` command to describe removing hooks from all targeted or detected supported CLI integrations, rather than only `~/.claude/settings.json`, while preserving the statement that FailproofAI configuration files in `~/.failproofai/` are retained.docs/ar/dashboard.mdx-28-32 (1)
28-32: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winRemove the mixed-language translation artifacts.
Replace
jلساتwithجلساتand translate靛into the intended Arabic color name.Also applies to: 87-87
🤖 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 `@docs/ar/dashboard.mdx` around lines 28 - 32, In the Arabic dashboard documentation, correct the mixed-language artifacts by replacing “jلسات” with “جلسات” in the Hermes description and translating the “靛” color label in the Hermes badge list to its intended Arabic color name. Keep all other wording and CLI descriptions unchanged.docs/configuration.mdx-199-199 (1)
199-199: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winSynchronize the supported-agent matrix across the refreshed documentation.
Several pages still reflect the previous integration set:
docs/configuration.mdx#L199-L199: replace the stale “other five CLIs” count with capability-based wording.docs/introduction.mdx#L8-L8: add Goose to the supported-agent summary.docs/ar/built-in-policies.mdx#L708-L730: add OpenClaw, Factory Droid, Devin, and Antigravity to the Stop-semantics matrix.docs/ar/cli/audit.mdx#L50-L50: add the newly supported offline audit sources.🤖 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 `@docs/configuration.mdx` at line 199, Synchronize the supported-agent documentation across all listed sites: in docs/configuration.mdx lines 199-199 replace “other five CLIs” with capability-based wording; in docs/introduction.mdx lines 8-8 add Goose to the supported-agent summary; in docs/ar/built-in-policies.mdx lines 708-730 add OpenClaw, Factory Droid, Devin, and Antigravity to the Stop-semantics matrix; and in docs/ar/cli/audit.mdx lines 50-50 add the newly supported offline audit sources.docs/ar/configuration.mdx-203-203 (1)
203-203: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winRemove the stray bold marker after “ذاتية الاستضافة”.
The unmatched
**can bold an unintended portion of this long paragraph.Proposed fix
- - **OpenClaw (openClaw gateway)**: ... OpenClaw هو بوابة متعددة القنوات ذاتية الاستضافة **، لذا يعترض ... + - **OpenClaw (openClaw gateway)**: ... OpenClaw هو بوابة متعددة القنوات ذاتية الاستضافة، لذا يعترض ...🤖 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 `@docs/ar/configuration.mdx` at line 203, Remove the stray unmatched bold marker immediately after “ذاتية الاستضافة” in the OpenClaw paragraph, preserving the intended emphasis and all surrounding text.docs/es/dashboard.mdx-29-31 (1)
29-31: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winComplete the project badge inventory in both translations. Both pages list twelve supported CLIs but document project-row badges only through Hermes.
docs/es/dashboard.mdx#L29-L31: add OpenClaw, Factory Droid, Devin, Antigravity, and Goose badge labels.docs/pt-br/dashboard.mdx#L29-L31: add the same five badge labels.🤖 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 `@docs/es/dashboard.mdx` around lines 29 - 31, Complete the CLI badge inventory in the project-row descriptions by adding OpenClaw, Factory Droid, Devin, Antigravity, and Goose to docs/es/dashboard.mdx lines 29-31 and docs/pt-br/dashboard.mdx lines 29-31, preserving the existing translations and badge color style.docs/es/built-in-policies.mdx-692-701 (1)
692-701: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winAdd
Comportamiento de IAto the overview table.The new
warn-repeated-tool-callscategory is missing from Lines 15–26, so the overview lists only 38 of the documented 39 policies.🤖 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 `@docs/es/built-in-policies.mdx` around lines 692 - 701, Update the overview table near the document’s policy summary to add the missing “Comportamiento de IA” category and link it to the corresponding section heading, ensuring all 39 documented policies are represented while preserving the existing table structure.docs/es/cli/audit.mdx-58-60 (1)
58-60: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDo not claim that all 39 policies are replayed.
Lines 94–95 exclude
warn-repeated-tool-callsand the fiverequire-*-before-stoppolicies. Adjust this sentence to describe the applicable real-time policies rather than all 39.🤖 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 `@docs/es/cli/audit.mdx` around lines 58 - 60, Actualiza la frase de docs/es/cli/audit.mdx que describe la reproducción de políticas para no afirmar que se aplican las 39 políticas integradas. Indica que cada evento se reproduce mediante las políticas de tiempo real aplicables, excluyendo warn-repeated-tool-calls y las cinco políticas require-*-before-stop, además de los 8 detectores exclusivos del auditor.docs/es/introduction.mdx-8-8 (1)
8-8: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winInclude Goose in the supported-agent list.
The updated configuration, dashboard, and quick-start pages include Goose, but the introduction omits it from the compatibility 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 `@docs/es/introduction.mdx` at line 8, Update the supported-agent list in the Spanish introduction’s compatibility summary to include Goose, preserving the existing formatting and all currently listed agents.docs/es/getting-started.mdx-74-75 (1)
74-75: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winMake the multi-CLI quick-start agent-neutral. Both translations expand installation to twelve CLIs but still tell every user to launch Claude Code.
docs/es/getting-started.mdx#L74-L75: refer to the user’s selected agent.docs/pt-br/getting-started.mdx#L74-L75: refer to the user’s selected agent.🤖 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 `@docs/es/getting-started.mdx` around lines 74 - 75, Update the “Ejecutar tu agente” quick-start step in docs/es/getting-started.mdx (lines 74-75) and its corresponding step in docs/pt-br/getting-started.mdx (lines 74-75) to instruct users to launch their selected agent instead of specifically launching Claude Code; preserve the existing interception, unattended execution, and dashboard review guidance.docs/hi/built-in-policies.mdx-739-748 (1)
739-748: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the translated workflow semantics.
Line 742 should say “पुश न किए गए कमिट,” not “अप्रयुक्त कमिट.” Line 784 should explain that
UNKNOWNprevents false negatives while GitHub recomputes, not that it prevents recomputation.Also applies to: 781-786
🤖 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 `@docs/hi/built-in-policies.mdx` around lines 739 - 748, Update the Hindi descriptions for require-push-before-stop and the referenced UNKNOWN behavior: replace “अप्रयुक्त कमिट” with “पुश न किए गए कमिट,” and state that UNKNOWN prevents false negatives while GitHub recomputes, rather than implying it prevents recomputation. Preserve the surrounding policy semantics and formatting.docs/hi/getting-started.mdx-74-75 (1)
74-75: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winFinish updating Claude-only guidance for multi-CLI support.
docs/hi/getting-started.mdx#L74-L75: tell users to run their selected agent rather than only Claude Code.docs/hi/getting-started.mdx#L169-L175: explain that uninstall removes hooks for the selected/detected CLI integrations.docs/hi/dashboard.mdx#L29-L32: include badges for every CLI listed as a project source.🤖 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 `@docs/hi/getting-started.mdx` around lines 74 - 75, Update docs/hi/getting-started.mdx lines 74-75 to instruct users to run their selected agent, not only Claude Code; update lines 169-175 to explain that uninstall removes hooks for the selected or detected CLI integrations; update docs/hi/dashboard.mdx lines 29-32 to display badges for every CLI listed as a project source.docs/hi/getting-started.mdx-187-189 (1)
187-189: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the stale policy count.
This card says 26 policies, while this PR consistently documents 39.
- सभी 26 policies parameters के साथ + सभी 39 policies parameters के साथ🤖 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 `@docs/hi/getting-started.mdx` around lines 187 - 189, Update the “Built-in policies” Card content in getting-started.mdx to state 39 policies instead of 26, keeping the existing Hindi wording and link unchanged.docs/it/built-in-policies.mdx-49-49 (1)
49-49: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winMisplaced
- **require-**list item.The translation pipeline incorrectly pushed the final list item defining the
require-policy prefix to the end of the subsequent "Namespaces" paragraph, breaking the Markdown list structure and creating an orphaned bullet point.
docs/it/built-in-policies.mdx#L49-L49: Move this line up to line 31 to properly conclude the list.docs/pt-br/built-in-policies.mdx#L54-L54: Move this line up to line 31 to properly conclude the list.🤖 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 `@docs/it/built-in-policies.mdx` at line 49, Move the require- policy list item from line 49 to line 31 in docs/it/built-in-policies.mdx, preserving it as the final item in the policy-prefix list before the Namespaces paragraph. Apply the same move from line 54 to line 31 in docs/pt-br/built-in-policies.mdx; no other content changes are needed.docs/it/cli/audit.mdx-55-57 (1)
55-57: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSynchronize the supported-integration lists. Several summaries omit integrations documented elsewhere in this cohort.
docs/it/cli/audit.mdx#L55-L57: add the remaining offline audit sources.docs/pt-br/cli/audit.mdx#L57-L57: add the remaining offline audit sources.docs/it/dashboard.mdx#L27-L31: document badges for all integrations listed in the preceding paragraph.docs/it/introduction.mdx#L8-L8: add Goose to the supported-agent list.🤖 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 `@docs/it/cli/audit.mdx` around lines 55 - 57, Synchronize the documented integration lists across docs/it/cli/audit.mdx lines 55-57 and docs/pt-br/cli/audit.mdx line 57 by adding the remaining offline audit sources; update docs/it/dashboard.mdx lines 27-31 to include badges for every integration named in its preceding paragraph; and update docs/it/introduction.mdx line 8 to add Goose to the supported-agent list.docs/it/configuration.mdx-125-125 (1)
125-125: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the convention-policy directory names.
docs/it/configuration.mdx#L125-L125: use.failproofai/policies/and~/.failproofai/policies/.docs/pt-br/configuration.mdx#L125-L125: use.failproofai/policies/and~/.failproofai/policies/.🤖 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 `@docs/it/configuration.mdx` at line 125, Correct the convention-policy directory names in the documentation sentence: update docs/it/configuration.mdx lines 125-125 and docs/pt-br/configuration.mdx lines 125-125 to reference .failproofai/policies/ for project conventions and ~/.failproofai/policies/ for user conventions.docs/it/introduction.mdx-53-53 (1)
53-53: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winFix the
oferiràtypo.-failproofai policies --install # abilita le politiche (o salta — `failproofai` ti oferirà di configurarle al primo avvio) +failproofai policies --install # abilita le politiche (o salta — `failproofai` ti offrirà di configurarle al primo avvio)🤖 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 `@docs/it/introduction.mdx` at line 53, Correct the typo in the Italian installation guidance comment for `failproofai policies --install`, changing `oferirà` to `offrirà`.docs/ja/getting-started.mdx-188-188 (1)
188-188: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winCorrect the parameterized-policy count.
This says 26 policies have parameters, while
docs/ja/built-in-policies.mdxstates that 19 do. Keep the count consistent with the policy catalog.🤖 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 `@docs/ja/getting-started.mdx` at line 188, Update the parameterized-policy count in the getting-started documentation from 26 to 19, matching the policy catalog’s count in built-in-policies.mdx.docs/ja/dashboard.mdx-29-32 (1)
29-32: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winComplete the CLI badge list.
Line 27 supports twelve CLIs, but this list stops at Hermes. Add OpenClaw, Factory Droid, Devin, Antigravity, and Goose so the documented project-row output is consistent.
🤖 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 `@docs/ja/dashboard.mdx` around lines 29 - 32, Update the CLI badge list in the project display section of docs/ja/dashboard.mdx to include OpenClaw, Factory Droid, Devin, Antigravity, and Goose after Hermes, preserving the existing badge formatting and documented color labels.docs/ja/built-in-policies.mdx-705-716 (1)
705-716: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the localized Stop-semantics tables. Both tables claim only six supported CLIs while the supplied configuration documentation also identifies working Stop gates for OpenClaw, Factory Droid, Devin, and Antigravity.
docs/ja/built-in-policies.mdx#L705-L716: add the four missing integrations or narrow the introductory wording.docs/ko/built-in-policies.mdx#L705-L716: make the equivalent Korean update.🤖 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 `@docs/ja/built-in-policies.mdx` around lines 705 - 716, Update the Stop-semantics tables in docs/ja/built-in-policies.mdx (705-716) and docs/ko/built-in-policies.mdx (705-716) so they no longer claim only six supported CLIs: add rows for OpenClaw, Factory Droid, Devin, and Antigravity using the supplied configuration documentation, or narrow the introductory wording to match the listed integrations.docs/ja/getting-started.mdx-175-175 (1)
175-175: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winDescribe uninstallation for the selected CLI and scope.
policies --uninstallis not limited to~/.claude/settings.json; the preceding instructions support many CLIs and project/user scopes. Avoid promising a Claude-only removal path.🤖 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 `@docs/ja/getting-started.mdx` at line 175, Update the uninstallation instructions near the `policies --uninstall` guidance to describe removal for the selected CLI and applicable project or user scope, rather than specifying only `~/.claude/settings.json`. Preserve the instruction that configuration files under `~/.failproofai/` remain intact.docs/ru/getting-started.mdx-187-189 (1)
187-189: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSynchronize the policy count across translations. Both cards claim 26 parameterized policies, while the built-in policy documentation states 39 total and 19 parameterized.
docs/ru/getting-started.mdx#L187-L189: update the Russian card count and wording.docs/tr/getting-started.mdx#L187-L189: update the Turkish card count and wording.🤖 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 `@docs/ru/getting-started.mdx` around lines 187 - 189, The built-in policy cards use an outdated count and wording. Update docs/ru/getting-started.mdx lines 187-189 and docs/tr/getting-started.mdx lines 187-189 to state that there are 39 total policies, including 19 parameterized policies, using accurate Russian and Turkish wording respectively.docs/ru/introduction.mdx-8-8 (1)
8-8: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSynchronize the expanded integration lists. Several localized enumerations were not updated after adding the newer CLI integrations.
docs/ru/introduction.mdx#L8-L8: add Goose to the supported-agent list.docs/tr/cli/audit.mdx#L50-L50: include the additional offline audit sources, or explicitly document exclusions.docs/tr/dashboard.mdx#L31-L31: add the missing OpenClaw, Factory Droid, Devin, Antigravity, and Goose badges.🤖 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 `@docs/ru/introduction.mdx` at line 8, Synchronize the localized integration lists: update docs/ru/introduction.mdx lines 8-8 to add Goose; update docs/tr/cli/audit.mdx lines 50-50 to include the additional offline audit sources or explicitly document their exclusion; and update docs/tr/dashboard.mdx lines 31-31 to add badges for OpenClaw, Factory Droid, Devin, Antigravity, and Goose.docs/ru/getting-started.mdx-175-175 (1)
175-175: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the cross-locale uninstall description. Both translations still describe a Claude-only cleanup despite the expanded multi-CLI installation flow.
docs/ru/getting-started.mdx#L175-L175: describe removal from the selected/detected CLI hook or plugin configuration.docs/tr/getting-started.mdx#L175-L175: apply the equivalent Turkish correction.🤖 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 `@docs/ru/getting-started.mdx` at line 175, Update the uninstall descriptions at docs/ru/getting-started.mdx:175-175 and docs/tr/getting-started.mdx:175-175 to describe removing hooks or plugins from the selected or detected CLI’s configuration, rather than only Claude’s settings; preserve the statement that ~/.failproofai/ configuration files remain.docs/tr/built-in-policies.mdx-705-716 (1)
705-716: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the Stop-semantics table for all enforcing CLIs.
This says only six CLIs support Stop enforcement, but the configuration page also documents working Stop contracts for OpenClaw, Factory Droid, Devin, and Antigravity. Add those integrations and their retry mechanisms to avoid understating workflow-policy coverage.
🤖 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 `@docs/tr/built-in-policies.mdx` around lines 705 - 716, Update the “CLI başına Stop semantiği” table to include OpenClaw, Factory Droid, Devin, and Antigravity alongside the existing enforcing CLIs. For each integration, document when the gate triggers and the user-visible retry or continuation mechanism, using the corresponding documented Stop contract; revise the introductory wording and total count so they no longer claim only six CLIs are supported.docs/ru/dashboard.mdx-29-32 (1)
29-32: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winSynchronize the badge lists with the expanded CLI catalog. Both localized dashboard pages enumerate twelve project sources but describe badges only through Hermes.
docs/ru/dashboard.mdx#L29-L32: add badges for OpenClaw, Factory Droid, Devin, Antigravity, and Goose.docs/vi/dashboard.mdx#L29-L32: add badges for OpenClaw, Factory Droid, Devin, Antigravity, and Goose.🤖 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 `@docs/ru/dashboard.mdx` around lines 29 - 32, Update the project badge list in docs/ru/dashboard.mdx lines 29-32 and docs/vi/dashboard.mdx lines 29-32 to include OpenClaw, Factory Droid, Devin, Antigravity, and Goose alongside the existing CLI sources, preserving each page’s localized wording and badge color descriptions.docs/vi/dashboard.mdx-62-62 (1)
62-62: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winReplace the mistranslated
bốn phần dưới nấu.This phrase is not meaningful Vietnamese. Use wording such as
một áp phích toàn màn hình có thể chia sẻ, theo sau là bốn phần bên dưới.🤖 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 `@docs/vi/dashboard.mdx` at line 62, Replace the mistranslated phrase “bốn phần dưới nấu” in the dashboard description with clear Vietnamese wording meaning “a shareable full-screen poster followed by four sections below,” while preserving the rest of the description.docs/vi/getting-started.mdx-83-89 (1)
83-89: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winRemove the stale Claude-only assumptions.
The page installs hooks for twelve CLIs, but the flow says Claude Code always invokes the subprocess and uninstall says only
~/.claude/settings.jsonis modified. Generalize the diagram and explain that uninstall removes hooks from the selected/detected CLI integrations while preserving failproofai configuration.Also applies to: 175-175
🤖 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 `@docs/vi/getting-started.mdx` around lines 83 - 89, Generalize the hook execution diagram in the getting-started documentation so it applies to all selected or detected CLI integrations rather than assuming Claude Code and failproofai alone. Update the uninstall text around the referenced section to state that hooks are removed from the selected/detected CLI configuration files while failproofai configuration is preserved.docs/ru/dashboard.mdx-62-62 (1)
62-62: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winFix the malformed Russian audit description.
единую экранную общедоступный постерhas conflicting cases and is difficult to understand. Consider: “полноэкранный общедоступный постер и четыре раздела ниже”.🤖 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 `@docs/ru/dashboard.mdx` at line 62, Update the Russian audit description in the documented dashboard text by replacing the malformed phrase “единую экранную общедоступный постер” with grammatically correct wording equivalent to “полноэкранный общедоступный постер и четыре раздела ниже,” while preserving the surrounding meaning.docs/tr/introduction.mdx-57-57 (1)
57-57: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winCorrect the Turkish guidance sentence.
Tam açıklamayı içinis ungrammatical; useTam açıklama için.Proposed fix
-Tam açıklamayı için [Başlangıç](/tr/getting-started) kılavuzuna bakın. +Tam açıklama için [Başlangıç](/tr/getting-started) kılavuzuna bakın.🤖 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 `@docs/tr/introduction.mdx` at line 57, In the Turkish guidance sentence in the introduction document, replace “Tam açıklamayı için” with the grammatically correct “Tam açıklama için” while preserving the existing link and sentence structure.docs/vi/introduction.mdx-53-54 (1)
53-54: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winLocalize the quick-start comments.
These comments remain in English while the surrounding page is Vietnamese.
Proposed fix
-failproofai policies --install # enable policies (or skip — `failproofai` will offer to set them up on first run) -failproofai # launch the dashboard +failproofai policies --install # bật chính sách (hoặc bỏ qua — `failproofai` sẽ đề nghị thiết lập ở lần chạy đầu tiên) +failproofai # khởi chạy bảng điều khiển🤖 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 `@docs/vi/introduction.mdx` around lines 53 - 54, Translate the inline quick-start comments beside the `failproofai policies --install` and `failproofai` commands into Vietnamese, matching the surrounding `docs/vi/introduction.mdx` content while preserving the commands and their meaning.docs/vi/getting-started.mdx-187-189 (1)
187-189: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUpdate the stale built-in policy count.
The card says 26 policies, while the updated introduction and policy catalog document 39.
- Tất cả 26 chính sách với các tham số + Tất cả 39 chính sách với các tham số🤖 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 `@docs/vi/getting-started.mdx` around lines 187 - 189, Update the policy count in the “Chính sách tích hợp” Card to 39, keeping the existing title, icon, href, and surrounding text unchanged.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ffdc16c1-6561-4297-a486-9dafedddd7e5
📒 Files selected for processing (111)
.github/workflows/translate-docs.yml__tests__/scripts/translate-docs/config.test.ts__tests__/scripts/translate-docs/mintlify-nav.test.tsdocs/ar/built-in-policies.mdxdocs/ar/cli/audit.mdxdocs/ar/configuration.mdxdocs/ar/dashboard.mdxdocs/ar/getting-started.mdxdocs/ar/introduction.mdxdocs/built-in-policies.mdxdocs/cli/audit.mdxdocs/configuration.mdxdocs/dashboard.mdxdocs/de/built-in-policies.mdxdocs/de/cli/audit.mdxdocs/de/configuration.mdxdocs/de/dashboard.mdxdocs/de/getting-started.mdxdocs/de/introduction.mdxdocs/es/built-in-policies.mdxdocs/es/cli/audit.mdxdocs/es/configuration.mdxdocs/es/dashboard.mdxdocs/es/getting-started.mdxdocs/es/introduction.mdxdocs/fr/built-in-policies.mdxdocs/fr/cli/audit.mdxdocs/fr/configuration.mdxdocs/fr/dashboard.mdxdocs/fr/getting-started.mdxdocs/fr/introduction.mdxdocs/getting-started.mdxdocs/he/built-in-policies.mdxdocs/he/cli/audit.mdxdocs/he/configuration.mdxdocs/he/dashboard.mdxdocs/he/getting-started.mdxdocs/he/introduction.mdxdocs/hi/built-in-policies.mdxdocs/hi/cli/audit.mdxdocs/hi/configuration.mdxdocs/hi/dashboard.mdxdocs/hi/getting-started.mdxdocs/hi/introduction.mdxdocs/i18n/README.ar.mddocs/i18n/README.de.mddocs/i18n/README.es.mddocs/i18n/README.fr.mddocs/i18n/README.he.mddocs/i18n/README.hi.mddocs/i18n/README.it.mddocs/i18n/README.ja.mddocs/i18n/README.ko.mddocs/i18n/README.pt-br.mddocs/i18n/README.ru.mddocs/i18n/README.tr.mddocs/i18n/README.vi.mddocs/i18n/README.zh.mddocs/introduction.mdxdocs/it/built-in-policies.mdxdocs/it/cli/audit.mdxdocs/it/configuration.mdxdocs/it/dashboard.mdxdocs/it/getting-started.mdxdocs/it/introduction.mdxdocs/ja/built-in-policies.mdxdocs/ja/cli/audit.mdxdocs/ja/configuration.mdxdocs/ja/dashboard.mdxdocs/ja/getting-started.mdxdocs/ja/introduction.mdxdocs/ko/built-in-policies.mdxdocs/ko/cli/audit.mdxdocs/ko/configuration.mdxdocs/ko/dashboard.mdxdocs/ko/getting-started.mdxdocs/ko/introduction.mdxdocs/pt-br/built-in-policies.mdxdocs/pt-br/cli/audit.mdxdocs/pt-br/configuration.mdxdocs/pt-br/dashboard.mdxdocs/pt-br/getting-started.mdxdocs/pt-br/introduction.mdxdocs/ru/built-in-policies.mdxdocs/ru/cli/audit.mdxdocs/ru/configuration.mdxdocs/ru/dashboard.mdxdocs/ru/getting-started.mdxdocs/ru/introduction.mdxdocs/styles/config/vocabularies/Mintlify/accept.txtdocs/tr/built-in-policies.mdxdocs/tr/cli/audit.mdxdocs/tr/configuration.mdxdocs/tr/dashboard.mdxdocs/tr/getting-started.mdxdocs/tr/introduction.mdxdocs/vi/built-in-policies.mdxdocs/vi/cli/audit.mdxdocs/vi/configuration.mdxdocs/vi/dashboard.mdxdocs/vi/getting-started.mdxdocs/vi/introduction.mdxdocs/zh/built-in-policies.mdxdocs/zh/cli/audit.mdxdocs/zh/configuration.mdxdocs/zh/dashboard.mdxdocs/zh/getting-started.mdxdocs/zh/introduction.mdxscripts/translate-docs/config.tsscripts/translate-docs/mintlify-nav.tsscripts/translate-docs/types.ts
💤 Files with no reviewable changes (1)
- docs/styles/config/vocabularies/Mintlify/accept.txt
🚧 Files skipped from review as they are similar to previous changes (4)
- tests/scripts/translate-docs/config.test.ts
- scripts/translate-docs/mintlify-nav.ts
- tests/scripts/translate-docs/mintlify-nav.test.ts
- scripts/translate-docs/config.ts
|
⏳ Hermes Code Review — Re-Review Phase 4 New commit detected: Analyzing 106 translation files + English source changes. Running full test suite now. |
|
🔴 CRITICAL: docs.json pt-BR locale regressed in commit 4ecd054 In commit Evidence:
Root cause: The CI translation pipeline regenerated
Fix:
Severity: This breaks the Mintlify locale fix that this PR is designed to deliver. Without |
|
✅ Hermes Code Review — Re-Review: Build and Test Complete
Re-review scope: New commit |
🔍 Automated Code Review — Hermes Agent (Re-Review)📋 Executive SummaryThis PR fixes Portuguese locale handling for Mintlify, restores the AgentEye language selector, and makes the CI translation pipeline more robust. The re-review covers a new commit 📊 Change Architecturegraph TD
A["English Source Docs
Legend: 🟢 New | 🔵 Modified | 🔴 Critical Regression 🔴 Breaking Changes✅ No breaking API or schema changes detected. The
|
hermes-exosphere
left a comment
There was a problem hiding this comment.
Automated review found 1 critical issue: docs.json pt-BR locale regression in commit 4ecd054. See the summary comment and critical issue comment for full details. 1,954 tests pass, code quality is good, but the regression must be fixed before merge. 🔴
🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "=== Checking docs.json for pt-br/pt-BR language entries ==="
fd docs.json --max-depth 2
grep -n '"language"' docs/docs.json | grep -i 'pt-b' || true
echo "---"
grep -n '"pt-b' docs/docs.json | head -50
echo "=== Checking mintlify-nav.ts current implementation ==="
sed -n '1,140p' scripts/translate-docs/mintlify-nav.ts
echo "=== Checking config.ts for pt-br entry ==="
grep -n -A5 '"pt-br"' scripts/translate-docs/config.ts
echo "=== git log for docs.json ==="
git log --oneline -- docs/docs.json | head -10Length of output: 8138 🏁 Script executed: #!/bin/bash
set -euo pipefail
git show da39629:docs/docs.json | grep -n '"language": "pt-' || true
echo "---5e43775---"
git show 5e43775:docs/docs.json | grep -n '"language": "pt-' || true
echo "---4ecd054 parent---"
git show 4ecd054^:docs/docs.json | grep -n '"language": "pt-' || true
echo "---4ecd054---"
git show 4ecd054:docs/docs.json | grep -n '"language": "pt-' || true
echo "=== check what 4ecd054 diff touched for docs.json ==="
git show 4ecd054 -- docs/docs.json | head -80Length of output: 1786 🏁 Script executed: # Inspect the translate-docs workflow to see which ref/branch it checks out
# when it regenerates docs.json, and whether it could have run against a
# stale main branch before the mintlifyCode fix was merged.
cat .github/workflows/translate-docs.ymlLength of output: 10023
Verification: The diff in Root cause: Looking at Since this PR's Fix for this PR: manually restore the two lines so the branch ships the correct locale now, independent of when --- a/docs/docs.json
+++ b/docs/docs.json
@@ -344,7 +344,7 @@
{
- "language": "pt-br",
+ "language": "pt-BR",
"tabs": [
...
@@ -1275,7 +1275,7 @@
{
- "language": "pt-br",
+ "language": "pt-BR",
"tabs": [No recurrence risk after merge: once this PR merges into ✅ Action performedReview finished.
|
|
Automated code review started - full review. Results will be posted here. |
|
⏳ Hermes Code Review — Phase 3: Build and Verification Running full test suite and analyzing 20 changed files... |
hermes-exosphere
left a comment
There was a problem hiding this comment.
Inline suggestions from Hermes review.
🔍 Automated Code Review — Hermes Agent📋 Executive SummaryThis PR hardens the automated translation pipeline by making publishing atomic, pins the Mintlify validator, emits the canonical 📊 Change Architecturegraph TD
A["scripts/translate-docs/config.ts<br/>➕ mintlifyCode field"] -->|"pt-BR canonical"| B["scripts/translate-docs/mintlify-nav.ts<br/>🔧 buildLanguageNav lookup"]
B --> C["docs/docs.json<br/>🔧 pt-br → pt-BR"]
A --> D["scripts/translate-docs/types.ts<br/>➕ LanguageConfig.mintlifyCode?"]
E[".github/workflows/translate-docs.yml<br/>🔧 7 changes"] -->|"if-no-files-found: error"| F["Artifact safety"]
E -->|"consolidate: success only"| F
E -->|"mintlify@4.2.680"| G["Mintlify pinned"]
E -->|"--ignore-scripts"| H["CI perf: 14x faster install"]
E -->|"post-overlay revalidation"| I["Commit-tree integrity"]
J["docs/*/dashboard.mdx<br/>docs/*/introduction.mdx<br/>docs/*/cli/audit.mdx"] -->|"qualified privacy claims"| K["All 10 locales"]
L["__tests__/.../config.test.ts<br/>__tests__/.../mintlify-nav.test.ts"] -->|"+2 new tests"| M["Regression coverage"]
Legend: 🟢 New | 🔵 Modified | 🟡 Breaking Change Risk | ⚪ No functional change 🔴 Breaking Changes✅ No breaking changes detected. All changes are additive or qualified:
|
hermes-exosphere
left a comment
There was a problem hiding this comment.
Hermes Agent Automated Review: APPROVED ✅
Summary: 20 files changed, 137 insertions, 52 deletions. The PR hardens the translation pipeline (atomic publishing, Mintlify pinning), fixes the pt-BR Mintlify locale, and qualifies privacy claims across all localized docs.
Evidence:
- TypeScript: 0 errors
- 2,018 tests passed (0 failures)
- 76 translation pipeline tests passed
- Both new regression tests pass (pt-BR canonical locale + config mintlifyCode)
All 13 previous review threads resolved. No blocking issues found.
See review summary comment for full analysis.
The merge-base changed after approval.
hermes-exosphere
left a comment
There was a problem hiding this comment.
Hermes Agent Automated Review: APPROVED ✅
Summary: 20 files changed, 137 insertions, 52 deletions. The PR hardens the translation pipeline (atomic publishing, Mintlify pinning), fixes the pt-BR Mintlify locale, and qualifies privacy claims across all localized docs.
Evidence:
- TypeScript: 0 errors
- 2,018 tests passed (0 failures)
- 76 translation pipeline tests passed
- Both new regression tests pass
All 13 previous review threads resolved. No critical bugs, no security issues, no breaking changes.
Verdict: APPROVED
See review summary for full analysis and mermaid architecture diagram.
The merge-base changed after approval.
hermes-exosphere
left a comment
There was a problem hiding this comment.
Hermes Agent Review: APPROVED ✅
Approving after the final review iteration. All concerns addressed, tests pass.
The merge-base changed after approval.
Description\n\nFix AgentEye locale navigation and harden the automated translation workflow after rebasing it onto the latest main.\n\n- emit Mintlify canonical pt-BR while preserving pt-br/ paths and cache keys\n- restore AgentEye product and language navigation\n- publish translations only when every locale and cache artifact exists\n- pin Mintlify CLI validation to version 4.2.680\n- validate the final tree after overlaying an existing translation PR branch\n- qualify local-data claims for optional authenticated audit reminders and invitations\n- include regression coverage and the required changelog entry\n\n## Type of Change\n\n- [x] Bug fix\n- [x] Documentation\n- [ ] New feature\n- [ ] Breaking change\n\n## Checklist\n\n- [x] Lint: 0 errors; 5 pre-existing warnings\n- [x] TypeScript typecheck\n- [x] Unit tests: 2,018 passed\n- [x] E2E after a clean rebuild: 307 passed, 6 skipped\n- [x] MDX validation: 600 pages\n- [x] Production build\n- [x] Branch contains current main\n\nSupersedes #511 by including its atomic-publishing changes in this PR.