codex-plugin-doctor 1.14.0 → 1.15.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
@@ -358,9 +358,9 @@ jobs:
358
358
  runs-on: ubuntu-latest
359
359
  steps:
360
360
  - uses: actions/checkout@v5
361
- - uses: Esquetta/CodexPluginDoctor@v1.14.0
361
+ - uses: Esquetta/CodexPluginDoctor@v1.15.0
362
362
  with:
363
- version: "1.14.0"
363
+ version: "1.15.0"
364
364
  path: .
365
365
  runtime: "true"
366
366
  policy: codex-publish
@@ -71,6 +71,10 @@ export interface DoctorReviewBundleVerificationReport {
71
71
  status: "pass" | "fail";
72
72
  message: string;
73
73
  }>;
74
+ failedChecks: Array<{
75
+ id: string;
76
+ message: string;
77
+ }>;
74
78
  attestation: DoctorAttestationVerificationReport | null;
75
79
  releaseEvidence: DoctorReleaseEvidenceVerificationReport | null;
76
80
  }
@@ -697,7 +697,12 @@ export async function verifyDoctorReviewBundle(bundleDirectory, options) {
697
697
  message: "The bundled release evidence could not be verified."
698
698
  });
699
699
  }
700
- const failedChecks = checks.filter((check) => check.status === "fail");
700
+ const failedChecks = checks
701
+ .filter((check) => check.status === "fail")
702
+ .map((check) => ({
703
+ id: check.id,
704
+ message: check.message
705
+ }));
701
706
  const fileChecks = checks.filter((check) => check.id.startsWith("review_bundle.file."));
702
707
  const manifestStatus = checks.find((check) => check.id === "review_bundle.manifest.valid")?.status ?? "fail";
703
708
  return {
@@ -717,6 +722,7 @@ export async function verifyDoctorReviewBundle(bundleDirectory, options) {
717
722
  releaseEvidence: releaseEvidence?.status ?? "fail"
718
723
  },
719
724
  checks,
725
+ failedChecks,
720
726
  attestation,
721
727
  releaseEvidence
722
728
  };
@@ -737,10 +743,21 @@ export function renderDoctorReviewBundleVerification(report) {
737
743
  `Runtime policy: ${report.summary.runtimePolicy.toUpperCase()}`,
738
744
  `Attestation: ${report.summary.attestation.toUpperCase()}`,
739
745
  `Release evidence: ${report.summary.releaseEvidence.toUpperCase()}`,
746
+ `Failed checks: ${report.failedChecks.length}`,
740
747
  "",
741
- "Checks",
742
- "------"
748
+ "Failed Checks",
749
+ "-------------"
743
750
  ];
751
+ if (report.failedChecks.length === 0) {
752
+ lines.push("None.");
753
+ }
754
+ else {
755
+ for (const check of report.failedChecks) {
756
+ lines.push(`FAIL ${check.id}`);
757
+ lines.push(` ${check.message}`);
758
+ }
759
+ }
760
+ lines.push("", "Checks", "------");
744
761
  for (const check of report.checks) {
745
762
  lines.push(`${check.status === "pass" ? "PASS" : "FAIL"} ${check.id}`);
746
763
  lines.push(` ${check.message}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-plugin-doctor",
3
- "version": "1.14.0",
3
+ "version": "1.15.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",