patchdrill 0.1.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.
Files changed (169) hide show
  1. package/.patchdrill.yml +33 -0
  2. package/CHANGELOG.md +150 -0
  3. package/CONTRIBUTING.md +59 -0
  4. package/LICENSE +21 -0
  5. package/README.md +601 -0
  6. package/SECURITY.md +28 -0
  7. package/action.yml +338 -0
  8. package/dist/baseline.d.ts +9 -0
  9. package/dist/baseline.js +38 -0
  10. package/dist/baseline.js.map +1 -0
  11. package/dist/cli.d.ts +19 -0
  12. package/dist/cli.js +662 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/codeowners.d.ts +14 -0
  15. package/dist/codeowners.js +104 -0
  16. package/dist/codeowners.js.map +1 -0
  17. package/dist/command-plan.d.ts +3 -0
  18. package/dist/command-plan.js +26 -0
  19. package/dist/command-plan.js.map +1 -0
  20. package/dist/demo.d.ts +5 -0
  21. package/dist/demo.js +525 -0
  22. package/dist/demo.js.map +1 -0
  23. package/dist/dependency.d.ts +4 -0
  24. package/dist/dependency.js +1424 -0
  25. package/dist/dependency.js.map +1 -0
  26. package/dist/doctor.d.ts +26 -0
  27. package/dist/doctor.js +183 -0
  28. package/dist/doctor.js.map +1 -0
  29. package/dist/evidence.d.ts +64 -0
  30. package/dist/evidence.js +352 -0
  31. package/dist/evidence.js.map +1 -0
  32. package/dist/git.d.ts +16 -0
  33. package/dist/git.js +349 -0
  34. package/dist/git.js.map +1 -0
  35. package/dist/i18n-catalog.d.ts +8 -0
  36. package/dist/i18n-catalog.js +446 -0
  37. package/dist/i18n-catalog.js.map +1 -0
  38. package/dist/i18n.d.ts +20 -0
  39. package/dist/i18n.js +67 -0
  40. package/dist/i18n.js.map +1 -0
  41. package/dist/init.d.ts +13 -0
  42. package/dist/init.js +312 -0
  43. package/dist/init.js.map +1 -0
  44. package/dist/markdown-links.d.ts +18 -0
  45. package/dist/markdown-links.js +180 -0
  46. package/dist/markdown-links.js.map +1 -0
  47. package/dist/package-scripts.d.ts +3 -0
  48. package/dist/package-scripts.js +55 -0
  49. package/dist/package-scripts.js.map +1 -0
  50. package/dist/planner.d.ts +8 -0
  51. package/dist/planner.js +2351 -0
  52. package/dist/planner.js.map +1 -0
  53. package/dist/policy.d.ts +12 -0
  54. package/dist/policy.js +255 -0
  55. package/dist/policy.js.map +1 -0
  56. package/dist/project.d.ts +2 -0
  57. package/dist/project.js +1085 -0
  58. package/dist/project.js.map +1 -0
  59. package/dist/release-readiness.d.ts +25 -0
  60. package/dist/release-readiness.js +426 -0
  61. package/dist/release-readiness.js.map +1 -0
  62. package/dist/report-annotations.d.ts +3 -0
  63. package/dist/report-annotations.js +28 -0
  64. package/dist/report-annotations.js.map +1 -0
  65. package/dist/report-contract.d.ts +2 -0
  66. package/dist/report-contract.js +82 -0
  67. package/dist/report-contract.js.map +1 -0
  68. package/dist/report-html.d.ts +7 -0
  69. package/dist/report-html.js +706 -0
  70. package/dist/report-html.js.map +1 -0
  71. package/dist/report-sarif.d.ts +2 -0
  72. package/dist/report-sarif.js +90 -0
  73. package/dist/report-sarif.js.map +1 -0
  74. package/dist/report.d.ts +14 -0
  75. package/dist/report.js +310 -0
  76. package/dist/report.js.map +1 -0
  77. package/dist/risk.d.ts +19 -0
  78. package/dist/risk.js +1226 -0
  79. package/dist/risk.js.map +1 -0
  80. package/dist/runner.d.ts +8 -0
  81. package/dist/runner.js +113 -0
  82. package/dist/runner.js.map +1 -0
  83. package/dist/scan.d.ts +2 -0
  84. package/dist/scan.js +195 -0
  85. package/dist/scan.js.map +1 -0
  86. package/dist/schema.d.ts +12 -0
  87. package/dist/schema.js +30 -0
  88. package/dist/schema.js.map +1 -0
  89. package/dist/stack-coverage.d.ts +8 -0
  90. package/dist/stack-coverage.js +94 -0
  91. package/dist/stack-coverage.js.map +1 -0
  92. package/dist/types.d.ts +206 -0
  93. package/dist/types.js +2 -0
  94. package/dist/types.js.map +1 -0
  95. package/dist/verification.d.ts +11 -0
  96. package/dist/verification.js +108 -0
  97. package/dist/verification.js.map +1 -0
  98. package/docs/ANNOTATIONS.md +34 -0
  99. package/docs/ARCHITECTURE.md +79 -0
  100. package/docs/BASELINES.md +32 -0
  101. package/docs/CASE_STUDIES.md +106 -0
  102. package/docs/CODEOWNERS.md +23 -0
  103. package/docs/DASHBOARD.md +87 -0
  104. package/docs/EVIDENCE.md +55 -0
  105. package/docs/LAUNCH_PLAYBOOK.md +103 -0
  106. package/docs/MONOREPOS.md +74 -0
  107. package/docs/POLICY.md +98 -0
  108. package/docs/PROOF_PACKS.md +57 -0
  109. package/docs/PR_COMMENTS.md +56 -0
  110. package/docs/RELEASE.md +35 -0
  111. package/docs/ROADMAP.md +152 -0
  112. package/docs/RULE_CATALOG.md +90 -0
  113. package/docs/SARIF.md +74 -0
  114. package/docs/SCHEMAS.md +49 -0
  115. package/docs/SECURITY_POSTURE.md +32 -0
  116. package/docs/STACK_COVERAGE.md +20 -0
  117. package/docs/assets/patchdrill-demo.svg +21 -0
  118. package/docs/media/patchdrill-dashboard.png +0 -0
  119. package/docs/media/patchdrill-demo.gif +0 -0
  120. package/examples/case-studies/README.md +20 -0
  121. package/examples/demo/README.md +21 -0
  122. package/examples/demo/patchdrill-demo-summary.md +35 -0
  123. package/examples/demo/patchdrill-demo.html +623 -0
  124. package/examples/demo/patchdrill-demo.json +355 -0
  125. package/examples/demo/patchdrill-demo.md +120 -0
  126. package/examples/demo/patchdrill-demo.sarif +195 -0
  127. package/examples/report.md +128 -0
  128. package/examples/risky-agent-pr/README.md +15 -0
  129. package/examples/risky-agent-pr/patchdrill-demo-summary.md +41 -0
  130. package/examples/risky-agent-pr/patchdrill-demo.html +681 -0
  131. package/examples/risky-agent-pr/patchdrill-demo.json +483 -0
  132. package/examples/risky-agent-pr/patchdrill-demo.md +140 -0
  133. package/examples/risky-agent-pr/patchdrill-demo.sarif +398 -0
  134. package/fixtures/stacks/README.md +4 -0
  135. package/fixtures/stacks/android-gradle/fixture.json +33 -0
  136. package/fixtures/stacks/aspnet-core-service/fixture.json +36 -0
  137. package/fixtures/stacks/bazel-workspace/fixture.json +30 -0
  138. package/fixtures/stacks/buck2-workspace/fixture.json +30 -0
  139. package/fixtures/stacks/cargo-workspace/fixture.json +48 -0
  140. package/fixtures/stacks/django-app/fixture.json +25 -0
  141. package/fixtures/stacks/docker-compose/fixture.json +17 -0
  142. package/fixtures/stacks/dockerfile-service/fixture.json +17 -0
  143. package/fixtures/stacks/dotnet-service/fixture.json +36 -0
  144. package/fixtures/stacks/dotnet-solution-filter/fixture.json +62 -0
  145. package/fixtures/stacks/fastapi-app/fixture.json +29 -0
  146. package/fixtures/stacks/go-workspace/fixture.json +48 -0
  147. package/fixtures/stacks/java-gradle/fixture.json +29 -0
  148. package/fixtures/stacks/java-maven/fixture.json +32 -0
  149. package/fixtures/stacks/kubernetes-helm/fixture.json +25 -0
  150. package/fixtures/stacks/kubernetes-kustomize/fixture.json +21 -0
  151. package/fixtures/stacks/nested-go-workspace/fixture.json +51 -0
  152. package/fixtures/stacks/nextjs-app/fixture.json +34 -0
  153. package/fixtures/stacks/node-turbo-workspace/fixture.json +39 -0
  154. package/fixtures/stacks/pants-python/fixture.json +33 -0
  155. package/fixtures/stacks/php-composer/fixture.json +31 -0
  156. package/fixtures/stacks/python-service/fixture.json +21 -0
  157. package/fixtures/stacks/rails-app/fixture.json +25 -0
  158. package/fixtures/stacks/spring-boot-gradle/fixture.json +29 -0
  159. package/fixtures/stacks/spring-boot-maven/fixture.json +43 -0
  160. package/fixtures/stacks/swift-package/fixture.json +21 -0
  161. package/fixtures/stacks/terraform-module/fixture.json +17 -0
  162. package/fixtures/stacks/uv-python-service/fixture.json +47 -0
  163. package/fixtures/stacks/xcode-app/fixture.json +72 -0
  164. package/package.json +80 -0
  165. package/schemas/patchdrill-doctor.schema.json +171 -0
  166. package/schemas/patchdrill-evidence.schema.json +239 -0
  167. package/schemas/patchdrill-policy.schema.json +170 -0
  168. package/schemas/patchdrill-release-check.schema.json +78 -0
  169. package/schemas/patchdrill-report.schema.json +647 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export type ReleaseCheckStatus = "pass" | "warn" | "fail";
