Skip to content

Conversation

@youyongsong
Copy link
Collaborator

@youyongsong youyongsong commented Sep 15, 2025

  • Add comprehensive AC CLI documentation files to docs/en/ui/cli_tools/ac/
    • getting-started.md: installation and first steps guide
    • configuration.md: shell completion and kubeconfig setup
    • ac-and-kubectl-usage.md: comparison and usage patterns
    • managing-cli-profiles.md: profile and session management
    • extending-with-plugins.md: plugin development guide
    • developer-command-reference.md: developer command reference
    • administrator-command-reference.md: admin command reference
  • Add update-ac-manual script to automate documentation updates
  • Update package.json with update-ac-manual script
  • Update .gitignore to exclude local/* directory
  • Update UI tools index and add violet.mdx placeholder

Summary by CodeRabbit

  • Documentation

    • Added comprehensive AC CLI docs: Getting Started, Configuration, Managing Profiles, Developer & Administrator command references, Extending with Plugins, ac/kubectl usage, and a violet CLI overview. Updated CLI tools overview to use a unified overview component.
  • Chores

    • Added an automated docs sync capability and a package script to update AC manual content.
  • Style

    • Updated ignore rules to exclude local development directories.

@coderabbitai
Copy link

coderabbitai bot commented Sep 15, 2025

Walkthrough

Adds new ACP CLI documentation under docs/en/ui/cli_tools, a violet CLI page, a script to sync AC manual content (scripts/update-ac-manual.js) with a package.json script entry, and updates .gitignore to ignore local/*.

Changes

Cohort / File(s) Summary of changes
Gitignore
\.gitignore
Added ignore pattern local/*.
ACP CLI docs (ac)
docs/en/ui/cli_tools/ac/*
docs/en/ui/cli_tools/ac/ac-and-kubectl-usage.md, docs/en/ui/cli_tools/ac/administrator-command-reference.md, docs/en/ui/cli_tools/ac/configuration.md, docs/en/ui/cli_tools/ac/developer-command-reference.md, docs/en/ui/cli_tools/ac/extending-with-plugins.md, docs/en/ui/cli_tools/ac/getting-started.md, docs/en/ui/cli_tools/ac/managing-cli-profiles.md, docs/en/ui/cli_tools/ac/index.mdx
New documentation files added covering AC CLI overview, getting started, configuration, admin & developer command references, plugins, kubectl compatibility, profiles, and an AC index page.
Docs overview scaffolding
docs/en/ui/cli_tools/index.mdx
Replaced previous descriptive content with an <Overview overviewHeaders={[]} /> component.
Violet CLI doc
docs/en/ui/cli_tools/violet.mdx
New page introducing the violet CLI and linking to upload-package docs.
Docs sync script
scripts/update-ac-manual.js
New Node.js utility to clone a remote AC repo (branch arg defaulting to main), validate presence of manual source, strip numeric prefixes from Markdown filenames, clean target docs (preserve index), copy/sync files, log progress, and remove temp clone. Exports main() and runs when invoked.
Build/maintenance scripts
package.json
Added update-ac-manual script: node scripts/update-ac-manual.js main; adjusted trailing comma in scripts block.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Dev as Developer
  participant NPM as npm/yarn
  participant Script as update-ac-manual.js
  participant Git as git CLI
  participant FS as Filesystem

  Dev->>NPM: run "npm run update-ac-manual"
  NPM->>Script: node scripts/update-ac-manual.js main
  Script->>Script: Preflight checks (git present)
  Script->>Git: git clone <repo> --branch main --depth=1
  alt clone succeeds
    Script->>Script: validate manual source path
    alt manual dir exists
      Script->>FS: ensure target docs dir exists
      Script->>FS: remove non-index files in target
      loop for each source file
        Script->>Script: derive target name (strip numeric prefix for .md/.mdx)
        Script->>FS: copy file/dir to target
      end
      Script->>FS: remove temp clone
      Script-->>Dev: log success
    else manual dir missing
      Script-->>Dev: error & cleanup
    end
  else clone fails
    Script-->>Dev: auth/timeout/other error & cleanup
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested reviewers

  • chinameok

Poem

I thump my paw on docs so bright,
New pages bloom beneath moonlight.
A script hops out to fetch and bring,
Cloning, cleaning — a tidy spring.
Violets, ignores, and ac in view,
I twitch my nose and bid adieu. 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title clearly and concisely describes the primary change by indicating the addition of AC CLI documentation and the related update script, which directly reflects the main objectives and content of the pull request without unnecessary detail or ambiguity.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/add-ac-docs

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.

❤️ Share

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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (21)
docs/en/ui/cli_tools/ac/index.mdx (1)

7-7: Populate Overview or add a short intro.

Empty overviewHeaders render a blank page. Add a one‑sentence intro or pass headers to Overview.

.gitignore (1)

3-3: Anchor ignore to repo root to avoid overmatching nested “local/”.

local/* will ignore any folder named “local” at any depth. Prefer root‑anchored.

Apply this diff:

-local/*
+/local/
docs/en/ui/cli_tools/index.mdx (1)

7-7: Add a brief section intro above Overview.

A one‑liner improves discoverability (e.g., “Browse the available command‑line tools for ACP.”).

docs/en/ui/cli_tools/ac/ac-and-kubectl-usage.md (1)

11-11: Soften equivalence claim with kubectl.

“The ac binary offers the same capabilities as kubectl” is a strong claim and easy to go stale. Prefer “kubectl‑compatible for core commands and adds ACP features”.

Apply this diff:

-The ac binary offers the same capabilities as the kubectl binary, but extends to natively support additional ACP platform features, including:
+The ac binary is kubectl‑compatible for core Kubernetes commands and adds native ACP platform features, including:
docs/en/ui/cli_tools/ac/extending-with-plugins.md (2)

17-17: Use a heading instead of bold for “Procedure”.

Fix MD036 (emphasis as heading).

Apply this diff:

-**Procedure**
+### Procedure

92-99: Specify a language for the fenced “Example output” block.

Fix MD040 by marking as text.

Apply this diff:

-```
+```text
 The following compatible plugins are available:

 /usr/local/bin/<plugin_file>

</blockquote></details>
<details>
<summary>docs/en/ui/cli_tools/ac/developer-command-reference.md (2)</summary><blockquote>

`5-7`: **Unify naming: “AC CLI” → “ACP CLI”.**

Consistent with the rest of the docs and product name.  

Apply this diff:

```diff
-# AC CLI Developer Command Reference
+# ACP CLI Developer Command Reference

1383-1398: Avoid password in CLI examples; prefer interactive or env vars.

Passing --password leaks secrets via shell history. Show a safer example and add a caution.

Apply this diff:

-# Login with all parameters via flags
-ac login https://example.com --name prod --username=myuser --password=mypassword
+# Login with parameters (avoid --password; use interactive prompt or env vars)
+ac login https://example.com --name prod --username=myuser
+
+> Note: Avoid --password to prevent leaking secrets via shell history. Use interactive prompts or AC_LOGIN_* environment variables.
docs/en/ui/cli_tools/ac/getting-started.md (2)

14-15: Fix merged bullet; split into two items.

Minor wording/formatting issue.

Apply this diff:

-- Working directly with project source code Scripting ACP platform operations and automating workflows 
+- Working directly with project source code
+- Scripting ACP platform operations and automating workflows

291-295: Tighten logout bullet phrasing.

Small grammar fix.

Apply this diff:

-- Revoke currently used tokens in the ACP
+- Revokes any active tokens in ACP
scripts/update-ac-manual.js (5)

17-23: Consider adding more specific error information

The error message could be more helpful by including the actual command output or error details to aid debugging.

 async function checkGitAvailable() {
   try {
     execSync('git --version', { stdio: 'ignore' });
   } catch (error) {
-    throw new Error('Git is not available. Please install git first.');
+    throw new Error(`Git is not available. Please install git first. ${error.message ? `(${error.message})` : ''}`);
   }
 }

44-48: Security concern: Consider timeout increase for large repositories

The 60-second timeout might be insufficient for large repositories or slow network connections. Consider making this configurable or increasing the default.

 try {
   execSync(`git clone --depth=1 --branch=${branch} ${AC_REPO_URL} ${TEMP_DIR}`, {
     stdio: 'inherit',
-    timeout: 60000 // 60 second timeout
+    timeout: 120000 // 120 second timeout
   });

50-56: Improve error detection logic

The error detection relies on string matching which could be fragile. The error.message property might not contain the expected strings depending on the execution context.

   } catch (error) {
-    if (error.message.includes('Authentication failed')) {
+    if (error.message?.includes('Authentication failed') || error.message?.includes('could not read Username')) {
       throw new Error(`Authentication failed for ${AC_REPO_URL}. Please ensure you have access to the repository and your git credentials are configured properly.`);
-    } else if (error.message.includes('timeout')) {
+    } else if (error.code === 'ETIMEDOUT' || error.message?.includes('timeout')) {
       throw new Error(`Git clone operation timed out. Please check your network connection and try again.`);
     } else {
       throw new Error(`Failed to clone repository: ${error.message}`);
     }
   }

119-124: Potential data loss: Consider backing up existing files

The script removes existing files without creating backups. Consider adding a backup mechanism or at least a dry-run option to preview changes.

   // Remove existing files in target directory (except index.mdx)
   try {
     const existingFiles = await fs.readdir(AC_DOCS_TARGET);
     for (const file of existingFiles) {
       if (file !== 'index.mdx') {
+        // Consider creating a backup directory
+        // const backupPath = join(AC_DOCS_TARGET, '.backup', new Date().toISOString());
+        // await fs.mkdir(backupPath, { recursive: true });
+        // await fs.rename(join(AC_DOCS_TARGET, file), join(backupPath, file));
         await fs.rm(join(AC_DOCS_TARGET, file), { recursive: true, force: true });
         console.log(`Removed existing file: ${file}`);
       }
     }

195-197: Improve cross-platform compatibility check

The current approach for detecting direct script execution may not work correctly on Windows systems where process.argv[1] might have different path separators.

 // Run the script if called directly
-if (import.meta.url === `file://${process.argv[1]}`) {
+if (import.meta.url === pathToFileURL(process.argv[1]).href) {
   main();
 }

Additionally, import pathToFileURL at the top:

-import { fileURLToPath } from 'url';
+import { fileURLToPath, pathToFileURL } from 'url';
package.json (1)

14-14: Consider parameterizing the branch argument

The script hardcodes the main branch. Consider making this configurable via npm script arguments or environment variables for better flexibility.

-    "update-ac-manual": "node scripts/update-ac-manual.js main"
+    "update-ac-manual": "node scripts/update-ac-manual.js"

Then users can specify the branch: npm run update-ac-manual -- feature-branch

docs/en/ui/cli_tools/ac/administrator-command-reference.md (1)

20-29: Add language identifiers to fenced code blocks

All command-line code blocks should specify bash or sh as the language identifier for proper syntax highlighting.

For example, update line 20:

-```
+```bash
 # Drain a node for maintenance
 ac adm drain NODE_NAME

Apply similar changes to lines 41, 52, 63, 74, 88, and 112.

Also applies to: 41-44, 52-55, 63-66, 74-80, 88-104, 112-115

docs/en/ui/cli_tools/ac/managing-cli-profiles.md (2)

59-64: Add language identifier to output code blocks

The output examples should use the text or plaintext language identifier to differentiate them from executable commands.

Line 59:

-```
+```text
 CURRENT   SESSION    PLATFORM                              USER                  CLUSTERS

Line 110:

-```
+```text
 You are currently in namespace "my-app-dev".

Also applies to: 110-116


190-190: Security: Remove or mask JWT token in example

The example contains what appears to be a partial JWT token. Even though it's truncated, it's best practice to use obviously fake examples like <TOKEN> or xxx... to avoid any confusion.

-    token: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
+    token: <JWT_TOKEN_HERE>
docs/en/ui/cli_tools/ac/configuration.md (2)

24-24: Consider consistent command prompt style

The documentation uses $ prompts inconsistently. Either show them with expected output or remove them entirely for consistency across the documentation.

Either remove the $ prompts:

-   $ ac completion bash > ac_bash_completion
+   ac completion bash > ac_bash_completion

Or show the expected output where relevant.

Also applies to: 29-29, 73-73, 87-87, 92-92, 97-97


76-76: Format bare URL properly

The bare URL in the example should be wrapped in angle brackets or formatted as inline code.

-   - `<platform-url>`: The base URL of the ACP platform (e.g., https://acp.prod.example.com)
+   - `<platform-url>`: The base URL of the ACP platform (e.g., `https://acp.prod.example.com`)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 443dee5 and 4c9b572.

📒 Files selected for processing (13)
  • .gitignore (1 hunks)
  • docs/en/ui/cli_tools/ac/ac-and-kubectl-usage.md (1 hunks)
  • docs/en/ui/cli_tools/ac/administrator-command-reference.md (1 hunks)
  • docs/en/ui/cli_tools/ac/configuration.md (1 hunks)
  • docs/en/ui/cli_tools/ac/developer-command-reference.md (1 hunks)
  • docs/en/ui/cli_tools/ac/extending-with-plugins.md (1 hunks)
  • docs/en/ui/cli_tools/ac/getting-started.md (1 hunks)
  • docs/en/ui/cli_tools/ac/index.mdx (1 hunks)
  • docs/en/ui/cli_tools/ac/managing-cli-profiles.md (1 hunks)
  • docs/en/ui/cli_tools/index.mdx (1 hunks)
  • docs/en/ui/cli_tools/violet.mdx (1 hunks)
  • package.json (1 hunks)
  • scripts/update-ac-manual.js (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
docs/en/ui/cli_tools/ac/configuration.md

24-24: Dollar signs used before commands without showing output

(MD014, commands-show-output)


29-29: Dollar signs used before commands without showing output

(MD014, commands-show-output)


73-73: Dollar signs used before commands without showing output

(MD014, commands-show-output)


76-76: Bare URL used

(MD034, no-bare-urls)


87-87: Dollar signs used before commands without showing output

(MD014, commands-show-output)


92-92: Dollar signs used before commands without showing output

(MD014, commands-show-output)


97-97: Dollar signs used before commands without showing output

(MD014, commands-show-output)

docs/en/ui/cli_tools/ac/extending-with-plugins.md

17-17: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


92-92: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/administrator-command-reference.md

20-20: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


41-41: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


52-52: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


63-63: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


74-74: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


88-88: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


112-112: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/getting-started.md

59-59: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


110-110: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/managing-cli-profiles.md

59-59: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


110-110: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/developer-command-reference.md

17-17: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


92-92: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🪛 Gitleaks (8.27.2)
docs/en/ui/cli_tools/ac/managing-cli-profiles.md

[high] 190-190: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🔇 Additional comments (4)
docs/en/ui/cli_tools/ac/ac-and-kubectl-usage.md (1)

23-23: Confirm “automatic routing” behavior.

Please verify that auto‑routing of global resources to the global cluster is implemented across all listed commands and note any exceptions.

docs/en/ui/cli_tools/ac/extending-with-plugins.md (1)

21-23: Confirm plugin name discovery for kubectl‑ prefixed binaries.

Docs state files starting with kubectl- are recognized by ac. Please confirm ac scans both ac- and kubectl- prefixes (and document search PATH/dirs if applicable).

docs/en/ui/cli_tools/violet.mdx (1)

9-9: Target doc exists — no action required.
docs/en/extend/upload_package.mdx found.

docs/en/ui/cli_tools/ac/getting-started.md (1)

1-295: Check for unlabeled code fences (MD040). Search docs/en/ui/cli_tools/ac/getting-started.md for lines that are exactly three backticks and add language identifiers (e.g., three backticks followed by the language name like bash or yaml) to any unlabeled fences. Suggested command: grep -nE '^[[:space:]]```[[:space:]]$' docs/en/ui/cli_tools/ac/getting-started.md

Comment on lines +18 to +24
```
# Update pod 'foo' with the annotation 'description' and the value 'my frontend'
# If the same annotation is set multiple times, only the last value will be applied
ac annotate pods foo description='my frontend'

# Update a pod identified by type and name in "pod.json"
ac annotate -f pod.json description='my frontend'
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Add languages to bare fenced code blocks (MD040).

A few blocks still use ``` without a language. Please mark as bash/yaml/json/text as appropriate.

To find and fix remaining fences without a language:

Also applies to: 45-55, 73-76


🏁 Script executed:

#!/bin/bash
# List lines starting a fence without language
rg -nP '^\s*```(?!\w)' docs/en/ui/cli_tools/ac/developer-command-reference.md

Length of output: 82


🏁 Script executed:

#!/bin/bash
set -euo pipefail
file="docs/en/ui/cli_tools/ac/developer-command-reference.md"
if [ ! -f "$file" ]; then
  echo "FILE_NOT_FOUND: $file"
  exit 0
fi
echo "Searching for fenced code blocks without language in: $file"
if command -v rg >/dev/null 2>&1; then
  rg -n -U -C2 '^[[:space:]]*```[[:space:]]*$' "$file" || echo "NO_MATCHES"
else
  grep -n -E -C2 '^[[:space:]]*```[[:space:]]*$' "$file" || echo "NO_MATCHES"
fi

Length of output: 28109


Add language identifiers to all fenced code blocks in docs/en/ui/cli_tools/ac/developer-command-reference.md (MD040)

Multiple fenced blocks in this file are missing language tags — add "bash" for CLI examples and "yaml"/"json" where appropriate. Affected examples include (non-exhaustive): 18–38, 46–64, 72–75, 83–102, 110–116, 124–133, 141–147, 155–169, 181–209, 217–220, 228–234, 242–248, 256–259, 267–279, 287–334. Run rg -n -U -C2 '^[[:space:]]```[[:space:]]$' docs/en/ui/cli_tools/ac/developer-command-reference.md to list all occurrences and fix the opening fences.

🤖 Prompt for AI Agents
In docs/en/ui/cli_tools/ac/developer-command-reference.md around lines 18 to
334, several fenced code blocks are missing language identifiers; update each
opening fence from ``` to include the appropriate language (e.g., ```bash for
CLI examples, ```json for JSON snippets, ```yaml for YAML) for the ranges called
out (18–38, 46–64, 72–75, 83–102, 110–116, 124–133, 141–147, 155–169, 181–209,
217–220, 228–234, 242–248, 256–259, 267–279, 287–334); run the provided rg
command to list every bare fence, then edit each opening ``` to the correct
```bash/```json/```yaml tag so Markdownlint MD040 is satisfied and examples
render with proper syntax highlighting.

# Wait for the pod "busybox1" to be deleted, with a timeout of 60s, after having issued the "delete" command
ac delete pod/busybox1
ac wait --for=delete pod/busybox1 --timeout=60s
``` No newline at end of file
Copy link
Member

Choose a reason for hiding this comment

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

这个文件有点儿太长了,估计翻译可能会有问题,能拆一下吗?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

这个目前没办法拆,这个文档里面没有下一级分组了,是按照字母顺序生成的 reference 文档,如果翻译超上下文了我先手动生成下翻译吧

- Add comprehensive AC CLI documentation files to docs/en/ui/cli_tools/ac/
  - getting-started.md: installation and first steps guide
  - configuration.md: shell completion and kubeconfig setup
  - ac-and-kubectl-usage.md: comparison and usage patterns
  - managing-cli-profiles.md: profile and session management
  - extending-with-plugins.md: plugin development guide
  - developer-command-reference.md: developer command reference
  - administrator-command-reference.md: admin command reference
- Add update-ac-manual script to automate documentation updates
- Update package.json with update-ac-manual script
- Update .gitignore to exclude local/* directory
- Update UI tools index and add violet.mdx placeholder
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
docs/en/ui/cli_tools/ac/developer-command-reference.md (1)

18-1968: Add language identifiers to fenced code blocks (as previously noted).

Multiple fenced code blocks throughout this reference are missing language identifiers. A previous review already flagged this (MD040 violation). While the file length prevents easy splitting for translation purposes, adding language tags improves rendering and syntax highlighting.

To bulk-fix all bare fences, run:

#!/bin/bash
# Add bash language identifier to all bare fenced code blocks
sed -i 's/^```$/```bash/g' docs/en/ui/cli_tools/ac/developer-command-reference.md

Note: Review the changes to ensure all blocks are actually bash examples (some might be text/output blocks).

🧹 Nitpick comments (5)
docs/en/ui/cli_tools/ac/getting-started.md (1)

233-238: Consider removing dollar signs from standalone commands.

Lines 233 and 238 show commands preceded by $ without displaying output, which markdownlint flags as MD014. While this is a common convention, the linter recommends either showing the output or removing the $ prefix for standalone commands.

Example:

-   $ ac describe pod test-pod
+   ac describe pod test-pod
-   $ ac logs test-pod
+   ac logs test-pod
docs/en/ui/cli_tools/ac/configuration.md (1)

20-112: Add language identifiers to fenced code blocks.

Several code blocks are missing language identifiers (MD040). Add bash to shell command blocks and text or appropriate identifiers to output blocks.

Examples:

  • Line 24: Change ```bash to include language (already has it, but verify)
  • Line 49: Should be ```bash for shell script
  • Line 73: Should be ```bash for command examples
docs/en/ui/cli_tools/ac/extending-with-plugins.md (2)

17-17: Use heading instead of bold for "Procedure".

Line 17 uses **Procedure** which markdownlint flags as MD036 (emphasis instead of heading). For better document structure and accessibility, use a proper heading.

Apply this diff:

-**Procedure**
+#### Procedure

92-96: Add language identifier to output block.

The example output block is missing a language identifier (MD040). Add text or plaintext for output examples.

Apply this diff:

-   ```
+   ```text
    The following compatible plugins are available:
docs/en/ui/cli_tools/ac/administrator-command-reference.md (1)

20-112: Add bash language identifier to code blocks.

Multiple fenced code blocks are missing language identifiers (MD040). All examples appear to be shell commands, so add bash to improve syntax highlighting.

Apply this pattern to affected blocks at lines 20, 41, 52, 63, 74, 88, 112:

-```
+```bash
# Command examples...
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4c9b572 and e217a03.

📒 Files selected for processing (13)
  • .gitignore (1 hunks)
  • docs/en/ui/cli_tools/ac/ac-and-kubectl-usage.md (1 hunks)
  • docs/en/ui/cli_tools/ac/administrator-command-reference.md (1 hunks)
  • docs/en/ui/cli_tools/ac/configuration.md (1 hunks)
  • docs/en/ui/cli_tools/ac/developer-command-reference.md (1 hunks)
  • docs/en/ui/cli_tools/ac/extending-with-plugins.md (1 hunks)
  • docs/en/ui/cli_tools/ac/getting-started.md (1 hunks)
  • docs/en/ui/cli_tools/ac/index.mdx (1 hunks)
  • docs/en/ui/cli_tools/ac/managing-cli-profiles.md (1 hunks)
  • docs/en/ui/cli_tools/index.mdx (1 hunks)
  • docs/en/ui/cli_tools/violet.mdx (1 hunks)
  • package.json (1 hunks)
  • scripts/update-ac-manual.js (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • docs/en/ui/cli_tools/ac/ac-and-kubectl-usage.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • docs/en/ui/cli_tools/index.mdx
  • docs/en/ui/cli_tools/ac/index.mdx
  • package.json
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
docs/en/ui/cli_tools/ac/administrator-command-reference.md

20-20: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


41-41: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


52-52: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


63-63: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


74-74: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


88-88: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


112-112: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/configuration.md

20-20: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


41-41: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


52-52: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


63-63: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


74-74: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


88-88: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


112-112: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/developer-command-reference.md

18-18: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


46-46: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


72-72: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


83-83: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


110-110: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


124-124: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


141-141: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


155-155: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


181-181: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


217-217: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


228-228: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


242-242: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


256-256: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


267-267: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


287-287: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


346-346: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


357-357: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


368-368: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


379-379: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


390-390: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


401-401: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


415-415: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


426-426: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


437-437: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


448-448: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


468-468: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


491-491: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


502-502: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


544-544: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


561-561: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


575-575: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


592-592: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


603-603: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


620-620: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


637-637: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


670-670: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


687-687: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


713-713: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


724-724: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


747-747: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


761-761: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


784-784: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


828-828: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


845-845: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


856-856: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


872-872: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


889-889: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


903-903: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


923-923: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


941-941: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


955-955: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


978-978: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


993-993: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1007-1007: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1018-1018: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1029-1029: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1040-1040: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1051-1051: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1077-1077: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1115-1115: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1142-1142: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1156-1156: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1179-1179: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1202-1202: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1233-1233: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1256-1256: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1285-1285: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1335-1335: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1352-1352: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1379-1379: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1406-1406: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1423-1423: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1485-1485: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1502-1502: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1528-1528: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1542-1542: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1556-1556: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1585-1585: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1615-1615: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1635-1635: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1655-1655: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1669-1669: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1682-1682: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1702-1702: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1713-1713: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1724-1724: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1741-1741: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1776-1776: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1803-1803: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1845-1845: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1865-1865: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1885-1885: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1897-1897: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1911-1911: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1928-1928: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


1945-1945: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/extending-with-plugins.md

17-17: Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


92-92: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

docs/en/ui/cli_tools/ac/getting-started.md

233-233: Dollar signs used before commands without showing output

(MD014, commands-show-output)


238-238: Dollar signs used before commands without showing output

(MD014, commands-show-output)

docs/en/ui/cli_tools/ac/managing-cli-profiles.md

59-59: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


110-110: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (1)
scripts/update-ac-manual.js (1)

1-199: LGTM! Script demonstrates solid practices.

The script is well-structured with proper error handling, cleanup logic, and separation of concerns. Key strengths:

  • Proper use of execSync with timeout for git operations
  • Comprehensive error handling for authentication, timeout, and generic failures
  • Cleanup on both success and error paths
  • Clear validation of prerequisites and directory existence
  • Named export for programmatic usage alongside direct execution

Comment on lines +59 to +64
```
CURRENT SESSION PLATFORM USER CLUSTERS
* prod https://acp.prod.example.com [email protected] 3
staging https://staging.acp.example.com [email protected] 2
dev https://dev.acp.example.com [email protected] 1
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Add fenced code languages to satisfy markdownlint.

The plain output blocks under “Example output” lack a language hint, tripping MD040 in markdownlint (see the pipeline hints). Please tag them (e.g., text) so the lint step passes. Based on static analysis hints.

-```
+```text
 CURRENT   SESSION    PLATFORM                              USER                  CLUSTERS
 …
-```
+```text
 You are currently in namespace "my-app-dev".
 …

Also applies to: 110-117

🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

59-59: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In docs/en/ui/cli_tools/ac/managing-cli-profiles.md around lines 59-64 and also
lines 110-117, the fenced code blocks under "Example output" are missing a
language hint which triggers markdownlint MD040; update each triple-backtick
fence to include a language tag (e.g., text) so they read ```text at the start
of the block (leave the closing ``` unchanged), applying this change to both the
block at 59-64 and the block at 110-117.

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.

3 participants