renma 0.1.1 → 0.3.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 +99 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +81 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/ci-report.d.ts +26 -0
- package/dist/commands/ci-report.d.ts.map +1 -0
- package/dist/commands/ci-report.js +162 -0
- package/dist/commands/ci-report.js.map +1 -0
- package/dist/commands/diff.d.ts +112 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +411 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/readiness.js +41 -1
- package/dist/commands/readiness.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +119 -0
- package/dist/config.js.map +1 -1
- package/dist/repeated-context.d.ts +6 -0
- package/dist/repeated-context.d.ts.map +1 -0
- package/dist/repeated-context.js +412 -0
- package/dist/repeated-context.js.map +1 -0
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +4 -0
- package/dist/scanner.js.map +1 -1
- package/dist/security-diagnostics.d.ts +7 -0
- package/dist/security-diagnostics.d.ts.map +1 -0
- package/dist/security-diagnostics.js +1263 -0
- package/dist/security-diagnostics.js.map +1 -0
- package/dist/types.d.ts +20 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Renma
|
|
2
2
|
|
|
3
|
-
Renma is a
|
|
3
|
+
Renma is a deterministic governance and health layer for LLM-facing repository knowledge.
|
|
4
4
|
|
|
5
|
-
It helps teams keep the skills, instructions, shared context, examples, tool notes, and ownership metadata that agents rely on discoverable, reviewable, and safe to reuse. Instead of letting critical knowledge get copied into many prompts or buried in one-off Markdown files, Renma treats that knowledge as a software asset: named, owned, versioned, linked,
|
|
5
|
+
It helps teams keep the skills, instructions, shared context, examples, tool notes, and ownership metadata that agents rely on discoverable, reviewable, and safe to reuse. Instead of letting critical knowledge get copied into many prompts or buried in one-off Markdown files, Renma treats that knowledge as a software asset: named, owned, versioned, linked, checked in CI, and reviewed with deterministic safety diagnostics.
|
|
6
|
+
|
|
7
|
+
Renma now supports `scan`, `catalog`, `ownership`, `graph`, `readiness`, repeated-context diagnostics, semantic diff, `ci-report`, and security diagnostics v1.
|
|
6
8
|
|
|
7
9
|
Renma is especially useful when a repository contains agent-facing material such as:
|
|
8
10
|
|
|
@@ -120,6 +122,24 @@ It produces:
|
|
|
120
122
|
|
|
121
123
|
Findings are meant to explain what is wrong, why it matters, where the evidence is, what to preserve while fixing it, and how to verify the repair. Renma does not apply large semantic rewrites itself; it emits structured diagnostics so a human or coding agent can propose a reviewable patch and run Renma again.
|
|
122
124
|
|
|
125
|
+
### Repeated context diagnostics
|
|
126
|
+
|
|
127
|
+
`renma scan` reports deterministic repeated-context candidates across discovered skills, agents, profiles, references, examples, and shared context assets. These findings are evidence for consolidation, not automatic source-of-truth decisions:
|
|
128
|
+
|
|
129
|
+
```text
|
|
130
|
+
LLM proposes. Renma verifies. Human approves.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The MVP rule IDs are:
|
|
134
|
+
|
|
135
|
+
- `MAINT-REPEATED-SECTION` for repeated normalized section hashes.
|
|
136
|
+
- `MAINT-REPEATED-HEADING` for repeated non-generic headings.
|
|
137
|
+
- `MAINT-REPEATED-CODE-BLOCK` for repeated substantial code fences.
|
|
138
|
+
- `MAINT-REPEATED-LINK` for repeated repository context link targets.
|
|
139
|
+
- `MAINT-REPEATED-CONTEXT-PATTERN` for repeated token shingles.
|
|
140
|
+
|
|
141
|
+
Renma normalizes whitespace and only reports cross-file candidates with stable parser evidence. Remediation text asks maintainers to preserve ownership boundaries, procedural detail, and human approval while consolidating owned knowledge.
|
|
142
|
+
|
|
123
143
|
## How Renma differs from adjacent tools
|
|
124
144
|
|
|
125
145
|
Prompt-management and eval tools focus on prompts, traces, and model outputs.
|
|
@@ -143,6 +163,7 @@ npx renma scan .
|
|
|
143
163
|
npx renma catalog . --format json
|
|
144
164
|
npx renma graph . --format mermaid
|
|
145
165
|
npx renma readiness .
|
|
166
|
+
npx renma diff . --from main --to HEAD --format markdown
|
|
146
167
|
```
|
|
147
168
|
|
|
148
169
|
The first command does not require you to design a knowledge architecture up front. It scans the repository, builds a local catalog, and reports obvious health issues such as broken links, unclear ownership, risky instructions, weak structure, and context that may be hard for agents to trust.
|
|
@@ -161,8 +182,14 @@ Then inspect the catalog and graph:
|
|
|
161
182
|
node dist/index.js catalog . --format json
|
|
162
183
|
node dist/index.js graph . --format mermaid
|
|
163
184
|
node dist/index.js readiness .
|
|
185
|
+
node dist/index.js diff . --from main --to HEAD --format markdown
|
|
164
186
|
```
|
|
165
187
|
|
|
188
|
+
Semantic diff compares deterministic catalog, graph, readiness, and finding
|
|
189
|
+
snapshots across Git refs. It does not interpret arbitrary prose semantics,
|
|
190
|
+
assemble prompts, choose context, call an LLM, repair files, or check out or
|
|
191
|
+
mutate the working tree.
|
|
192
|
+
|
|
166
193
|
A practical first pass is:
|
|
167
194
|
|
|
168
195
|
1. Run `scan` to find broken links, weak structure, risky instructions, missing lifecycle metadata, and other repairable issues.
|
|
@@ -181,6 +208,8 @@ renma catalog <path>
|
|
|
181
208
|
renma ownership <path>
|
|
182
209
|
renma graph <path>
|
|
183
210
|
renma readiness <path>
|
|
211
|
+
renma diff <path> --from <ref> --to <ref>
|
|
212
|
+
renma ci-report <path> --from <ref> --to <ref>
|
|
184
213
|
renma inspect <path> <asset-or-file>
|
|
185
214
|
renma suggest-semantic-split <file>
|
|
186
215
|
```
|
|
@@ -195,10 +224,18 @@ renma catalog . --format json
|
|
|
195
224
|
renma ownership . --include-owned
|
|
196
225
|
renma graph . --format mermaid
|
|
197
226
|
renma readiness .
|
|
227
|
+
renma diff . --from main --to HEAD --format markdown
|
|
228
|
+
renma ci-report . --from main --to HEAD --format markdown
|
|
198
229
|
renma inspect . contexts/testing/boundary-value-analysis.md
|
|
199
230
|
```
|
|
200
231
|
|
|
201
|
-
Use JSON output when Renma is part of CI or another tool. Use text output when a person or coding agent needs a concise repair list.
|
|
232
|
+
Use JSON output when Renma is part of CI or another tool. Use markdown output for PR-review artifacts. Use text output when a person or coding agent needs a concise repair list.
|
|
233
|
+
|
|
234
|
+
`ci-report` exit behavior:
|
|
235
|
+
|
|
236
|
+
- PASS/WARN: exit 0
|
|
237
|
+
- FAIL: exit 1
|
|
238
|
+
- command, runtime, or config error: exit 2
|
|
202
239
|
|
|
203
240
|
## What Gets Scanned
|
|
204
241
|
|
|
@@ -272,6 +309,8 @@ Renma can infer some information from paths and headings, but explicit metadata
|
|
|
272
309
|
|
|
273
310
|
## CI Example
|
|
274
311
|
|
|
312
|
+
For PR review artifacts, see [`examples/github-actions/renma-ci-report.yml`](examples/github-actions/renma-ci-report.yml).
|
|
313
|
+
|
|
275
314
|
```yaml
|
|
276
315
|
name: renma
|
|
277
316
|
|
|
@@ -322,6 +361,63 @@ Renma does not:
|
|
|
322
361
|
|
|
323
362
|
This boundary keeps Renma useful as repository infrastructure. Agent tools can consume its reports, but the catalog remains grounded in Git, code review, and deterministic checks.
|
|
324
363
|
|
|
364
|
+
## Security Diagnostics
|
|
365
|
+
|
|
366
|
+
Security diagnostics v2 extends the deterministic v1 command checks with
|
|
367
|
+
LLM-facing policy and data-handling diagnostics. Renma recognizes small policy
|
|
368
|
+
metadata such as `allowed_data`, `network_allowed`, `external_upload_allowed`,
|
|
369
|
+
`secrets_allowed`, and `requires_human_approval`; reports contradictory or
|
|
370
|
+
violated policy; flags sensitive file and secret-material instructions; and
|
|
371
|
+
detects external uploads, bulk sharing, cloud upload, overbroad context
|
|
372
|
+
collection, and no-redaction instructions.
|
|
373
|
+
|
|
374
|
+
Security diagnostics v3 also enforces approved destination allowlists such as
|
|
375
|
+
`approved_network_destinations` for URL and domain-like network instructions.
|
|
376
|
+
|
|
377
|
+
Security diagnostics v4 can also read repository-wide security policy from
|
|
378
|
+
`renma.config.json`:
|
|
379
|
+
|
|
380
|
+
```json
|
|
381
|
+
{
|
|
382
|
+
"security": {
|
|
383
|
+
"approvedDomains": ["github.com", "registry.npmjs.org"],
|
|
384
|
+
"approvedUploadDomains": ["internal-artifacts.example.com"],
|
|
385
|
+
"disallowedCommands": ["gh gist create", "pastebin", "webhook.site", "nc"]
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
Global `approvedDomains` combine with artifact-local
|
|
391
|
+
`approved_network_destinations`. Upload destinations must be approved separately
|
|
392
|
+
with `approvedUploadDomains`.
|
|
393
|
+
|
|
394
|
+
Security profiles can be defined under `security.profiles` and selected by artifacts with `security_profile` or `securityProfile`. Artifact-local explicit denials such as `network_allowed: false` and `external_upload_allowed: false` remain stricter than inherited profile or repository allowances.
|
|
395
|
+
|
|
396
|
+
```json
|
|
397
|
+
{
|
|
398
|
+
"security": {
|
|
399
|
+
"profiles": {
|
|
400
|
+
"appium-disclosed-local": {
|
|
401
|
+
"allowedDataClass": "disclosed",
|
|
402
|
+
"networkAllowed": true,
|
|
403
|
+
"externalUploadAllowed": false,
|
|
404
|
+
"secretsAllowed": false,
|
|
405
|
+
"humanApprovalRequired": true,
|
|
406
|
+
"allowedData": ["sanitized diagnostics"],
|
|
407
|
+
"forbiddenInputs": ["secrets", "credentials"],
|
|
408
|
+
"approvedDomains": ["github.com"],
|
|
409
|
+
"approvedUploadDomains": [],
|
|
410
|
+
"disallowedCommands": ["gh gist create"]
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Renma reports deterministic safety findings for agent-facing operational instructions, such as unpinned remote scripts, unsafe privileged commands, predictable temporary paths, and credential-like command arguments.
|
|
418
|
+
|
|
419
|
+
These findings are guardrails for review. They do not replace secret scanning, SAST, dependency scanning, or human security review.
|
|
420
|
+
|
|
325
421
|
## Development
|
|
326
422
|
|
|
327
423
|
```bash
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAgCA,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyFxE"}
|
package/dist/cli.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { parseArgs } from "node:util";
|
|
2
2
|
import packageJson from "../package.json" with { type: "json" };
|
|
3
3
|
import { runCatalogCommand } from "./commands/catalog.js";
|
|
4
|
+
import { runCiReportCommand, } from "./commands/ci-report.js";
|
|
5
|
+
import { runDiffCommand } from "./commands/diff.js";
|
|
4
6
|
import { runGraphCommand, } from "./commands/graph.js";
|
|
5
7
|
import { runInspectCommand } from "./commands/inspect.js";
|
|
6
8
|
import { runOwnershipCommand, } from "./commands/ownership.js";
|
|
@@ -18,9 +20,11 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
18
20
|
config: { type: "string", short: "c" },
|
|
19
21
|
"fail-on": { type: "string" },
|
|
20
22
|
format: { type: "string" },
|
|
23
|
+
from: { type: "string" },
|
|
21
24
|
"include-owned": { type: "boolean" },
|
|
22
25
|
json: { type: "boolean" },
|
|
23
26
|
lines: { type: "string" },
|
|
27
|
+
to: { type: "string" },
|
|
24
28
|
view: { type: "string" },
|
|
25
29
|
"max-context-bytes": { type: "string" },
|
|
26
30
|
"max-source-bytes": { type: "string" },
|
|
@@ -44,6 +48,8 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
44
48
|
const [command = "scan", target = "."] = parsed.positionals;
|
|
45
49
|
if (command !== "scan" &&
|
|
46
50
|
command !== "catalog" &&
|
|
51
|
+
command !== "diff" &&
|
|
52
|
+
command !== "ci-report" &&
|
|
47
53
|
command !== "graph" &&
|
|
48
54
|
command !== "ownership" &&
|
|
49
55
|
command !== "readiness" &&
|
|
@@ -62,6 +68,12 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
62
68
|
if (command === "catalog") {
|
|
63
69
|
return runCatalog(parsed.values, target);
|
|
64
70
|
}
|
|
71
|
+
if (command === "diff") {
|
|
72
|
+
return runDiff(parsed.values, target);
|
|
73
|
+
}
|
|
74
|
+
if (command === "ci-report") {
|
|
75
|
+
return runCiReport(parsed.values, target);
|
|
76
|
+
}
|
|
65
77
|
if (command === "graph") {
|
|
66
78
|
return runGraph(parsed.values, target);
|
|
67
79
|
}
|
|
@@ -124,6 +136,70 @@ async function runCatalog(values, target) {
|
|
|
124
136
|
return 2;
|
|
125
137
|
}
|
|
126
138
|
}
|
|
139
|
+
async function runDiff(values, target) {
|
|
140
|
+
const fromRef = stringValue(values.from);
|
|
141
|
+
const toRef = stringValue(values.to);
|
|
142
|
+
if (!fromRef || !toRef) {
|
|
143
|
+
console.error("diff requires --from <ref> and --to <ref>.");
|
|
144
|
+
return 2;
|
|
145
|
+
}
|
|
146
|
+
const format = values.json ? "json" : (stringValue(values.format) ?? "json");
|
|
147
|
+
if (format !== "json" && format !== "markdown") {
|
|
148
|
+
console.error("--format must be either json or markdown.");
|
|
149
|
+
return 2;
|
|
150
|
+
}
|
|
151
|
+
const configPath = stringValue(values.config);
|
|
152
|
+
const overrides = {
|
|
153
|
+
...(configPath ? { configPath } : {}),
|
|
154
|
+
};
|
|
155
|
+
try {
|
|
156
|
+
return await runDiffCommand(target, {
|
|
157
|
+
fromRef,
|
|
158
|
+
toRef,
|
|
159
|
+
format: format,
|
|
160
|
+
overrides,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
console.error(error instanceof ConfigError || error instanceof Error
|
|
165
|
+
? error.message
|
|
166
|
+
: String(error));
|
|
167
|
+
return 2;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async function runCiReport(values, target) {
|
|
171
|
+
const fromRef = stringValue(values.from);
|
|
172
|
+
const toRef = stringValue(values.to);
|
|
173
|
+
if (!fromRef || !toRef) {
|
|
174
|
+
console.error("ci-report requires --from <ref> and --to <ref>.");
|
|
175
|
+
return 2;
|
|
176
|
+
}
|
|
177
|
+
const format = values.json
|
|
178
|
+
? "json"
|
|
179
|
+
: (stringValue(values.format) ?? "markdown");
|
|
180
|
+
if (format !== "json" && format !== "markdown") {
|
|
181
|
+
console.error("--format must be either json or markdown.");
|
|
182
|
+
return 2;
|
|
183
|
+
}
|
|
184
|
+
const configPath = stringValue(values.config);
|
|
185
|
+
const overrides = {
|
|
186
|
+
...(configPath ? { configPath } : {}),
|
|
187
|
+
};
|
|
188
|
+
try {
|
|
189
|
+
return await runCiReportCommand(target, {
|
|
190
|
+
fromRef,
|
|
191
|
+
toRef,
|
|
192
|
+
format: format,
|
|
193
|
+
overrides,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
console.error(error instanceof ConfigError || error instanceof Error
|
|
198
|
+
? error.message
|
|
199
|
+
: String(error));
|
|
200
|
+
return 2;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
127
203
|
async function runGraph(values, target) {
|
|
128
204
|
const format = values.json ? "json" : (stringValue(values.format) ?? "json");
|
|
129
205
|
if (format !== "json" && format !== "markdown" && format !== "mermaid") {
|
|
@@ -266,6 +342,8 @@ function helpText() {
|
|
|
266
342
|
"Additional usage:",
|
|
267
343
|
" renma scan [path] [options]",
|
|
268
344
|
" renma catalog [path] [options]",
|
|
345
|
+
" renma diff [path] --from <ref> --to <ref> [options]",
|
|
346
|
+
" renma ci-report [path] --from <ref> --to <ref> [options]",
|
|
269
347
|
" renma graph [path] [options]",
|
|
270
348
|
" renma ownership [path] [options]",
|
|
271
349
|
" renma readiness [path] [options]",
|
|
@@ -275,6 +353,8 @@ function helpText() {
|
|
|
275
353
|
"Commands:",
|
|
276
354
|
" scan Scan a repository or skill directory",
|
|
277
355
|
" catalog Print deterministic normalized asset catalog",
|
|
356
|
+
" diff Compare deterministic readiness snapshots",
|
|
357
|
+
" ci-report Print deterministic CI / PR review report",
|
|
278
358
|
" graph Print deterministic repository graph snapshot",
|
|
279
359
|
" ownership Print deterministic ownership coverage report",
|
|
280
360
|
" readiness Print deterministic agent readiness report",
|
|
@@ -286,7 +366,7 @@ function helpText() {
|
|
|
286
366
|
"Options:",
|
|
287
367
|
" -c, --config <path> scan: read JSON config from path",
|
|
288
368
|
" --fail-on <level> scan: exit 1 when findings meet severity: low, medium, high, critical",
|
|
289
|
-
" --format <format> scan: text or json; catalog/ownership/readiness: json or markdown; graph: json, markdown, or mermaid; suggest-semantic-split: prompt or json",
|
|
369
|
+
" --format <format> scan: text or json; catalog/ownership/readiness/ci-report: json or markdown; graph: json, markdown, or mermaid; suggest-semantic-split: prompt or json",
|
|
290
370
|
" --include-owned ownership: include owned asset details",
|
|
291
371
|
" --json Shortcut for --format json",
|
|
292
372
|
" --view <view> graph: summary, workflow, or full",
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type DiffReport, type DiffFormat } from "./diff.js";
|
|
2
|
+
import type { ConfigOverrides } from "../config.js";
|
|
3
|
+
export type CiReportFormat = DiffFormat;
|
|
4
|
+
export type CiReportStatus = "pass" | "warn" | "fail";
|
|
5
|
+
export interface CiReport {
|
|
6
|
+
root: string;
|
|
7
|
+
from: DiffReport["from"];
|
|
8
|
+
to: DiffReport["to"];
|
|
9
|
+
status: CiReportStatus;
|
|
10
|
+
summary: DiffReport["summary"];
|
|
11
|
+
notes: string[];
|
|
12
|
+
diff: DiffReport;
|
|
13
|
+
}
|
|
14
|
+
interface CiReportOptions {
|
|
15
|
+
fromRef: string;
|
|
16
|
+
toRef: string;
|
|
17
|
+
overrides?: ConfigOverrides;
|
|
18
|
+
}
|
|
19
|
+
export declare function runCiReportCommand(targetPath: string, options: CiReportOptions & {
|
|
20
|
+
format: CiReportFormat;
|
|
21
|
+
}): Promise<number>;
|
|
22
|
+
export declare function ciReport(targetPath: string, options: CiReportOptions): Promise<CiReport>;
|
|
23
|
+
export declare function formatCiReport(report: CiReport, format: CiReportFormat): string;
|
|
24
|
+
export declare function determineCiReportStatus(report: DiffReport): CiReportStatus;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=ci-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-report.d.ts","sourceRoot":"","sources":["../../src/commands/ci-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC;AACxC,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACzB,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAgBD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GACpD,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,QAAQ,CAAC,CAYnB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,cAAc,GACrB,MAAM,CAGR;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAkB1E"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { diff } from "./diff.js";
|
|
2
|
+
const MAX_LIST_ITEMS = 10;
|
|
3
|
+
export async function runCiReportCommand(targetPath, options) {
|
|
4
|
+
const report = await ciReport(targetPath, options);
|
|
5
|
+
process.stdout.write(formatCiReport(report, options.format));
|
|
6
|
+
return report.status === "fail" ? 1 : 0;
|
|
7
|
+
}
|
|
8
|
+
export async function ciReport(targetPath, options) {
|
|
9
|
+
const report = await diff(targetPath, options);
|
|
10
|
+
const status = determineCiReportStatus(report);
|
|
11
|
+
return {
|
|
12
|
+
root: report.root,
|
|
13
|
+
from: report.from,
|
|
14
|
+
to: report.to,
|
|
15
|
+
status,
|
|
16
|
+
summary: report.summary,
|
|
17
|
+
notes: reviewNotes(report, status),
|
|
18
|
+
diff: report,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export function formatCiReport(report, format) {
|
|
22
|
+
if (format === "json")
|
|
23
|
+
return `${JSON.stringify(report, null, 2)}\n`;
|
|
24
|
+
return formatCiReportMarkdown(report);
|
|
25
|
+
}
|
|
26
|
+
export function determineCiReportStatus(report) {
|
|
27
|
+
if (hasNewHighOrCriticalFinding(report) ||
|
|
28
|
+
hasNewUnresolvedRequiredEdge(report)) {
|
|
29
|
+
return "fail";
|
|
30
|
+
}
|
|
31
|
+
if (report.summary.readinessScoreDelta < 0 ||
|
|
32
|
+
report.summary.ownershipCoverageDelta < 0 ||
|
|
33
|
+
report.summary.graphResolutionDelta < 0 ||
|
|
34
|
+
report.summary.findingsDelta > 0) {
|
|
35
|
+
return "warn";
|
|
36
|
+
}
|
|
37
|
+
return "pass";
|
|
38
|
+
}
|
|
39
|
+
function hasNewHighOrCriticalFinding(report) {
|
|
40
|
+
return report.findings.added.some((finding) => finding.severity === "high" || finding.severity === "critical");
|
|
41
|
+
}
|
|
42
|
+
function hasNewUnresolvedRequiredEdge(report) {
|
|
43
|
+
return report.graph.newUnresolvedEdges.some(isRequiredEdge);
|
|
44
|
+
}
|
|
45
|
+
function newUnresolvedRequiredEdgeCount(report) {
|
|
46
|
+
return report.graph.newUnresolvedEdges.filter(isRequiredEdge).length;
|
|
47
|
+
}
|
|
48
|
+
function isRequiredEdge(edge) {
|
|
49
|
+
return edge.kind === "required" || edge.kind === "requires";
|
|
50
|
+
}
|
|
51
|
+
function reviewNotes(report, status) {
|
|
52
|
+
const notes = [];
|
|
53
|
+
if (hasNewUnresolvedRequiredEdge(report)) {
|
|
54
|
+
notes.push("Review new unresolved required edges before merge.");
|
|
55
|
+
}
|
|
56
|
+
if (hasNewHighOrCriticalFinding(report)) {
|
|
57
|
+
notes.push("Review new high or critical findings before merge.");
|
|
58
|
+
}
|
|
59
|
+
if (report.summary.readinessScoreDelta < 0) {
|
|
60
|
+
notes.push("Readiness score decreased.");
|
|
61
|
+
}
|
|
62
|
+
if (report.summary.ownershipCoverageDelta > 0) {
|
|
63
|
+
notes.push("Ownership coverage improved.");
|
|
64
|
+
}
|
|
65
|
+
if (report.summary.findingsDelta < 0) {
|
|
66
|
+
notes.push("Scan findings decreased.");
|
|
67
|
+
}
|
|
68
|
+
if (status === "pass" && notes.length === 0) {
|
|
69
|
+
notes.push("No CI report regressions detected.");
|
|
70
|
+
}
|
|
71
|
+
return notes;
|
|
72
|
+
}
|
|
73
|
+
function formatCiReportMarkdown(report) {
|
|
74
|
+
const lines = [
|
|
75
|
+
"# Renma CI Report",
|
|
76
|
+
"",
|
|
77
|
+
"## Summary",
|
|
78
|
+
"",
|
|
79
|
+
`- Status: ${report.status.toUpperCase()}`,
|
|
80
|
+
`- Range: \`${report.from.ref}\` -> \`${report.to.ref}\``,
|
|
81
|
+
`- Readiness: ${report.from.readinessLevel} ${report.from.readinessScore} -> ${report.to.readinessLevel} ${report.to.readinessScore} (${formatDelta(report.summary.readinessScoreDelta)})`,
|
|
82
|
+
`- Total assets: ${report.from.totalAssets} -> ${report.to.totalAssets} (${formatDelta(report.summary.totalAssetsDelta)})`,
|
|
83
|
+
`- Ownership coverage: ${formatDelta(report.summary.ownershipCoverageDelta)}`,
|
|
84
|
+
`- Graph resolution: ${formatDelta(report.summary.graphResolutionDelta)}`,
|
|
85
|
+
`- Findings: ${formatDelta(report.summary.findingsDelta)}`,
|
|
86
|
+
`- High/critical findings: ${formatDelta(report.summary.highOrCriticalFindingsDelta)}`,
|
|
87
|
+
"",
|
|
88
|
+
"## Status",
|
|
89
|
+
"",
|
|
90
|
+
report.status.toUpperCase(),
|
|
91
|
+
"",
|
|
92
|
+
"## Readiness",
|
|
93
|
+
"",
|
|
94
|
+
`- Target readiness: ${report.to.readinessLevel} (${report.to.readinessScore})`,
|
|
95
|
+
`- Scanned files: ${report.to.scannedFileCount}`,
|
|
96
|
+
`- Check changes: ${report.diff.readiness.checkChanges.length}`,
|
|
97
|
+
"",
|
|
98
|
+
"## Semantic Diff",
|
|
99
|
+
"",
|
|
100
|
+
`- Added assets: ${report.diff.catalog.addedAssets.length}`,
|
|
101
|
+
`- Removed assets: ${report.diff.catalog.removedAssets.length}`,
|
|
102
|
+
`- Changed assets: ${report.diff.catalog.changedAssets.length}`,
|
|
103
|
+
`- New unresolved required edges: ${newUnresolvedRequiredEdgeCount(report.diff)}`,
|
|
104
|
+
`- Resolved edges: ${report.diff.graph.resolvedEdges.length}`,
|
|
105
|
+
`- Added findings: ${report.diff.findings.added.length}`,
|
|
106
|
+
`- Resolved findings: ${report.diff.findings.removed.length}`,
|
|
107
|
+
"",
|
|
108
|
+
"## Scan Findings",
|
|
109
|
+
"",
|
|
110
|
+
...formatFindingSection("Added", report.diff.findings.added),
|
|
111
|
+
...formatFindingSection("Resolved", report.diff.findings.removed),
|
|
112
|
+
"",
|
|
113
|
+
"## Finding Count Changes",
|
|
114
|
+
"",
|
|
115
|
+
...formatCountChanges(report.diff.findings.countById),
|
|
116
|
+
"",
|
|
117
|
+
"## Review Notes",
|
|
118
|
+
"",
|
|
119
|
+
...report.notes.map((note) => `- ${note}`),
|
|
120
|
+
"",
|
|
121
|
+
];
|
|
122
|
+
return `${lines.join("\n")}\n`;
|
|
123
|
+
}
|
|
124
|
+
function formatDelta(value) {
|
|
125
|
+
if (value > 0)
|
|
126
|
+
return `+${value}`;
|
|
127
|
+
if (value < 0)
|
|
128
|
+
return String(value);
|
|
129
|
+
return "+0";
|
|
130
|
+
}
|
|
131
|
+
function formatFindingSection(label, findings) {
|
|
132
|
+
if (findings.length === 0)
|
|
133
|
+
return [`### ${label}`, "", "- None"];
|
|
134
|
+
return [
|
|
135
|
+
`### ${label}`,
|
|
136
|
+
"",
|
|
137
|
+
...findings.slice(0, MAX_LIST_ITEMS).map(formatFinding),
|
|
138
|
+
...formatOverflow(findings.length),
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
function formatFinding(finding) {
|
|
142
|
+
const location = finding.evidence?.path
|
|
143
|
+
? `${finding.evidence.path}:${finding.evidence.startLine ?? "?"}`
|
|
144
|
+
: "unknown";
|
|
145
|
+
return `- ${finding.severity.toUpperCase()} ${finding.id} ${location} - ${finding.title}`;
|
|
146
|
+
}
|
|
147
|
+
function formatCountChanges(changes) {
|
|
148
|
+
if (changes.length === 0)
|
|
149
|
+
return ["- None"];
|
|
150
|
+
return [
|
|
151
|
+
...changes
|
|
152
|
+
.slice(0, MAX_LIST_ITEMS)
|
|
153
|
+
.map((change) => `- ${change.id}: ${change.from} -> ${change.to} (${formatDelta(change.delta)})`),
|
|
154
|
+
...formatOverflow(changes.length),
|
|
155
|
+
];
|
|
156
|
+
}
|
|
157
|
+
function formatOverflow(length) {
|
|
158
|
+
if (length <= MAX_LIST_ITEMS)
|
|
159
|
+
return [];
|
|
160
|
+
return [`- ${length - MAX_LIST_ITEMS} more not shown`];
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=ci-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ci-report.js","sourceRoot":"","sources":["../../src/commands/ci-report.ts"],"names":[],"mappings":"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"}
|