2
+ export interface ReleaseCheck {
3
+ status: ReleaseCheckStatus;
4
+ title: string;
5
+ detail: string;
6
+ remediation?: string;
7
+ }
8
+ export interface ReleaseReadinessSummary {
9
+ status: "pass" | "fail";
10
+ ok: boolean;
11
+ passCount: number;
12
+ warnCount: number;
13
+ failCount: number;
14
+ }
15
+ export interface ReleaseReadinessReport {
16
+ schemaVersion: "1";
17
+ ok: boolean;
18
+ summary: ReleaseReadinessSummary;
19
+ checks: ReleaseCheck[];
20
+ }
21
+ export declare function checkReleaseReadiness(root: string): ReleaseCheck[];
22
+ export declare function releaseReadinessHasFailures(checks: ReleaseCheck[]): boolean;
23
+ export declare function createReleaseReadinessReport(checks: ReleaseCheck[]): ReleaseReadinessReport;
24
+ export declare function renderReleaseReadiness(checks: ReleaseCheck[]): string;
25
+ export declare function summarizeReleaseReadiness(checks: ReleaseCheck[]): ReleaseReadinessSummary;
@@ -0,0 +1,426 @@
1
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { createDemoReport } from "./demo.js";
4
+ import { checkMarkdownLinks } from "./markdown-links.js";
5
+ import { renderHtml, renderMarkdown, renderSarif, renderSummaryMarkdown } from "./report.js";
6
+ import { schemaFileName, schemaNames } from "./schema.js";
7
+ import { renderStackCoverageMarkdown } from "./stack-coverage.js";
8
+ export function checkReleaseReadiness(root) {
9
+ const pkg = readPackageJson(root);
10
+ const releaseWorkflow = readOptional(root, ".github/workflows/release.yml");
11
+ const action = readOptional(root, "action.yml");
12
+ const readme = readOptional(root, "README.md");
13
+ const ci = readOptional(root, ".github/workflows/ci.yml");
14
+ const pullRequestTemplate = readOptional(root, ".github/pull_request_template.md");
15
+ const markdownLinks = checkMarkdownLinks(root);
16
+ const packageFiles = readStringArray(pkg?.files);
17
+ const keywords = readStringArray(pkg?.keywords);
18
+ return [
19
+ checkBoolean(Boolean(pkg), "package.json", "package.json is present.", "Add package.json before publishing."),
20
+ checkBoolean(pkg?.name === "patchdrill", "Package name", `name is ${pkg?.name ?? "missing"}.`, "Set package.json name to patchdrill."),
21
+ checkBoolean(isSemverLike(pkg?.version), "Package version", `version is ${pkg?.version ?? "missing"}.`, "Set a valid semver package version."),
22
+ checkBoolean(pkg?.bin?.patchdrill === "./dist/cli.js", "CLI bin", `bin.patchdrill is ${pkg?.bin?.patchdrill ?? "missing"}.`, "Point bin.patchdrill at ./dist/cli.js."),
23
+ checkBoolean(pkg?.scripts?.prepare === "npm run build", "Prepare script", "prepare builds the TypeScript CLI for git installs.", "Set scripts.prepare to npm run build."),
24
+ checkBoolean(pkg?.scripts?.prepack === "npm run check", "Prepack script", "prepack runs the full local verification suite.", "Set scripts.prepack to npm run check."),
25
+ checkPackageFiles(packageFiles),
26
+ checkKeywords(keywords),
27
+ ...checkSchemaContracts(root, readme, readOptional(root, "docs/SCHEMAS.md")),
28
+ checkBoolean(existsSync(join(root, "package-lock.json")), "npm lockfile", "package-lock.json is present for reproducible action installs.", "Commit package-lock.json."),
29
+ checkBoolean(Boolean(action?.includes("runs:\n using: composite")), "Composite action", "action.yml declares a composite action.", "Keep action.yml as a composite action."),
30
+ checkBoolean(Boolean(action?.includes("node \"$GITHUB_ACTION_PATH/dist/cli.js\"")), "Action local build path", "action.yml runs the checked-out dist/cli.js.", "Run the built CLI from the checked-out action source."),
31
+ checkBoolean(Boolean(releaseWorkflow?.includes("id-token: write")), "Release OIDC", "release.yml grants id-token: write for trusted publishing.", "Enable id-token: write in the release workflow."),
32
+ checkBoolean(Boolean(releaseWorkflow?.includes("npm publish --access public --provenance")), "npm provenance publish", "release.yml publishes with npm provenance.", "Publish with npm publish --access public --provenance."),
33
+ checkBoolean(Boolean(ci?.includes("npm pack --dry-run")), "Package dry-run CI", "CI verifies package contents with npm pack --dry-run.", "Add npm pack --dry-run to CI."),
34
+ checkBoolean(Boolean(ci?.includes("release-check --format json")), "CI readiness dogfood", "CI runs patchdrill release-check --format json.", "Run patchdrill release-check --format json in CI after npm run check."),
35
+ checkBoolean(Boolean(releaseWorkflow?.includes("release-check --format json")), "Release readiness dogfood", "release.yml runs patchdrill release-check --format json before publishing.", "Run patchdrill release-check --format json in the release workflow before npm publish."),
36
+ checkBoolean(Boolean(containsInOrder(ci, ["Run PatchDrill", "--evidence patchdrill-evidence.json", "--json patchdrill-report.json", "verify --evidence patchdrill-evidence.json", "actions/upload-artifact"])), "CI evidence verification", "CI writes JSON-backed PatchDrill evidence and verifies the generated manifest before uploading Proof Pack artifacts.", "Run patchdrill scan with --evidence and --json, then verify --evidence patchdrill-evidence.json before artifact upload."),
37
+ checkBoolean(Boolean(containsInOrder(action, ['--evidence "$PATCHDRILL_EVIDENCE"', '--json "$PATCHDRILL_JSON"', "Refresh evidence manifest", 'verify --evidence "$PATCHDRILL_EVIDENCE"', "Export report paths"])), "Action evidence verification", "The composite action writes JSON-backed evidence, refreshes the manifest, and verifies it before exporting artifact paths.", "Pass --json with --evidence and verify the evidence manifest inside action.yml before reporting output paths."),
38
+ checkBoolean(Boolean(containsInOrder(releaseWorkflow, ["release-evidence.json", "--json .patchdrill/release.json", "--run", "verify --evidence .patchdrill/release-evidence.json", "npm pack --dry-run"])), "Release Proof Pack smoke", "release.yml runs required verification, generates a JSON-backed release Proof Pack smoke bundle, and verifies it before npm packaging.", "Generate a release Proof Pack with scan --run --evidence --json and verify it before npm pack --dry-run."),
39
+ checkPullRequestTemplate(pullRequestTemplate),
40
+ checkReadmeProofPackQuickstart(readme),
41
+ checkBoolean(Boolean(readme?.includes("npx --yes github:seungdori/patchdrill")), "GitHub install path", "README documents the pre-npm GitHub install path.", "Document npx --yes github:seungdori/patchdrill."),
42
+ checkBoolean(Boolean(readme?.includes("npx patchdrill")), "npm install path", "README documents the future npm install path.", "Document npx patchdrill."),
43
+ checkBoolean(existsSync(join(root, "docs", "CASE_STUDIES.md")), "Case studies", "docs/CASE_STUDIES.md is present for launch evaluation.", "Add docs/CASE_STUDIES.md with representative Proof Pack cases."),
44
+ checkStackCoverageMatrix(root),
45
+ checkStackFixtureCorpus(root),
46
+ checkBoolean(existsSync(join(root, "examples", "case-studies", "README.md")), "Case study examples", "examples/case-studies/README.md points readers to concrete demo artifacts.", "Add examples/case-studies/README.md with demo artifact links."),
47
+ checkDemoArtifacts(root),
48
+ checkBoolean(markdownLinks.summary.failureCount === 0, "Markdown local links", `Checked ${markdownLinks.summary.linkCount} local link${markdownLinks.summary.linkCount === 1 ? "" : "s"} across ${markdownLinks.summary.fileCount} Markdown file${markdownLinks.summary.fileCount === 1 ? "" : "s"}.`, markdownLinks.failures[0]
49
+ ? `Fix ${markdownLinks.failures[0].file}:${markdownLinks.failures[0].line} -> ${markdownLinks.failures[0].target}: ${markdownLinks.failures[0].reason}`
50
+ : "Fix broken local Markdown links before release."),
51
+ checkBoolean(existsSync(join(root, "CHANGELOG.md")), "Changelog", "CHANGELOG.md is present.", "Add CHANGELOG.md before release."),
52
+ checkBoolean(existsSync(join(root, "LICENSE")), "License", "LICENSE is present.", "Add a license before release."),
53
+ checkBoolean(existsSync(join(root, "SECURITY.md")), "Security policy", "SECURITY.md is present.", "Add SECURITY.md before release."),
54
+ {
55
+ status: "warn",
56
+ title: "npm Trusted Publisher",
57
+ detail: "Trusted Publisher configuration must be verified in npm account settings; PatchDrill cannot confirm that locally.",
58
+ remediation: "Configure npm trusted publishing for .github/workflows/release.yml before creating the first release."
59
+ }
60
+ ];
61
+ }
62
+ export function releaseReadinessHasFailures(checks) {
63
+ return summarizeReleaseReadiness(checks).failCount > 0;
64
+ }
65
+ export function createReleaseReadinessReport(checks) {
66
+ const summary = summarizeReleaseReadiness(checks);
67
+ return {
68
+ schemaVersion: "1",
69
+ ok: summary.ok,
70
+ summary,
71
+ checks
72
+ };
73
+ }
74
+ export function renderReleaseReadiness(checks) {
75
+ const summary = summarizeReleaseReadiness(checks);
76
+ const lines = [
77
+ `PatchDrill Release Check - ${summary.status.toUpperCase()} (${summary.failCount} blocker${summary.failCount === 1 ? "" : "s"}, ${summary.warnCount} warning${summary.warnCount === 1 ? "" : "s"}, ${summary.passCount} pass)`,
78
+ ""
79
+ ];
80
+ for (const check of checks) {
81
+ lines.push(`- [${check.status.toUpperCase()}] ${check.title}: ${check.detail}`);
82
+ if (check.remediation)
83
+ lines.push(` Next: ${check.remediation}`);
84
+ }
85
+ return `${lines.join("\n")}\n`;
86
+ }
87
+ export function summarizeReleaseReadiness(checks) {
88
+ const failCount = checks.filter((check) => check.status === "fail").length;
89
+ return {
90
+ status: failCount > 0 ? "fail" : "pass",
91
+ ok: failCount === 0,
92
+ passCount: checks.filter((check) => check.status === "pass").length,
93
+ warnCount: checks.filter((check) => check.status === "warn").length,
94
+ failCount
95
+ };
96
+ }
97
+ function checkBoolean(ok, title, detail, remediation) {
98
+ return {
99
+ status: ok ? "pass" : "fail",
100
+ title,
101
+ detail,
102
+ ...(ok ? {} : { remediation })
103
+ };
104
+ }
105
+ function readPackageJson(root) {
106
+ try {
107
+ return JSON.parse(readFileSync(join(root, "package.json"), "utf8"));
108
+ }
109
+ catch {
110
+ return undefined;
111
+ }
112
+ }
113
+ function checkPackageFiles(files) {
114
+ const required = [
115
+ "dist",
116
+ "schemas",
117
+ "docs",
118
+ "examples",
119
+ "fixtures",
120
+ ".patchdrill.yml",
121
+ "README.md",
122
+ "LICENSE",
123
+ "action.yml",
124
+ "CHANGELOG.md",
125
+ "CONTRIBUTING.md",
126
+ "SECURITY.md"
127
+ ];
128
+ const missing = required.filter((entry) => !files.includes(entry));
129
+ return {
130
+ status: missing.length === 0 ? "pass" : "fail",
131
+ title: "Package file allowlist",
132
+ detail: missing.length === 0
133
+ ? "package.json files includes the CLI build, schemas, docs, examples, fixtures, action metadata, and release docs."
134
+ : `package.json files is missing ${missing.join(", ")}.`,
135
+ ...(missing.length > 0 ? { remediation: `Add ${missing.join(", ")} to package.json files before release.` } : {})
136
+ };
137
+ }
138
+ function checkKeywords(keywords) {
139
+ const required = ["ai-coding", "code-review", "sarif", "github-actions", "supply-chain"];
140
+ const missing = required.filter((keyword) => !keywords.includes(keyword));
141
+ return {
142
+ status: missing.length === 0 ? "pass" : "fail",
143
+ title: "Package discoverability keywords",
144
+ detail: missing.length === 0
145
+ ? `package.json keywords include launch-critical discovery terms: ${required.join(", ")}.`
146
+ : `package.json keywords is missing ${missing.join(", ")}.`,
147
+ ...(missing.length > 0 ? { remediation: `Add ${missing.join(", ")} to package.json keywords.` } : {})
148
+ };
149
+ }
150
+ function checkSchemaContracts(root, readme, schemaDocs) {
151
+ return schemaNames.map((name) => checkSchemaContract(root, name, readme, schemaDocs));
152
+ }
153
+ function checkPullRequestTemplate(contents) {
154
+ const required = [
155
+ "npm run check",
156
+ "node dist/cli.js scan",
157
+ "--evidence patchdrill-evidence.json",
158
+ "--summary-markdown patchdrill-summary.md",
159
+ "--markdown patchdrill-report.md",
160
+ "--json patchdrill-report.json",
161
+ "--sarif patchdrill.sarif",
162
+ "--html patchdrill-dashboard.html",
163
+ "--run",
164
+ "node dist/cli.js verify --evidence patchdrill-evidence.json",
165
+ "npm pack --dry-run",
166
+ "Report/schema compatibility impact"
167
+ ];
168
+ const missing = required.filter((needle) => !contents?.includes(needle));
169
+ if (!containsInOrder(contents, ["node dist/cli.js scan", "--run", "node dist/cli.js verify --evidence patchdrill-evidence.json", "npm pack --dry-run"])) {
170
+ missing.push("verification command order");
171
+ }
172
+ return {
173
+ status: missing.length === 0 ? "pass" : "fail",
174
+ title: "Pull request Proof Pack template",
175
+ detail: missing.length === 0
176
+ ? "pull_request_template.md asks contributors to run check, generate and verify a full evidence-backed Proof Pack, package dry-run, and document compatibility risk notes."
177
+ : `pull_request_template.md is missing ${missing.join(", ")}.`,
178
+ ...(missing.length > 0
179
+ ? {
180
+ remediation: "Update .github/pull_request_template.md with scan --run --evidence, summary, Markdown, JSON, SARIF, HTML, verify, package dry-run, and compatibility notes."
181
+ }
182
+ : {})
183
+ };
184
+ }
185
+ function checkReadmeProofPackQuickstart(contents) {
186
+ const required = [
187
+ "npx --yes github:seungdori/patchdrill scan --base origin/main --run",
188
+ "--evidence patchdrill-evidence.json",
189
+ "--summary-markdown patchdrill-summary.md",
190
+ "--markdown patchdrill-report.md",
191
+ "--json patchdrill-report.json",
192
+ "--sarif patchdrill.sarif",
193
+ "--html patchdrill-dashboard.html",
194
+ "npx --yes github:seungdori/patchdrill verify --evidence patchdrill-evidence.json",
195
+ "patchdrill scan --base origin/main --run",
196
+ "patchdrill verify --evidence patchdrill-evidence.json"
197
+ ];
198
+ const missing = required.filter((needle) => !contents?.includes(needle));
199
+ return {
200
+ status: missing.length === 0 ? "pass" : "fail",
201
+ title: "README Proof Pack quickstart",
202
+ detail: missing.length === 0
203
+ ? "README first-run and Quickstart commands generate and verify evidence-backed Proof Packs."
204
+ : `README Proof Pack quickstart is missing ${missing.join(", ")}.`,
205
+ ...(missing.length > 0
206
+ ? {
207
+ remediation: "Update README first-run and Quickstart examples with scan --run --evidence, summary, Markdown, JSON, SARIF, HTML, and verify commands."
208
+ }
209
+ : {})
210
+ };
211
+ }
212
+ function checkStackCoverageMatrix(root) {
213
+ const path = join(root, "docs", "STACK_COVERAGE.md");
214
+ if (!existsSync(path)) {
215
+ return {
216
+ status: "fail",
217
+ title: "Stack coverage matrix",
218
+ detail: "docs/STACK_COVERAGE.md is missing.",
219
+ remediation: "Add docs/STACK_COVERAGE.md with fixture-backed coverage claims."
220
+ };
221
+ }
222
+ const actual = readFileSync(path, "utf8");
223
+ const expected = renderStackCoverageMarkdown();
224
+ return {
225
+ status: actual === expected ? "pass" : "fail",
226
+ title: "Stack coverage matrix",
227
+ detail: actual === expected
228
+ ? "docs/STACK_COVERAGE.md is synchronized with the fixture-backed stack coverage source."
229
+ : "docs/STACK_COVERAGE.md is not synchronized with src/stack-coverage.ts.",
230
+ ...(actual === expected ? {} : { remediation: "Regenerate docs/STACK_COVERAGE.md from renderStackCoverageMarkdown()." })
231
+ };
232
+ }
233
+ function checkStackFixtureCorpus(root) {
234
+ const fixturesRoot = join(root, "fixtures", "stacks");
235
+ if (!existsSync(fixturesRoot)) {
236
+ return {
237
+ status: "fail",
238
+ title: "Stack fixture corpus",
239
+ detail: "fixtures/stacks is missing.",
240
+ remediation: "Add fixture-backed repository shapes under fixtures/stacks before release."
241
+ };
242
+ }
243
+ let fixturePaths;
244
+ try {
245
+ fixturePaths = readdirSync(fixturesRoot, { withFileTypes: true })
246
+ .filter((entry) => entry.isDirectory())
247
+ .map((entry) => join(fixturesRoot, entry.name, "fixture.json"))
248
+ .filter((path) => existsSync(path))
249
+ .sort((a, b) => a.localeCompare(b));
250
+ }
251
+ catch {
252
+ fixturePaths = [];
253
+ }
254
+ const failures = [];
255
+ for (const path of fixturePaths) {
256
+ const relativePath = path.slice(root.length).replace(/^\//, "");
257
+ try {
258
+ validateStackFixture(JSON.parse(readFileSync(path, "utf8")), relativePath, failures);
259
+ }
260
+ catch {
261
+ failures.push(`${relativePath} valid JSON`);
262
+ }
263
+ }
264
+ if (fixturePaths.length < 20)
265
+ failures.push("at least 20 stack fixtures");
266
+ return {
267
+ status: failures.length === 0 ? "pass" : "fail",
268
+ title: "Stack fixture corpus",
269
+ detail: failures.length === 0
270
+ ? `Validated ${fixturePaths.length} stack fixture contract${fixturePaths.length === 1 ? "" : "s"} under fixtures/stacks.`
271
+ : `Stack fixture corpus is missing ${failures.join(", ")}.`,
272
+ ...(failures.length > 0 ? { remediation: `Fix ${failures.join(", ")} before release.` } : {})
273
+ };
274
+ }
275
+ function checkDemoArtifacts(root) {
276
+ const failures = [];
277
+ const scenarios = [
278
+ { scenario: "review-ready", directory: "examples/demo" },
279
+ { scenario: "risky-agent-pr", directory: "examples/risky-agent-pr" }
280
+ ];
281
+ for (const { scenario, directory } of scenarios) {
282
+ const report = createDemoReport(scenario);
283
+ const expected = new Map([
284
+ [`${directory}/patchdrill-demo-summary.md`, renderSummaryMarkdown(report)],
285
+ [`${directory}/patchdrill-demo.md`, renderMarkdown(report)],
286
+ [`${directory}/patchdrill-demo.json`, `${JSON.stringify(report, null, 2)}\n`],
287
+ [`${directory}/patchdrill-demo.sarif`, renderSarif(report)],
288
+ [`${directory}/patchdrill-demo.html`, renderHtml(report)]
289
+ ]);
290
+ for (const [relativePath, expectedContents] of expected) {
291
+ const absolutePath = join(root, relativePath);
292
+ if (!existsSync(absolutePath)) {
293
+ failures.push(`${relativePath} missing`);
294
+ continue;
295
+ }
296
+ if (readFileSync(absolutePath, "utf8") !== expectedContents) {
297
+ failures.push(`${relativePath} stale`);
298
+ }
299
+ }
300
+ }
301
+ const examples = failures.slice(0, 4);
302
+ return {
303
+ status: failures.length === 0 ? "pass" : "fail",
304
+ title: "Demo artifacts",
305
+ detail: failures.length === 0
306
+ ? "Committed demo Proof Pack artifacts are synchronized with the current renderers."
307
+ : `Committed demo artifacts are out of date: ${examples.join(", ")}${failures.length > examples.length ? ", ..." : ""}.`,
308
+ ...(failures.length > 0 ? { remediation: "Regenerate examples/demo and examples/risky-agent-pr with patchdrill demo before release." } : {})
309
+ };
310
+ }
311
+ function validateStackFixture(value, path, failures) {
312
+ if (!isRecord(value)) {
313
+ failures.push(`${path} object`);
314
+ return;
315
+ }
316
+ if (typeof value.name !== "string" || !value.name.trim())
317
+ failures.push(`${path} name`);
318
+ if (!isStringArray(value.expectedEcosystems))
319
+ failures.push(`${path} expectedEcosystems`);
320
+ if (!isStringArray(value.expectedCommands))
321
+ failures.push(`${path} expectedCommands`);
322
+ if (!isFixtureFileArray(value.baseFiles))
323
+ failures.push(`${path} baseFiles`);
324
+ if (!isFixtureFileArray(value.changeFiles))
325
+ failures.push(`${path} changeFiles`);
326
+ }
327
+ function isFixtureFileArray(value) {
328
+ return (Array.isArray(value) &&
329
+ value.every((file) => isRecord(file) &&
330
+ typeof file.path === "string" &&
331
+ file.path.trim().length > 0 &&
332
+ Array.isArray(file.lines) &&
333
+ file.lines.every((line) => typeof line === "string")));
334
+ }
335
+ function checkSchemaContract(root, name, readme, schemaDocs) {
336
+ const fileName = schemaFileName(name);
337
+ const relativePath = `schemas/${fileName}`;
338
+ const schemaPath = join(root, relativePath);
339
+ const missing = [];
340
+ const parsed = readSchemaJson(schemaPath, missing, relativePath);
341
+ if (parsed) {
342
+ if (parsed.$schema !== "https://json-schema.org/draft/2020-12/schema")
343
+ missing.push(`${relativePath} draft 2020-12 marker`);
344
+ if (parsed.$id !== `https://patchdrill.dev/schemas/${fileName}`)
345
+ missing.push(`${relativePath} $id`);
346
+ if (typeof parsed.title !== "string" || !parsed.title.trim())
347
+ missing.push(`${relativePath} title`);
348
+ if (parsed.type !== "object")
349
+ missing.push(`${relativePath} object root type`);
350
+ if (name === "report") {
351
+ if (!isStringArray(parsed.required) || !parsed.required.includes("verification"))
352
+ missing.push(`${relativePath} required verification`);
353
+ if (!isRecord(parsed.properties) || !isRecord(parsed.properties.verification))
354
+ missing.push(`${relativePath} verification property`);
355
+ }
356
+ }
357
+ if (!readme?.includes(`patchdrill schema ${name}`))
358
+ missing.push(`README schema command ${name}`);
359
+ if (!schemaDocs?.includes(`patchdrill schema ${name}`))
360
+ missing.push(`docs/SCHEMAS.md command ${name}`);
361
+ if (!schemaDocs?.includes(fileName))
362
+ missing.push(`docs/SCHEMAS.md reference ${fileName}`);
363
+ if (name === "report" && !schemaDocs?.includes("required computed `verification`"))
364
+ missing.push("docs/SCHEMAS.md required verification");
365
+ return {
366
+ status: missing.length === 0 ? "pass" : "fail",
367
+ title: schemaCheckTitle(name),
368
+ detail: missing.length === 0
369
+ ? `${fileName} is valid draft 2020-12 JSON, exposed by patchdrill schema ${name}, and documented for automation consumers.`
370
+ : `${name} schema contract is missing ${missing.join(", ")}.`,
371
+ ...(missing.length > 0 ? { remediation: `Add ${missing.join(", ")} before release.` } : {})
372
+ };
373
+ }
374
+ function readSchemaJson(path, failures, label) {
375
+ if (!existsSync(path)) {
376
+ failures.push(`${label} file`);
377
+ return undefined;
378
+ }
379
+ try {
380
+ return JSON.parse(readFileSync(path, "utf8"));
381
+ }
382
+ catch {
383
+ failures.push(`${label} valid JSON`);
384
+ return undefined;
385
+ }
386
+ }
387
+ function schemaCheckTitle(name) {
388
+ if (name === "doctor")
389
+ return "Doctor output schema";
390
+ if (name === "release-check")
391
+ return "Release-check output schema";
392
+ return `${name[0]?.toUpperCase() ?? ""}${name.slice(1)} schema`;
393
+ }
394
+ function containsInOrder(contents, needles) {
395
+ if (!contents)
396
+ return false;
397
+ let cursor = 0;
398
+ for (const needle of needles) {
399
+ const index = contents.indexOf(needle, cursor);
400
+ if (index < 0)
401
+ return false;
402
+ cursor = index + needle.length;
403
+ }
404
+ return true;
405
+ }
406
+ function readStringArray(value) {
407
+ return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
408
+ }
409
+ function isStringArray(value) {
410
+ return Array.isArray(value) && value.every((item) => typeof item === "string");
411
+ }
412
+ function isRecord(value) {
413
+ return typeof value === "object" && value !== null && !Array.isArray(value);
414
+ }
415
+ function readOptional(root, path) {
416
+ try {
417
+ return readFileSync(join(root, path), "utf8");
418
+ }
419
+ catch {
420
+ return undefined;
421
+ }
422
+ }
423
+ function isSemverLike(value) {
424
+ return Boolean(value && /^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/.test(value));
425
+ }
426
+ //# sourceMappingURL=release-readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"release-readiness.js","sourceRoot":"","sources":["../src/release-readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Locale } from "./i18n.js";
2
+ import type { PatchReport } from "./types.js";
3
+ export declare function renderGitHubAnnotations(report: PatchReport, locale?: Locale): string;
@@ -0,0 +1,28 @@
1
+ import { t } from "./i18n.js";
2
+ export function renderGitHubAnnotations(report, locale = "en") {
3
+ const lines = report.findings.map((finding) => {
4
+ const command = githubAnnotationCommand(finding.severity);
5
+ const properties = [
6
+ finding.file ? `file=${escapeGitHubCommandProperty(finding.file)}` : undefined,
7
+ finding.line !== undefined ? `line=${escapeGitHubCommandProperty(String(finding.line))}` : undefined,
8
+ `title=${escapeGitHubCommandProperty(t(locale, finding.title))}`
9
+ ].filter((property) => property !== undefined);
10
+ const detail = `${t(locale, finding.detail)}${finding.remediation ? ` ${t(locale, "Remediation")}: ${t(locale, finding.remediation)}` : ""}`;
11
+ return `::${command} ${properties.join(",")}::${escapeGitHubCommandData(detail)}`;
12
+ });
13
+ return lines.length > 0 ? `${lines.join("\n")}\n` : "";
14
+ }
15
+ function githubAnnotationCommand(severity) {
16
+ if (severity === "critical" || severity === "high")
17
+ return "error";
18
+ if (severity === "medium")
19
+ return "warning";
20
+ return "notice";
21
+ }
22
+ function escapeGitHubCommandData(value) {
23
+ return value.replaceAll("%", "%25").replaceAll("\r", "%0D").replaceAll("\n", "%0A");
24
+ }
25
+ function escapeGitHubCommandProperty(value) {
26
+ return escapeGitHubCommandData(value).replaceAll(":", "%3A").replaceAll(",", "%2C");
27
+ }
28
+ //# sourceMappingURL=report-annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-annotations.js","sourceRoot":"","sources":["../src/report-annotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAe,MAAM,WAAW,CAAC;AAG3C,MAAM,UAAU,uBAAuB,CAAC,MAAmB,EAAE,SAAiB,IAAI;IAChF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YAC9E,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,2BAA2B,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACpG,SAAS,2BAA2B,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;SACjE,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAsB,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC7I,OAAO,KAAK,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB;IACjD,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC;IACnE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAa;IAChD,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { PatchReport } from "./types.js";
2
+ export declare function reportContractFailures(report: Partial<PatchReport>): string[];