Skip to content

[auto] update translations#487

Merged
NiveditJain merged 3 commits into
mainfrom
auto/translate-docs-20260711-0631
Jul 11, 2026
Merged

[auto] update translations#487
NiveditJain merged 3 commits into
mainfrom
auto/translate-docs-20260711-0631

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Automated translation update triggered by changes to English documentation sources.

  • Only changed pages were re-translated (content-hash cache)
  • All 14 languages across 3 tiers (parallel matrix)

Post-review fixes (Hermes review + CI)

Manual fixes applied on top of the auto-translation to resolve the failing docs
CI job and the hermes-exosphere review (CHANGES_REQUESTED):

  • docs/ja/built-in-policies.mdx — stripped 11 hallucinated {#id} heading-ID
    suffixes that @mdx-js/mdx (the Mintlify deploy parser) rejects with
    "Could not parse expression with acorn". This was the failing CI blocker
    (missed by the structural review). English + all 13 sibling languages use plain
    headings; parity restored. bun run validate:mdx now passes 300/300.
  • docs/tr/cli/hook.mdx — restored the YAML frontmatter (title + description)
    dropped in re-translation (review item 1).
  • docs/he/configuration.mdx — restored the dropped
    --cli claude|codex|copilot|cursor|opencode|pi|gemini|hermes inline code span
    (review item 2).
  • docs/de/cli/auth.mdx — un-translated the inline-code placeholder
    <E-Mail> (<Benutzer-UUID>) back to <email> (<user uuid>) per the
    never-translate-inline-code rule (review nit item 3).
  • CHANGELOG.md — added a 0.0.13-beta.2 Docs entry (review suggestion 3).

Branch merged up to date with main (beta.2). An independent structural sweep of
all 275 changed pages (frontmatter parity, code-fence counts, critical-term
preservation) found no further regressions; every inline-code CLI/command/config
token is preserved across all languages.

Generated with Claude Code.

@hermes-exosphere

Copy link
Copy Markdown

🔍 Automated code review started — analyzing [{"additions":54,"deletions":55,"path":"docs/ar/architecture.mdx"},{"additions":153,"deletions":148,"path":"docs/ar/built-in-policies.mdx"},{"additions":37,"deletions":38,"path":"docs/ar/cli/audit.mdx"},{"additions":20,"deletions":20,"path":"docs/ar/cli/auth.mdx"},{"additions":6,"deletions":5,"path":"docs/ar/cli/dashboard.mdx"},{"additions":13,"deletions":12,"path":"docs/ar/cli/environment-variables.mdx"},{"additions":8,"deletions":8,"path":"docs/ar/cli/hook.mdx"},{"additions":20,"deletions":20,"path":"docs/ar/cli/install-policies.mdx"},{"additions":3,"deletions":3,"path":"docs/ar/cli/list-policies.mdx"},{"additions":15,"deletions":15,"path":"docs/ar/cli/remove-policies.mdx"},{"additions":60,"deletions":58,"path":"docs/ar/configuration.mdx"},{"additions":77,"deletions":78,"path":"docs/ar/custom-policies.mdx"},{"additions":49,"deletions":50,"path":"docs/ar/dashboard.mdx"},{"additions":46,"deletions":45,"path":"docs/ar/examples.mdx"},{"additions":15,"deletions":14,"path":"docs/ar/for-agents.mdx"},{"additions":34,"deletions":32,"path":"docs/ar/getting-started.mdx"},{"additions":15,"deletions":15,"path":"docs/ar/introduction.mdx"},{"additions":27,"deletions":27,"path":"docs/ar/package-aliases.mdx"},{"additions":39,"deletions":38,"path":"docs/ar/testing.mdx"},{"additions":63,"deletions":63,"path":"docs/de/architecture.mdx"},{"additions":83,"deletions":81,"path":"docs/de/built-in-policies.mdx"},{"additions":32,"deletions":32,"path":"docs/de/cli/audit.mdx"},{"additions":20,"deletions":20,"path":"docs/de/cli/auth.mdx"},{"additions":3,"deletions":3,"path":"docs/de/cli/dashboard.mdx"},{"additions":5,"deletions":5,"path":"docs/de/cli/environment-variables.mdx"},{"additions":8,"deletions":8,"path":"docs/de/cli/hook.mdx"},{"additions":8,"deletions":8,"path":"docs/de/cli/install-policies.mdx"},{"additions":3,"deletions":3,"path":"docs/de/cli/list-policies.mdx"},{"additions":2,"deletions":2,"path":"docs/de/cli/remove-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/de/cli/version.mdx"},{"additions":47,"deletions":45,"path":"docs/de/configuration.mdx"},{"additions":60,"deletions":60,"path":"docs/de/custom-policies.mdx"},{"additions":37,"deletions":37,"path":"docs/de/dashboard.mdx"},{"additions":29,"deletions":29,"path":"docs/de/examples.mdx"},{"additions":4,"deletions":4,"path":"docs/de/for-agents.mdx"},{"additions":21,"deletions":20,"path":"docs/de/getting-started.mdx"},{"additions":9,"deletions":9,"path":"docs/de/introduction.mdx"},{"additions":24,"deletions":24,"path":"docs/de/package-aliases.mdx"},{"additions":34,"deletions":34,"path":"docs/de/testing.mdx"},{"additions":50,"deletions":50,"path":"docs/es/architecture.mdx"},{"additions":102,"deletions":91,"path":"docs/es/built-in-policies.mdx"},{"additions":37,"deletions":41,"path":"docs/es/cli/audit.mdx"},{"additions":17,"deletions":17,"path":"docs/es/cli/auth.mdx"},{"additions":9,"deletions":9,"path":"docs/es/cli/dashboard.mdx"},{"additions":10,"deletions":10,"path":"docs/es/cli/environment-variables.mdx"},{"additions":7,"deletions":7,"path":"docs/es/cli/hook.mdx"},{"additions":11,"deletions":11,"path":"docs/es/cli/install-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/es/cli/list-policies.mdx"},{"additions":6,"deletions":6,"path":"docs/es/cli/remove-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/es/cli/version.mdx"},{"additions":44,"deletions":42,"path":"docs/es/configuration.mdx"},{"additions":58,"deletions":58,"path":"docs/es/custom-policies.mdx"},{"additions":29,"deletions":29,"path":"docs/es/dashboard.mdx"},{"additions":23,"deletions":23,"path":"docs/es/examples.mdx"},{"additions":9,"deletions":9,"path":"docs/es/for-agents.mdx"},{"additions":24,"deletions":23,"path":"docs/es/getting-started.mdx"},{"additions":8,"deletions":8,"path":"docs/es/introduction.mdx"},{"additions":20,"deletions":20,"path":"docs/es/package-aliases.mdx"},{"additions":25,"deletions":25,"path":"docs/es/testing.mdx"},{"additions":59,"deletions":59,"path":"docs/fr/architecture.mdx"},{"additions":95,"deletions":90,"path":"docs/fr/built-in-policies.mdx"},{"additions":42,"deletions":40,"path":"docs/fr/cli/audit.mdx"},{"additions":18,"deletions":18,"path":"docs/fr/cli/auth.mdx"},{"additions":5,"deletions":5,"path":"docs/fr/cli/dashboard.mdx"},{"additions":9,"deletions":9,"path":"docs/fr/cli/environment-variables.mdx"},{"additions":5,"deletions":5,"path":"docs/fr/cli/hook.mdx"},{"additions":9,"deletions":9,"path":"docs/fr/cli/install-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/fr/cli/list-policies.mdx"},{"additions":7,"deletions":7,"path":"docs/fr/cli/remove-policies.mdx"},{"additions":51,"deletions":49,"path":"docs/fr/configuration.mdx"},{"additions":47,"deletions":47,"path":"docs/fr/custom-policies.mdx"},{"additions":31,"deletions":31,"path":"docs/fr/dashboard.mdx"},{"additions":21,"deletions":21,"path":"docs/fr/examples.mdx"},{"additions":6,"deletions":6,"path":"docs/fr/for-agents.mdx"},{"additions":19,"deletions":18,"path":"docs/fr/getting-started.mdx"},{"additions":8,"deletions":8,"path":"docs/fr/introduction.mdx"},{"additions":7,"deletions":7,"path":"docs/fr/package-aliases.mdx"},{"additions":29,"deletions":29,"path":"docs/fr/testing.mdx"},{"additions":81,"deletions":83,"path":"docs/he/architecture.mdx"},{"additions":132,"deletions":130,"path":"docs/he/built-in-policies.mdx"},{"additions":44,"deletions":38,"path":"docs/he/cli/audit.mdx"},{"additions":19,"deletions":20,"path":"docs/he/cli/auth.mdx"},{"additions":6,"deletions":6,"path":"docs/he/cli/dashboard.mdx"},{"additions":19,"deletions":18,"path":"docs/he/cli/environment-variables.mdx"},{"additions":22,"deletions":16,"path":"docs/he/cli/hook.mdx"},{"additions":17,"deletions":17,"path":"docs/he/cli/install-policies.mdx"},{"additions":3,"deletions":3,"path":"docs/he/cli/list-policies.mdx"},{"additions":10,"deletions":11,"path":"docs/he/cli/remove-policies.mdx"},{"additions":3,"deletions":2,"path":"docs/he/cli/version.mdx"},{"additions":64,"deletions":62,"path":"docs/he/configuration.mdx"},{"additions":78,"deletions":78,"path":"docs/he/custom-policies.mdx"},{"additions":52,"deletions":55,"path":"docs/he/dashboard.mdx"},{"additions":38,"deletions":39,"path":"docs/he/examples.mdx"},{"additions":16,"deletions":16,"path":"docs/he/for-agents.mdx"},{"additions":48,"deletions":47,"path":"docs/he/getting-started.mdx"},{"additions":11,"deletions":11,"path":"docs/he/introduction.mdx"},{"additions":25,"deletions":25,"path":"docs/he/package-aliases.mdx"},{"additions":40,"deletions":40,"path":"docs/he/testing.mdx"},{"additions":115,"deletions":116,"path":"docs/hi/architecture.mdx"},{"additions":253,"deletions":253,"path":"docs/hi/built-in-policies.mdx"}] files, +9106/-8910...

⏱️ This may take a few minutes. Results will be posted here when complete.

NiveditJain added a commit that referenced this pull request Jul 11, 2026
The PR landed as #488 (the predicted #487 was taken in between).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Gn9p2tji5JjqAWAVg23ds
Comment thread docs/tr/cli/hook.mdx
title: Hook işleyicisi (iç)
description: "Claude Code'un her araç etkinliğinde çağırdığı alt işlem"
---

```bash

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Regression — YAML frontmatter dropped in this re-translation.

This page previously had frontmatter that this PR removed:

title: Hook işleyicisi (iç)
description: "Claude Code'un her araç etkinliğinde çağırdığı alt işlem"

All 13 other languages' cli/hook.mdx kept their frontmatter — only Turkish lost it (verified across every language). Without a title, Mintlify renders this page and its sidebar entry without a proper title, unlike every sibling translation.

Fix: restore the frontmatter block at the top of the file (or re-run translation for this page with --force), e.g.:

---
title: Hook işleyicisi (dahili)
description: "Claude Code'un her araç olayında çağırdığı alt süreç"
---

Comment thread docs/he/configuration.mdx Outdated

עבור `--cli claude|codex|copilot|cursor|opencode|pi|gemini` למטרה סוכן ספציפי (space-separated או חוזר לכל תת-קבוצה):
עבור מטרה לחלק agent מסוים העבור space-separated או חוזר על כל תת-קבוצה:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Regression — the --cli option list (inline code) was dropped from this sentence.

English source:

Pass --cli claude|codex|copilot|cursor|opencode|pi|gemini|hermes to target a specific agent…

The previous Hebrew version preserved the code span (--cli claude|codex|copilot|cursor|opencode|pi|gemini). This re-translation removed the entire --cli … inline code, leaving a sentence with no flag syntax at all. The #486 change only added hermes to the list — it should have extended the span, not deleted it.

Fix: restore the inline code, e.g. --cli claude|codex|copilot|cursor|opencode|pi|gemini|hermes. The bash block just below still shows the per-CLI examples, so this is a partial loss — but the inline reference should stay for parity with the other 13 languages.

@hermes-exosphere

Copy link
Copy Markdown

🔍 Automated Code Review

📋 Executive Summary

This is an automated documentation-translation PR (authored by github-actions[bot]) that re-translates the English docs changed by #486 (Hermes integration) into 14 languages — 289 files, +9,106/−8,910, all under docs/. No source code, config, schema, or dependencies are touched.

Overall quality is high: across all 289 files, code fences balance, MDX component tags balance, headings/code-block counts match the English source, critical CLI terms/commands are preserved, README shields survive, and RTL <div> tags balance. Automated structural validation surfaced 2 genuine content regressions and 1 minor nit — none break the Mintlify build, but two pages regressed versus their previous translated state and should be fixed.


📊 Change Architecture

graph TD
    A["English sources changed by #486<br/>docs/*.mdx · Hermes integration"] -->|push to main| B["translate-docs.yml<br/>Sonnet T1 / Haiku T2-T3"]
    B -->|content-hash cache miss| C["Re-translate changed pages"]
    C --> D["14 languages · docs/&lt;lang&gt;/*.mdx"]
    C --> E["docs/i18n/README.&lt;lang&gt;.md"]
    D --> F["✅ 289 files structurally sound<br/>fences · tags · headings · terms · shields"]
    D --> G["🟡 tr/cli/hook.mdx<br/>frontmatter dropped"]
    D --> H["🟡 he/configuration.mdx:205<br/>--cli code span dropped"]
    D --> I["🔵 de/cli/auth.mdx:40<br/>inline-code placeholder translated"]
    style C fill:#90EE90
    style F fill:#90EE90
    style G fill:#FFD700
    style H fill:#FFD700
    style I fill:#87CEEB
    style A fill:#87CEEB
Loading

Legend: 🟢 New/regenerated · 🔵 Minor/Info · 🟡 Regression to fix


🔴 Breaking Changes

No breaking changes. Docs-only PR — no schema, API, config, dependency, serialization, or public-API changes. docs.json (navigation) is untouched, so no new/removed pages.


⚠️ Issues Found

# Severity Location Issue
1 🟡 Warning (regression) docs/tr/cli/hook.mdx:1 Entire YAML frontmatter (title + description) dropped in re-translation. The previous version had it; all 13 other languages kept theirs. The Turkish page loses its title + sidebar label in Mintlify.
2 🟡 Warning (regression) docs/he/configuration.mdx:205 The inline code span listing --cli options was deleted from the sentence during re-translation (the prior Hebrew version had it). Prose now references no flag syntax. Partly mitigated by the code block below.
3 🔵 Info / nit docs/de/cli/auth.mdx:40 Inline-code placeholders <email> / <user uuid> were translated to <E-Mail> / <Benutzer-UUID>, violating the pipeline's "never translate inline code" rule. Harmless (inside backticks, no MDX breakage; they are descriptive placeholders) but inconsistent with other languages.

🔬 Logical / Bug Analysis

Because this is machine-generated translation, the review focused on structural fidelity vs. the English source rather than program logic. Per-check results across all 275 .mdx translations (+ 14 READMEs):

Check Result
Code-fence balance ✅ 0 unbalanced / count-mismatch (289/289)
YAML frontmatter preserved 🟡 1 dropped (tr/cli/hook.mdx), 288 OK
MDX component tag balance (<Card>, <Note>, <Tabs>, …) ✅ balanced (the 2 flagged de/auth "tags" are inline-code false positives)
Heading count == English ✅ 0 mismatches
Code-block count == English ✅ 0 mismatches
Critical terms/commands preserved (PreToolUse, --install, settings.json, policy names, hermes, …) 🟡 1 loss (he/configuration.mdx), else all preserved
Inline-code-span preservation ✅ only cosmetic loss (de/package-aliases.mdx: single letters a/i/o → „a"/„i"/„o")
README badge/shield URLs preserved ✅ 6 == 6 for all 14 languages
RTL <div> balance (ar/he) ✅ 0 unbalanced (39/39); RTL is Mintlify-config-driven, unchanged
Non-docs files touched ✅ 0

No race conditions, resource leaks, null-handling, or async issues apply (no executable code changed).


🧪 Evidence — Build & Test Results

Repo CI does not build docs (Mintlify builds on its hosted platform; translate-docs.yml performs no output validation), and the code CI jobs (quality/test/build/e2e) are path-filtered off for docs-only PRs. The only checks that ran are Socket Security (both ✅ SUCCESS). Evidence below is from structural-validation scripts run against the checked-out branch.

Structural validation (289 files vs English source)
=== VALIDATION SUMMARY ===
Files checked: 289
Total problems: 3
By type:
  TAG_COUNT_MISMATCH: 2      <- both inside inline code in de/auth (false positives)
  FRONTMATTER_LOST: 1        <- docs/tr/cli/hook.mdx  (REAL)

[TAG_COUNT_MISMATCH] docs/de/cli/auth.mdx — <E>: en=0 tr=1
[TAG_COUNT_MISMATCH] docs/de/cli/auth.mdx — <Benutzer>: en=0 tr=1
[FRONTMATTER_LOST] docs/tr/cli/hook.mdx — english has frontmatter, translation does not
Frontmatter scan (cli/hook.mdx across all languages)
zh: OK   ja: OK   ko: OK   es: OK   pt-br: OK   de: OK   fr: OK
ru: OK   hi: OK   tr: *** MISSING   vi: OK   it: OK   ar: OK   he: OK
Critical-term preservation (28 terms × 275 files)
Checked 275 translated .mdx files against 28 terms.
1 potential term loss:
docs/he/configuration.mdx: "hermes" en=6 tr=5 (lost 1)
  -> root cause: the `--cli claude|codex|...|hermes` inline span was dropped from line 205
Confirming the Turkish frontmatter regression (git diff, head of file)
@@ -1,20 +1,15 @@
----
-title: Hook işleyicisi (iç)
-description: "Claude Code'un her araç etkinliğinde çağırdığı alt işlem"
----
-
 (file now starts directly with the fenced bash code block — no frontmatter)

🔗 Issue Linkage

⚠️ No issue linked (expected for an auto-generated translation sync). This PR is the downstream translation of the English doc changes introduced by #486 (Hermes integration); the new hermes CLI content is what triggered the re-translation.


💡 Suggestions

  1. Add a post-translation validation gate to translate-docs.yml. Both regressions here would have been caught automatically by a cheap structural diff against the English source: (a) frontmatter present iff the source has it, and (b) inline-code-span / fenced-code count ≥ source. Right now the pipeline writes whatever the model returns (only sanitizeJsxAttributes / stripStrayTrailingFence post-processing) and caches it — so a bad output is cached as done and won't self-heal without --force. A validation step that fails the matrix job (or re-prompts) on structural drift would prevent silently shipping degraded pages.
  2. Guard frontmatter explicitly. Since title/description are the only frontmatter values translated, the pipeline could parse the source frontmatter, translate just those values, and re-emit the block deterministically — removing the class of "model dropped the --- block" errors entirely (Turkish here, but any Haiku Tier-2/3 run is at risk).
  3. CHANGELOG: CLAUDE.md states every PR must update CHANGELOG.md (there is a Docs subsection). This auto-PR doesn't. Either have the workflow append a one-line Docs entry, or document that auto-translation syncs are exempt.

🏆 Verdict

🔴 CHANGES REQUESTED — 2 targeted fixes before merge:

  • Must fix: restore the dropped frontmatter in docs/tr/cli/hook.mdx (see inline comment) — it's a visible title/sidebar regression and a 4-line fix.
  • Should fix: restore the --cli … inline code span in docs/he/configuration.mdx:205 for parity with the other 13 languages.
  • Optional nit: docs/de/cli/auth.mdx:40 inline-code placeholder translation.

The remaining 287 files are clean and the translation quality is otherwise excellent — this is a small, easily-addressed set of fixes on an otherwise mergeable PR.


Automated code review · 2026-07-11 · structural validation against English sources (289 files)

@hermes-exosphere hermes-exosphere left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Automated review of this auto-translation PR. 287 of 289 files are clean — structural validation against the English sources confirms balanced code fences, MDX tags, matching heading/code-block counts, preserved CLI terms/commands, intact README shields, and balanced RTL divs.

Two content regressions need a fix before merge (both flagged inline):

  1. 🟡 docs/tr/cli/hook.mdx — YAML frontmatter (title + description) was dropped in this re-translation. All 13 other languages kept it; the Turkish page would render without a title/sidebar label. Trivial 4-line restore.
  2. 🟡 docs/he/configuration.mdx:205 — the --cli claude|codex|…|hermes inline code span was deleted from the sentence (the previous Hebrew version had it). Restore for parity.

One optional nit: docs/de/cli/auth.mdx:40 translates inline-code placeholders (<email><E-Mail>).

See the summary comment for full evidence and a suggestion to add a post-translation validation gate to translate-docs.yml (which would catch both classes automatically). Not blocking beyond the two fixes above.

NiveditJain and others added 2 commits July 11, 2026 00:33
Fixes the failing `docs` CI job (MDX parse) and the Hermes review on #487:

- ja/built-in-policies.mdx: strip 11 hallucinated `{#id}` heading-ID
  suffixes that @mdx-js/mdx (the Mintlify deploy parser) rejects with
  "Could not parse expression with acorn". English + all 13 sibling
  languages use plain headings; this restores parity and fixes CI.
- tr/cli/hook.mdx: restore the YAML frontmatter (title + description)
  dropped in re-translation — every other language kept it.
- he/configuration.mdx: restore the dropped
  `--cli claude|codex|copilot|cursor|opencode|pi|gemini|hermes` inline
  code span (the #486 change should have extended the list, not removed it).
- de/cli/auth.mdx: un-translate the inline-code placeholder
  `<E-Mail> (<Benutzer-UUID>)` back to `<email> (<user uuid>)` per the
  never-translate-inline-code rule.

Verified: `bun run validate:mdx` now passes 300/300 pages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013k21Co2w2vLyKPhevz8HtM
@hermes-exosphere

Copy link
Copy Markdown

🔍 Automated code review started — analyzing [{"additions":5,"deletions":0,"path":"CHANGELOG.md"},{"additions":54,"deletions":55,"path":"docs/ar/architecture.mdx"},{"additions":153,"deletions":148,"path":"docs/ar/built-in-policies.mdx"},{"additions":37,"deletions":38,"path":"docs/ar/cli/audit.mdx"},{"additions":20,"deletions":20,"path":"docs/ar/cli/auth.mdx"},{"additions":6,"deletions":5,"path":"docs/ar/cli/dashboard.mdx"},{"additions":13,"deletions":12,"path":"docs/ar/cli/environment-variables.mdx"},{"additions":8,"deletions":8,"path":"docs/ar/cli/hook.mdx"},{"additions":20,"deletions":20,"path":"docs/ar/cli/install-policies.mdx"},{"additions":3,"deletions":3,"path":"docs/ar/cli/list-policies.mdx"},{"additions":15,"deletions":15,"path":"docs/ar/cli/remove-policies.mdx"},{"additions":60,"deletions":58,"path":"docs/ar/configuration.mdx"},{"additions":77,"deletions":78,"path":"docs/ar/custom-policies.mdx"},{"additions":49,"deletions":50,"path":"docs/ar/dashboard.mdx"},{"additions":46,"deletions":45,"path":"docs/ar/examples.mdx"},{"additions":15,"deletions":14,"path":"docs/ar/for-agents.mdx"},{"additions":34,"deletions":32,"path":"docs/ar/getting-started.mdx"},{"additions":15,"deletions":15,"path":"docs/ar/introduction.mdx"},{"additions":27,"deletions":27,"path":"docs/ar/package-aliases.mdx"},{"additions":39,"deletions":38,"path":"docs/ar/testing.mdx"},{"additions":63,"deletions":63,"path":"docs/de/architecture.mdx"},{"additions":83,"deletions":81,"path":"docs/de/built-in-policies.mdx"},{"additions":32,"deletions":32,"path":"docs/de/cli/audit.mdx"},{"additions":20,"deletions":20,"path":"docs/de/cli/auth.mdx"},{"additions":3,"deletions":3,"path":"docs/de/cli/dashboard.mdx"},{"additions":5,"deletions":5,"path":"docs/de/cli/environment-variables.mdx"},{"additions":8,"deletions":8,"path":"docs/de/cli/hook.mdx"},{"additions":8,"deletions":8,"path":"docs/de/cli/install-policies.mdx"},{"additions":3,"deletions":3,"path":"docs/de/cli/list-policies.mdx"},{"additions":2,"deletions":2,"path":"docs/de/cli/remove-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/de/cli/version.mdx"},{"additions":47,"deletions":45,"path":"docs/de/configuration.mdx"},{"additions":60,"deletions":60,"path":"docs/de/custom-policies.mdx"},{"additions":37,"deletions":37,"path":"docs/de/dashboard.mdx"},{"additions":29,"deletions":29,"path":"docs/de/examples.mdx"},{"additions":4,"deletions":4,"path":"docs/de/for-agents.mdx"},{"additions":21,"deletions":20,"path":"docs/de/getting-started.mdx"},{"additions":9,"deletions":9,"path":"docs/de/introduction.mdx"},{"additions":24,"deletions":24,"path":"docs/de/package-aliases.mdx"},{"additions":34,"deletions":34,"path":"docs/de/testing.mdx"},{"additions":50,"deletions":50,"path":"docs/es/architecture.mdx"},{"additions":102,"deletions":91,"path":"docs/es/built-in-policies.mdx"},{"additions":37,"deletions":41,"path":"docs/es/cli/audit.mdx"},{"additions":17,"deletions":17,"path":"docs/es/cli/auth.mdx"},{"additions":9,"deletions":9,"path":"docs/es/cli/dashboard.mdx"},{"additions":10,"deletions":10,"path":"docs/es/cli/environment-variables.mdx"},{"additions":7,"deletions":7,"path":"docs/es/cli/hook.mdx"},{"additions":11,"deletions":11,"path":"docs/es/cli/install-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/es/cli/list-policies.mdx"},{"additions":6,"deletions":6,"path":"docs/es/cli/remove-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/es/cli/version.mdx"},{"additions":44,"deletions":42,"path":"docs/es/configuration.mdx"},{"additions":58,"deletions":58,"path":"docs/es/custom-policies.mdx"},{"additions":29,"deletions":29,"path":"docs/es/dashboard.mdx"},{"additions":23,"deletions":23,"path":"docs/es/examples.mdx"},{"additions":9,"deletions":9,"path":"docs/es/for-agents.mdx"},{"additions":24,"deletions":23,"path":"docs/es/getting-started.mdx"},{"additions":8,"deletions":8,"path":"docs/es/introduction.mdx"},{"additions":20,"deletions":20,"path":"docs/es/package-aliases.mdx"},{"additions":25,"deletions":25,"path":"docs/es/testing.mdx"},{"additions":59,"deletions":59,"path":"docs/fr/architecture.mdx"},{"additions":95,"deletions":90,"path":"docs/fr/built-in-policies.mdx"},{"additions":42,"deletions":40,"path":"docs/fr/cli/audit.mdx"},{"additions":18,"deletions":18,"path":"docs/fr/cli/auth.mdx"},{"additions":5,"deletions":5,"path":"docs/fr/cli/dashboard.mdx"},{"additions":9,"deletions":9,"path":"docs/fr/cli/environment-variables.mdx"},{"additions":5,"deletions":5,"path":"docs/fr/cli/hook.mdx"},{"additions":9,"deletions":9,"path":"docs/fr/cli/install-policies.mdx"},{"additions":1,"deletions":1,"path":"docs/fr/cli/list-policies.mdx"},{"additions":7,"deletions":7,"path":"docs/fr/cli/remove-policies.mdx"},{"additions":51,"deletions":49,"path":"docs/fr/configuration.mdx"},{"additions":47,"deletions":47,"path":"docs/fr/custom-policies.mdx"},{"additions":31,"deletions":31,"path":"docs/fr/dashboard.mdx"},{"additions":21,"deletions":21,"path":"docs/fr/examples.mdx"},{"additions":6,"deletions":6,"path":"docs/fr/for-agents.mdx"},{"additions":19,"deletions":18,"path":"docs/fr/getting-started.mdx"},{"additions":8,"deletions":8,"path":"docs/fr/introduction.mdx"},{"additions":7,"deletions":7,"path":"docs/fr/package-aliases.mdx"},{"additions":29,"deletions":29,"path":"docs/fr/testing.mdx"},{"additions":81,"deletions":83,"path":"docs/he/architecture.mdx"},{"additions":132,"deletions":130,"path":"docs/he/built-in-policies.mdx"},{"additions":44,"deletions":38,"path":"docs/he/cli/audit.mdx"},{"additions":19,"deletions":20,"path":"docs/he/cli/auth.mdx"},{"additions":6,"deletions":6,"path":"docs/he/cli/dashboard.mdx"},{"additions":19,"deletions":18,"path":"docs/he/cli/environment-variables.mdx"},{"additions":22,"deletions":16,"path":"docs/he/cli/hook.mdx"},{"additions":17,"deletions":17,"path":"docs/he/cli/install-policies.mdx"},{"additions":3,"deletions":3,"path":"docs/he/cli/list-policies.mdx"},{"additions":10,"deletions":11,"path":"docs/he/cli/remove-policies.mdx"},{"additions":3,"deletions":2,"path":"docs/he/cli/version.mdx"},{"additions":64,"deletions":62,"path":"docs/he/configuration.mdx"},{"additions":78,"deletions":78,"path":"docs/he/custom-policies.mdx"},{"additions":52,"deletions":55,"path":"docs/he/dashboard.mdx"},{"additions":38,"deletions":39,"path":"docs/he/examples.mdx"},{"additions":16,"deletions":16,"path":"docs/he/for-agents.mdx"},{"additions":48,"deletions":47,"path":"docs/he/getting-started.mdx"},{"additions":11,"deletions":11,"path":"docs/he/introduction.mdx"},{"additions":25,"deletions":25,"path":"docs/he/package-aliases.mdx"},{"additions":40,"deletions":40,"path":"docs/he/testing.mdx"},{"additions":115,"deletions":116,"path":"docs/hi/architecture.mdx"}] files, +9100/-8894...

⏱️ This may take a few minutes. Results will be posted here when complete.

@hermes-exosphere

Copy link
Copy Markdown

🔁 Automated Re-Review — Fixes Verified

📋 Executive Summary

Re-review of the two new commits pushed since my earlier CHANGES_REQUESTED (18ca38c fix + 34f1125 merge). All three requested changes and the CI docs-job blocker are resolved, no new regressions were introduced, and all 10 CI checks are green. Verdict flips to ✅ APPROVED.

The re-review delta is tiny and fully in scope — exactly the 5 remediation files plus a package.json version bump from the main merge:

 CHANGELOG.md                  |  5 +++++
 docs/de/cli/auth.mdx          |  2 +-
 docs/he/configuration.mdx     |  2 +-
 docs/ja/built-in-policies.mdx | 22 +++++++++++-----------
 docs/tr/cli/hook.mdx          |  5 +++++
 package.json                  |  2 +-

📊 Remediation Map

graph TD
    R["Prior review<br/>🔴 CHANGES_REQUESTED"] --> B["CI blocker: ja/built-in-policies.mdx<br/>11 hallucinated {#id} suffixes"]
    R --> I1["Must-fix: tr/cli/hook.mdx<br/>frontmatter dropped"]
    R --> I2["Should-fix: he/configuration.mdx:205<br/>--cli …|hermes span dropped"]
    R --> I3["Nit: de/cli/auth.mdx:40<br/>inline-code placeholder translated"]
    R --> S["Suggestion: CHANGELOG entry"]

    B -->|"strip all 11 → 0 repo-wide"| V["✅ validate:mdx 300/300"]
    I1 -->|"restore title+description"| V2["✅ frontmatter parity 0 missing"]
    I2 -->|"restore span"| V3["✅ hermes term count he==en==6"]
    I3 -->|"back to &lt;email&gt; (&lt;user uuid&gt;)"| V4["✅ matches EN exactly"]
    S -->|"0.0.13-beta.2 Docs entry"| V5["✅ version-consistent w/ package.json"]

    V --> OK["✅ APPROVED"]
    V2 --> OK
    V3 --> OK
    V4 --> OK
    V5 --> OK
    style OK fill:#90EE90
    style R fill:#FFB6C1
    style V fill:#90EE90
    style V2 fill:#90EE90
    style V3 fill:#90EE90
    style V4 fill:#90EE90
    style V5 fill:#90EE90
Loading

✅ Verification Matrix

Prior finding Status Independent evidence
🔴 CI blockerja/built-in-policies.mdx 11 × {#id} heading suffixes (MDX acorn parse failure) Fixed All 11 stripped; grep -rn '{#' across docs/0; EN uses plain headings ({# count 0); JA heading count now 13 == 13 vs EN; bun run validate:mdx✓ 300 pages parsed cleanly; docs CI job green (1m29s)
🟡 Must-fixtr/cli/hook.mdx dropped YAML frontmatter Fixed title+description restored; faithful TR translation of EN (Hook handler (internal)Hook işleyicisi (iç)); frontmatter-parity sweep across all 14 langs → 0 missing
🟡 Should-fixhe/configuration.mdx:205 dropped --cli …|hermes span Fixed Span present at line 205; hermes term count HE 6 == 6 EN (was 5)
🔵 Nitde/cli/auth.mdx:40 translated inline-code placeholder Fixed Back to `<email> (<user uuid>)`, matches EN source verbatim; no other stray translated placeholders in file
💡 Suggestion — missing CHANGELOG entry Addressed 0.0.13-beta.2 — 2026-07-11 Docs entry added; version-consistent (package.json == CHANGELOG == 0.0.13-beta.2)

🔬 New-regression sweep

Check Result
Delta vs previously-reviewed 0899671 ✅ exactly the 5 fix files + package.json — no surprise edits
Merge commit 34f1125 scope package.json version line only (no doc changes merged in)
Merge-conflict markers in docs/ ✅ 0
MDX structural integrity (fences/tags/expressions) validate:mdx 300/300 clean
Frontmatter parity (all langs) ✅ 0 missing
Version-consistency CI (quality job) ✅ green

🧪 Evidence

bun run validate:mdx (real Mintlify @mdx-js/mdx parser)
$ bun scripts/validate-mdx.ts
✓ 300 MDX page(s) parsed cleanly
Repo-wide {#…} heading-ID scan (was the CI blocker)
$ grep -rn '^#\{1,6\}.*{#' docs/ | wc -l
0
CI checks (this HEAD)
OSV-Scanner                       pass
Socket Security: Project Report   pass
Socket Security: PR Alerts        pass
build                             pass  57s
docs                              pass  1m29s   <- previously the failing blocker
quality                           pass  1m3s
test (default)                    pass  1m8s
test (hook-log-file, 1)           pass  1m11s
test (log-debug, debug)           pass  1m10s
test-e2e                          pass  53s

💡 Non-blocking (pipeline, not this PR)

The earlier suggestion still stands for translate-docs.yml: add a post-translation structural gate (frontmatter-present-iff-source-has-it, inline/fenced code-span count ≥ source, no {#…} unless source has it) so a degraded model output isn't cached as "done" and shipped silently. Both regressions here — and the {#id} hallucination — would have been caught automatically. Tracking that separately; it does not block this PR.


🏆 Verdict

APPROVED — Every previously-requested change is verified fixed, the MDX parse blocker is resolved (300/300, docs CI green), version/CHANGELOG are consistent, and the new delta introduced no regressions. Clearing the prior CHANGES_REQUESTED. Ready to merge.


Automated re-review · 2026-07-11 · scope: commits 18ca38c + 34f1125 since prior review · independent structural validation against English sources

@hermes-exosphere hermes-exosphere left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Re-review: all previously-requested changes verified fixed (tr frontmatter, he --cli …|hermes span, de placeholder) and the CI docs-job MDX blocker (ja {#id} hallucinations) is resolved — validate:mdx 300/300, repo-wide {#} scan 0, frontmatter parity clean, version-consistent 0.0.13-beta.2, all 10 CI checks green. No new regressions. ✅ Clearing CHANGES_REQUESTED.

@NiveditJain NiveditJain merged commit 6941fd3 into main Jul 11, 2026
10 checks passed
NiveditJain added a commit that referenced this pull request Jul 11, 2026
…n mode (#488)

* [failproofai-487] Skip require-*-before-stop gates in Claude Code plan mode

The five require-*-before-stop workflow gates fired on every Stop event
without checking the session's permission mode. In Claude Code plan mode
(permission_mode: "plan") the agent makes no commits/pushes/PRs by design,
so the gates demanded actions plan mode forbids — e.g. "git push" with
nothing to push — blocking the agent from finishing its turn.

permission_mode is already resolved onto ctx.session.permissionMode
(resolve-permission-mode.ts -> handler.ts) but was only consumed for
activity logging and the dashboard badge. Add an isPlanMode(ctx) guard as
the first statement of each of the five policies (commit/push/pr/
no-conflicts/ci-green) so they skip in plan mode and stay fully active in
default sessions; custom Stop policies are untouched.

Adds a plan-mode regression test to each policy suite asserting allow +
that no git/gh subprocess runs (guard short-circuits before any exec).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Gn9p2tji5JjqAWAVg23ds

* [failproofai-487] Correct changelog PR reference to #488

The PR landed as #488 (the predicted #487 was taken in between).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Gn9p2tji5JjqAWAVg23ds

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants