codex-plugin-doctor 1.42.0 → 1.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -402,9 +402,9 @@ jobs:
402
402
  runs-on: ubuntu-latest
403
403
  steps:
404
404
  - uses: actions/checkout@v5
405
- - uses: Esquetta/CodexPluginDoctor@v1.42.0
405
+ - uses: Esquetta/CodexPluginDoctor@v1.43.0
406
406
  with:
407
- version: "1.42.0"
407
+ version: "1.43.0"
408
408
  path: .
409
409
  runtime: "true"
410
410
  policy: codex-publish
@@ -0,0 +1,2 @@
1
+ import type { CheckResult } from "../domain/types.js";
2
+ export declare function buildRecommendedCommands(result: CheckResult): string[];
@@ -0,0 +1,17 @@
1
+ function quoteCliArg(value) {
2
+ return JSON.stringify(value);
3
+ }
4
+ export function buildRecommendedCommands(result) {
5
+ if (result.findings.length === 0) {
6
+ return [];
7
+ }
8
+ const target = quoteCliArg(result.targetPath);
9
+ const commands = [
10
+ `codex-plugin-doctor doctor recommend ${target}`,
11
+ `codex-plugin-doctor fix ${target} --dry-run`
12
+ ];
13
+ if (result.findings.some((finding) => finding.fingerprint)) {
14
+ commands.push(`codex-plugin-doctor suppress add ${target}`);
15
+ }
16
+ return commands;
17
+ }
@@ -1,5 +1,6 @@
1
1
  import { formatFindingEvidenceLine } from "./format-finding-evidence.js";
2
2
  import { formatFindingFingerprintLine } from "./finding-fingerprint.js";
3
+ import { buildRecommendedCommands } from "./recommended-commands.js";
3
4
  export function buildMarkdownReport(result, options) {
4
5
  const failCount = result.findings.filter((finding) => finding.severity === "fail").length;
5
6
  const warnCount = result.findings.filter((finding) => finding.severity === "warn").length;
@@ -77,5 +78,12 @@ export function buildMarkdownReport(result, options) {
77
78
  lines.push("");
78
79
  }
79
80
  }
81
+ const recommendedCommands = buildRecommendedCommands(result);
82
+ if (recommendedCommands.length > 0) {
83
+ lines.push("", "## Recommended Commands", "");
84
+ for (const command of recommendedCommands) {
85
+ lines.push(`- \`${command}\``);
86
+ }
87
+ }
80
88
  return lines.join("\n");
81
89
  }
@@ -1,6 +1,7 @@
1
1
  import { findRuleDefinition } from "../rules/rule-catalog.js";
2
2
  import { formatFindingEvidenceLine } from "./format-finding-evidence.js";
3
3
  import { formatFindingFingerprintLine } from "./finding-fingerprint.js";
4
+ import { buildRecommendedCommands } from "./recommended-commands.js";
4
5
  function getCounts(result) {
5
6
  const failCount = result.findings.filter((finding) => finding.severity === "fail").length;
6
7
  const warnCount = result.findings.filter((finding) => finding.severity === "warn").length;
@@ -118,5 +119,12 @@ export function renderTextReport(result, options = {}) {
118
119
  lines.push(`prompts/list: ${result.runtimeScorecard.promptsList}`);
119
120
  lines.push(`prompts/get: ${result.runtimeScorecard.promptGet}`);
120
121
  }
122
+ const recommendedCommands = buildRecommendedCommands(result);
123
+ if (recommendedCommands.length > 0) {
124
+ lines.push("", "Recommended Commands", "--------------------");
125
+ for (const command of recommendedCommands) {
126
+ lines.push(`- ${command}`);
127
+ }
128
+ }
121
129
  return lines.join("\n");
122
130
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-plugin-doctor",
3
- "version": "1.42.0",
3
+ "version": "1.43.0",
4
4
  "description": "CLI-first validator for Codex plugins, skills, and MCP package surfaces with runtime MCP protocol validation.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",