projscan 4.12.1 → 4.14.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 +76 -12
- package/dist/cli/commands/prove.d.ts +3 -0
- package/dist/cli/commands/prove.js +379 -0
- package/dist/cli/commands/prove.js.map +1 -0
- package/dist/cli/commands/startMissionBundle.js +38 -0
- package/dist/cli/commands/startMissionBundle.js.map +1 -1
- package/dist/cli/registerCommands.js +2 -0
- package/dist/cli/registerCommands.js.map +1 -1
- package/dist/core/evidenceComment.js +31 -0
- package/dist/core/evidenceComment.js.map +1 -1
- package/dist/core/feedback.js +18 -0
- package/dist/core/feedback.js.map +1 -1
- package/dist/core/intentRouterCatalog.js +34 -0
- package/dist/core/intentRouterCatalog.js.map +1 -1
- package/dist/core/intentRouterKeywordToolGuards.js +10 -0
- package/dist/core/intentRouterKeywordToolGuards.js.map +1 -1
- package/dist/core/intentRouterWorkflowKeywordWeights.js +29 -0
- package/dist/core/intentRouterWorkflowKeywordWeights.js.map +1 -1
- package/dist/core/proofLedger.d.ts +9 -0
- package/dist/core/proofLedger.js +144 -0
- package/dist/core/proofLedger.js.map +1 -0
- package/dist/core/prove.d.ts +20 -0
- package/dist/core/prove.js +1121 -0
- package/dist/core/prove.js.map +1 -0
- package/dist/core/releaseEvidence.js +48 -0
- package/dist/core/releaseEvidence.js.map +1 -1
- package/dist/core/startFixedRouteCriteria.js +4 -0
- package/dist/core/startFixedRouteCriteria.js.map +1 -1
- package/dist/core/startRouteActions.js +5 -0
- package/dist/core/startRouteActions.js.map +1 -1
- package/dist/mcp/toolCatalog.js +2 -0
- package/dist/mcp/toolCatalog.js.map +1 -1
- package/dist/mcp/tools/prove.d.ts +2 -0
- package/dist/mcp/tools/prove.js +93 -0
- package/dist/mcp/tools/prove.js.map +1 -0
- package/dist/projscan-sbom.cdx.json +6 -6
- package/dist/publicCore.d.ts +1 -0
- package/dist/publicCore.js +1 -0
- package/dist/publicCore.js.map +1 -1
- package/dist/tool-manifest.json +68 -3
- package/dist/types/dogfood.d.ts +4 -0
- package/dist/types/evidencePack.d.ts +13 -0
- package/dist/types/proofLedger.d.ts +30 -0
- package/dist/types/proofLedger.js +2 -0
- package/dist/types/proofLedger.js.map +1 -0
- package/dist/types/prove.d.ts +123 -0
- package/dist/types/prove.js +2 -0
- package/dist/types/prove.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/utils/formatSupport.d.ts +1 -0
- package/dist/utils/formatSupport.js +1 -0
- package/dist/utils/formatSupport.js.map +1 -1
- package/docs/GUIDE.md +54 -1
- package/docs/demos/projscan-4-1-demo.html +24 -24
- package/docs/projscan-mission-control.gif +0 -0
- package/docs/projscan-mission-control.png +0 -0
- package/docs/projscan-mission-proof.gif +0 -0
- package/docs/projscan-proof-router.png +0 -0
- package/package.json +1 -1
|
@@ -49,6 +49,18 @@ export interface EvidencePackDailyPrWorkflowStep {
|
|
|
49
49
|
command: string;
|
|
50
50
|
purpose: string;
|
|
51
51
|
}
|
|
52
|
+
export interface EvidencePackProofReceiptSummary {
|
|
53
|
+
available: boolean;
|
|
54
|
+
command: string;
|
|
55
|
+
summary: string;
|
|
56
|
+
proofStatus: string;
|
|
57
|
+
reviewerDecision: string;
|
|
58
|
+
scopeStatus?: string;
|
|
59
|
+
riskDeltaDirection?: string;
|
|
60
|
+
missingCommands: string[];
|
|
61
|
+
failedCommands: string[];
|
|
62
|
+
staleCommands: string[];
|
|
63
|
+
}
|
|
52
64
|
export interface EvidencePackPrCommentValidationCheck {
|
|
53
65
|
id: string;
|
|
54
66
|
status: 'pass' | 'warn' | 'fail';
|
|
@@ -79,6 +91,7 @@ export interface EvidencePackReport {
|
|
|
79
91
|
prComment?: string;
|
|
80
92
|
prCommentValidation?: EvidencePackPrCommentValidation;
|
|
81
93
|
prSummary?: EvidencePackPrSummary;
|
|
94
|
+
proofReceipt?: EvidencePackProofReceiptSummary;
|
|
82
95
|
dailyPrWorkflow?: EvidencePackDailyPrWorkflowStep[];
|
|
83
96
|
suggestedNextActions: PreflightSuggestedAction[];
|
|
84
97
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type ProofLedgerSource = 'prove-record' | 'prove-run' | 'mission' | 'external';
|
|
2
|
+
export type ProofLedgerStatus = 'passed' | 'failed';
|
|
3
|
+
export interface ProofLedgerRecord {
|
|
4
|
+
schemaVersion: 1;
|
|
5
|
+
id: string;
|
|
6
|
+
command: string;
|
|
7
|
+
normalizedCommand: string;
|
|
8
|
+
cwd: string;
|
|
9
|
+
exitCode: number;
|
|
10
|
+
status: ProofLedgerStatus;
|
|
11
|
+
startedAt: string;
|
|
12
|
+
completedAt: string;
|
|
13
|
+
durationMs: number;
|
|
14
|
+
changedFileFingerprint: string;
|
|
15
|
+
changedFiles: string[];
|
|
16
|
+
outputSummary: string;
|
|
17
|
+
source: ProofLedgerSource;
|
|
18
|
+
logPath?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ProofLedgerWriteInput {
|
|
21
|
+
command: string;
|
|
22
|
+
cwd?: string;
|
|
23
|
+
exitCode: number;
|
|
24
|
+
durationMs: number;
|
|
25
|
+
changedFiles: string[];
|
|
26
|
+
outputSummary?: string;
|
|
27
|
+
source?: ProofLedgerSource;
|
|
28
|
+
logPath?: string;
|
|
29
|
+
completedAt?: string;
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proofLedger.js","sourceRoot":"","sources":["../../src/types/proofLedger.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { AssessConfidence, AssessEvidenceStrengthLevel, RiskDeltaSnapshot } from './assess.js';
|
|
2
|
+
import type { ProofLedgerRecord } from './proofLedger.js';
|
|
3
|
+
export type ProveMode = 'intent' | 'changed' | 'record' | 'run';
|
|
4
|
+
export type ProveVerdict = 'ready' | 'needs-review' | 'blocked';
|
|
5
|
+
export type ProveScopeStatus = 'within-contract' | 'drifted' | 'missing-contract';
|
|
6
|
+
export type ProveProofStatus = 'not-run' | 'missing' | 'partial' | 'passed' | 'failed' | 'stale';
|
|
7
|
+
export type ProveRiskDeltaDirection = 'improved' | 'worse' | 'flat';
|
|
8
|
+
export type ProveReviewerDecision = 'safe-to-review' | 'needs-focused-review' | 'stop';
|
|
9
|
+
export type ProveProofCommandStatus = 'passed' | 'failed' | 'missing' | 'stale';
|
|
10
|
+
export type ProveChangedFileKind = 'allowed-production' | 'expected-test' | 'documentation' | 'config' | 'security-sensitive' | 'generated' | 'forbidden' | 'unexpected-production' | 'unexpected-test' | 'unknown';
|
|
11
|
+
export interface ProveTrustMemorySummary {
|
|
12
|
+
status: string;
|
|
13
|
+
summary: string;
|
|
14
|
+
signals: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface ProveVerifiedWorkflow {
|
|
17
|
+
phase: 'contract' | 'receipt' | 'record';
|
|
18
|
+
status: ProveVerdict;
|
|
19
|
+
nextAction: string;
|
|
20
|
+
nextCommand: string;
|
|
21
|
+
reviewerDecision?: ProveReviewerDecision;
|
|
22
|
+
scopeStatus?: ProveScopeStatus;
|
|
23
|
+
proofStatus?: ProveProofStatus;
|
|
24
|
+
riskDeltaDirection?: ProveRiskDeltaDirection;
|
|
25
|
+
staleProof: boolean;
|
|
26
|
+
missingProof: boolean;
|
|
27
|
+
failedProof: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface ProveChangedFileClassification {
|
|
30
|
+
file: string;
|
|
31
|
+
kind: ProveChangedFileKind;
|
|
32
|
+
reason: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ProveContract {
|
|
35
|
+
schemaVersion: 1;
|
|
36
|
+
id: string;
|
|
37
|
+
intent: string;
|
|
38
|
+
createdAt: string;
|
|
39
|
+
allowedFiles: string[];
|
|
40
|
+
forbiddenFiles: string[];
|
|
41
|
+
riskyContracts: string[];
|
|
42
|
+
likelyTests: string[];
|
|
43
|
+
missingRegressionTests: string[];
|
|
44
|
+
proofCommands: string[];
|
|
45
|
+
safeChangeShape: string;
|
|
46
|
+
rollbackPlan: string;
|
|
47
|
+
confidence: AssessConfidence;
|
|
48
|
+
confidenceReason: string;
|
|
49
|
+
evidenceStrength: {
|
|
50
|
+
level: AssessEvidenceStrengthLevel;
|
|
51
|
+
score: number;
|
|
52
|
+
sources: string[];
|
|
53
|
+
gaps: string[];
|
|
54
|
+
};
|
|
55
|
+
trustMemory: ProveTrustMemorySummary;
|
|
56
|
+
reviewerGuidance: string;
|
|
57
|
+
receiptCommand: string;
|
|
58
|
+
riskDelta: RiskDeltaSnapshot;
|
|
59
|
+
verifiedWorkflow: ProveVerifiedWorkflow;
|
|
60
|
+
}
|
|
61
|
+
export interface ProveReceiptScope {
|
|
62
|
+
status: ProveScopeStatus;
|
|
63
|
+
changedFiles: string[];
|
|
64
|
+
allowedTouched: string[];
|
|
65
|
+
forbiddenTouched: string[];
|
|
66
|
+
outsideAllowed: string[];
|
|
67
|
+
classifications: ProveChangedFileClassification[];
|
|
68
|
+
allowedProduction: string[];
|
|
69
|
+
expectedTests: string[];
|
|
70
|
+
unexpectedProduction: string[];
|
|
71
|
+
unexpectedTests: string[];
|
|
72
|
+
documentationTouched: string[];
|
|
73
|
+
configTouched: string[];
|
|
74
|
+
securitySensitiveTouched: string[];
|
|
75
|
+
generatedTouched: string[];
|
|
76
|
+
contractPath?: string;
|
|
77
|
+
}
|
|
78
|
+
export interface ProveReceiptProofStatus {
|
|
79
|
+
status: ProveProofStatus;
|
|
80
|
+
commandsRequired: string[];
|
|
81
|
+
commandsRun: string[];
|
|
82
|
+
missingCommands: string[];
|
|
83
|
+
failedCommands: string[];
|
|
84
|
+
staleCommands: string[];
|
|
85
|
+
commandEvidence: ProveProofCommandEvidence[];
|
|
86
|
+
}
|
|
87
|
+
export interface ProveProofCommandEvidence {
|
|
88
|
+
command: string;
|
|
89
|
+
status: ProveProofCommandStatus;
|
|
90
|
+
fresh: boolean;
|
|
91
|
+
exitCode?: number;
|
|
92
|
+
durationMs?: number;
|
|
93
|
+
completedAt?: string;
|
|
94
|
+
outputSummary?: string;
|
|
95
|
+
logPath?: string;
|
|
96
|
+
staleReason?: string;
|
|
97
|
+
}
|
|
98
|
+
export interface ProveReceipt {
|
|
99
|
+
summary: string;
|
|
100
|
+
commitReadiness: ProveVerdict;
|
|
101
|
+
scope: ProveReceiptScope;
|
|
102
|
+
proofStatus: ProveReceiptProofStatus;
|
|
103
|
+
riskDelta: RiskDeltaSnapshot;
|
|
104
|
+
riskDeltaDirection: ProveRiskDeltaDirection;
|
|
105
|
+
reviewerDecision: ProveReviewerDecision;
|
|
106
|
+
newRisks: string[];
|
|
107
|
+
evidenceGaps: string[];
|
|
108
|
+
reviewerGuidance: string;
|
|
109
|
+
verifiedWorkflow: ProveVerifiedWorkflow;
|
|
110
|
+
}
|
|
111
|
+
export interface ProveReport {
|
|
112
|
+
schemaVersion: 1;
|
|
113
|
+
mode: ProveMode;
|
|
114
|
+
verdict: ProveVerdict;
|
|
115
|
+
summary: string;
|
|
116
|
+
contract?: ProveContract;
|
|
117
|
+
receipt?: ProveReceipt;
|
|
118
|
+
commands: string[];
|
|
119
|
+
warnings: string[];
|
|
120
|
+
verifiedWorkflow: ProveVerifiedWorkflow;
|
|
121
|
+
savedContractPath?: string;
|
|
122
|
+
ledgerRecord?: ProofLedgerRecord;
|
|
123
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prove.js","sourceRoot":"","sources":["../../src/types/prove.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export type * from './types/understand.js';
|
|
|
26
26
|
export type * from './types/qualityScorecard.js';
|
|
27
27
|
export type * from './types/assess.js';
|
|
28
28
|
export type * from './types/simulate.js';
|
|
29
|
+
export type * from './types/prove.js';
|
|
30
|
+
export type * from './types/proofLedger.js';
|
|
29
31
|
export type * from './types/regressionPlan.js';
|
|
30
32
|
export type * from './types/start.js';
|
|
31
33
|
export type * from './types/agentBrief.js';
|
|
@@ -5,6 +5,7 @@ export declare const COMMAND_FORMAT_SUPPORT: {
|
|
|
5
5
|
readonly analyze: readonly ["console", "json", "markdown", "sarif", "html"];
|
|
6
6
|
readonly assess: readonly ["console", "json", "markdown"];
|
|
7
7
|
readonly simulate: readonly ["console", "json", "markdown"];
|
|
8
|
+
readonly prove: readonly ["console", "json", "markdown"];
|
|
8
9
|
readonly 'apply-fix': readonly ["console", "json"];
|
|
9
10
|
readonly audit: readonly ["console", "json", "markdown", "sarif"];
|
|
10
11
|
readonly badge: readonly ["console"];
|
|
@@ -10,6 +10,7 @@ export const COMMAND_FORMAT_SUPPORT = {
|
|
|
10
10
|
analyze: ['console', 'json', 'markdown', 'sarif', 'html'],
|
|
11
11
|
assess: ['console', 'json', 'markdown'],
|
|
12
12
|
simulate: ['console', 'json', 'markdown'],
|
|
13
|
+
prove: ['console', 'json', 'markdown'],
|
|
13
14
|
'apply-fix': ['console', 'json'],
|
|
14
15
|
audit: ['console', 'json', 'markdown', 'sarif'],
|
|
15
16
|
badge: ['console'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"formatSupport.js","sourceRoot":"","sources":["../../src/utils/formatSupport.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS;IACT,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;CACoC,CAAC;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAClC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;IACzD,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACvC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACzC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACtC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;IAC/C,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC/B,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;IAC5C,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAChC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAClC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IACjD,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IAC7C,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACxC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACrC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;IACxD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC7B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACnC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACtC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACxC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IAChD,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACrC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAChC,GAAG,EAAE,CAAC,SAAS,CAAC;IAChB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IAC9C,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IACjD,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IAC/C,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACzC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,CAAC,SAAS,CAAC;IAC3B,GAAG,EAAE,CAAC,SAAS,CAAC;IAChB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IAChD,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACjC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAClC,eAAe,EAAE,CAAC,SAAS,CAAC;IAC5B,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC;IAClD,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACtC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAClC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAClC,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC9B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IAClD,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACxC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;IAC/C,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACvC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACtC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACpC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IAC1C,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IAC9B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACvC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACvC,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACxC,mBAAmB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IACxC,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACrC,eAAe,EAAE,CAAC,SAAS,CAAC;IAC5B,kBAAkB,EAAE,CAAC,SAAS,CAAC;IAC/B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;IAC3C,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;CAC6B,CAAC;AAI7D,MAAM,UAAU,UAAU,CAAC,UAAmC,cAAc;IAC1E,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,OAAQ,sBAAkE,CAAC,WAAW,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,iBAAiB;IAI/B,OAAO,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,OAAO,EAAE,OAA4B;QACrC,OAAO;KACR,CAAC,CAAC,CAAC;AACN,CAAC"}
|
package/docs/GUIDE.md
CHANGED
|
@@ -113,12 +113,45 @@ paths.
|
|
|
113
113
|
|
|
114
114
|
```bash
|
|
115
115
|
projscan start --intent "what files do I need to change for auth?"
|
|
116
|
+
projscan start --intent "is my agent allowed to change billing retry logic?"
|
|
116
117
|
projscan understand --view change --intent "add auth token refresh" --format json
|
|
118
|
+
projscan prove --intent "is my agent allowed to change billing retry logic?"
|
|
117
119
|
projscan preflight --mode before_edit --format json
|
|
118
120
|
```
|
|
119
121
|
|
|
120
122
|
Success criteria: the agent starts with cited files, change-readiness evidence,
|
|
121
|
-
and a before-edit gate instead of a free-form plan.
|
|
123
|
+
an executable Proof Contract, and a before-edit gate instead of a free-form plan.
|
|
124
|
+
|
|
125
|
+
### Verified change workflow
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
projscan start --intent "is my agent allowed to change billing retry logic?"
|
|
129
|
+
projscan prove --intent "is my agent allowed to change billing retry logic?" --save-contract .projscan/proof-contract.json
|
|
130
|
+
projscan prove --run -- npm test -- tests/billing/retry.test.ts
|
|
131
|
+
projscan prove --changed --contract .projscan/proof-contract.json --format markdown
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
The path is `start -> prove -> run -> changed`. Agent-permission intents route
|
|
135
|
+
from `start` to `prove`. Intent mode writes a contract only when
|
|
136
|
+
`--save-contract` is present. Run mode executes an explicit local command after
|
|
137
|
+
the `--` delimiter, captures exit code, duration, redacted output, log path, and
|
|
138
|
+
changed-file fingerprint, then appends a `prove-run` row to the local ledger.
|
|
139
|
+
Record mode remains available for imported CI or external evidence when
|
|
140
|
+
projscan did not run the command. Changed mode checks the working tree against
|
|
141
|
+
the contract and local ledger.
|
|
142
|
+
|
|
143
|
+
Success criteria: the agent gets allowed files, forbidden files, risky contracts,
|
|
144
|
+
likely tests, proof commands, rollback notes, confidence, and reviewer guidance
|
|
145
|
+
before editing. After editing, the Proof Receipt shows whether the actual working
|
|
146
|
+
tree stayed inside scope and classifies changed files as allowed production,
|
|
147
|
+
expected tests, docs, generated proof artifacts, config/security drift,
|
|
148
|
+
forbidden touches, or unexpected production. It also reports whether proof
|
|
149
|
+
commands passed and whether that proof is stale after newer edits.
|
|
150
|
+
|
|
151
|
+
Every prove report includes `verifiedWorkflow`, a compact JSON summary for agents
|
|
152
|
+
and MCP clients. It names the phase, next action, next command, scope status,
|
|
153
|
+
proof status, risk delta direction, reviewer decision, and stale/missing/failed
|
|
154
|
+
proof flags.
|
|
122
155
|
|
|
123
156
|
### Before handoff or commit
|
|
124
157
|
|
|
@@ -149,6 +182,24 @@ risk delta from local evidence. It compares bounded extraction, test-first, and
|
|
|
149
182
|
leave-unchanged alternatives, then names the recommended option. It is read-only
|
|
150
183
|
and does not execute the plan.
|
|
151
184
|
|
|
185
|
+
`projscan prove --intent "<change>"` turns the simulation into an executable
|
|
186
|
+
Proof Contract for humans, agents, CI, and reviewers. Intent mode is read-only
|
|
187
|
+
unless `--save-contract <path>` is supplied. Use `projscan prove --run --
|
|
188
|
+
<command...>` when projscan should execute a local proof command and append the
|
|
189
|
+
result. Use `projscan prove --record-command "<command>" --exit-code <code>
|
|
190
|
+
--duration-ms <ms>` only when importing proof from CI or another trusted runner.
|
|
191
|
+
`projscan prove --changed` reads the contract, checks local git changed-file
|
|
192
|
+
evidence, and emits a Proof Receipt with changed-file classes, proof replay
|
|
193
|
+
status, a Verified Workflow section, a reviewer checklist, and a copyable
|
|
194
|
+
decision. The ledger stores command, exit code, duration, changed-file
|
|
195
|
+
fingerprint, redacted summary, source, and log path under `.projscan/`. Local
|
|
196
|
+
`.projscan/` proof artifacts do not count as scope drift. If no contract exists,
|
|
197
|
+
changed mode still reports the working tree, but marks the result as needing
|
|
198
|
+
review because there is no contract to enforce. When you pass `--feedback
|
|
199
|
+
.projscan-feedback.json`, Trust Memory can lower the confidence reason when
|
|
200
|
+
prior reviewers reported missing signals, noisy findings, false positives, or
|
|
201
|
+
rejected proof outcomes.
|
|
202
|
+
|
|
152
203
|
Weekly or before a larger refactor, run the broader assessment and simulator:
|
|
153
204
|
|
|
154
205
|
```bash
|
|
@@ -261,6 +312,7 @@ When the agent first opens a repo, or before starting a refactor, the question i
|
|
|
261
312
|
- **`projscan_quality_scorecard` / `projscan quality-scorecard`** — dimensioned quality view across health, security, tests, maintainability, coordination, top risks, and verification commands.
|
|
262
313
|
- **`projscan_assess` / `projscan assess`** — proof-first assessment. Composes quality-scorecard, bug-hunt, and preflight into Proof Cards with local evidence, impact, a safe fix shape, verification commands, feedback or suppression guidance, and risk delta. Proof Cards include evidence strength, confidence reason, ranking reasons, trust memory, evidence gaps, and an AgentLoopKit handoff packet. Use `projscan assess --goal "make this repo safer to ship this week"` for a broad weekly pass, `projscan assess --mode fix-first --format markdown` when you want one or two next actions instead of a long list, `--feedback .projscan-feedback.json` when local reviewer memory should affect ranking, or `--baseline previous-assess.json` to compare against a prior assessment. The command is read-only and does not release, tag, publish, or deploy.
|
|
263
314
|
- **`projscan_simulate` / `projscan simulate`** — risk delta simulator. Evaluates a proposed change plan before editing and returns likely touched files, affected tests, contract surfaces, rollout steps, proof commands, confidence, projected before/after risk, alternatives, and a recommended option. Use `projscan simulate --plan "split bugHunt.ts into ranking, evidence, and output modules"` before doing a refactor. The command is read-only and does not execute the plan.
|
|
315
|
+
- **`projscan_prove` / `projscan prove`** — executable Proof Contracts, Verified Workflow JSON, and Proof Replay. Use `projscan prove --intent "<change>"` before editing to get allowed files, forbidden files, risky contracts, likely tests, proof commands, rollback, confidence, Trust Memory signals, and reviewer guidance. Use `projscan prove --run -- <command...>` to execute a local proof command and record a `prove-run` ledger row. Use `projscan prove --record-command "<command>" --exit-code <code>` for imported proof outcomes from CI or another runner. Use `projscan prove --changed --contract .projscan/proof-contract.json --format markdown` after editing to produce a Proof Receipt with changed-file classes, scope drift, forbidden touches, proof status, stale proof, failed proof, risk delta, reviewer decision, and commit readiness. Read `verifiedWorkflow` when an agent needs the next action without parsing Markdown.
|
|
264
316
|
- **`projscan_understand` / `projscan understand`** — cited repo-comprehension surface. Returns repo maps, runtime flow maps, contract maps, change-readiness guidance, verification tiers, unknowns, read-first files, and exact next commands.
|
|
265
317
|
- **`projscan_adoption` / `projscan init team` / `projscan init mcp` / `projscan mcp doctor` / `projscan init policy` / `projscan init github-action` / `projscan recipes` / `projscan first-run` / `projscan telemetry` / `projscan dogfood`** — adoption layer. Returns MCP client config snippets, setup verification, policy starters, PR workflow scaffolding with validated PR comments and block-only enforcement, baseline memory, ownership routing, first-PR onboarding steps, repeatable team-bootstrap and PR-automation recipes, multi-repo dogfood evidence, measured reviewer feedback, default-off telemetry controls, adoption trial reports, and setup diagnostics.
|
|
266
318
|
- **`projscan_release_train` / `projscan release-train`** — product-line readiness planner. Plans upcoming product lines with version, scope, readiness, and next-action evidence.
|
|
@@ -1412,6 +1464,7 @@ _Structural / agent-native:_
|
|
|
1412
1464
|
- `projscan_quality_scorecard` — dimensioned quality view with top risks and verification commands.
|
|
1413
1465
|
- `projscan_assess` — proof-first assessment with Proof Cards, risk delta, and fix-first guidance.
|
|
1414
1466
|
- `projscan_simulate` — risk delta simulator for proposed change plans before editing.
|
|
1467
|
+
- `projscan_prove` — executable Proof Contracts, local Proof Ledger rows, and replayed Proof Receipts for proposed and completed changes.
|
|
1415
1468
|
- `projscan_adoption` — adoption helper for MCP client snippets, MCP setup doctor, agent workflow recipes, and first-run diagnostics.
|
|
1416
1469
|
- `projscan_release_train` — product-line readiness plan with scope and next-action evidence.
|
|
1417
1470
|
- `projscan_evidence_pack` — approval packet with planning, bug-hunt, workplan, preflight, changelog, and website prompt evidence.
|
|
@@ -565,7 +565,7 @@
|
|
|
565
565
|
<span>mission and proof</span>
|
|
566
566
|
</div>
|
|
567
567
|
<div class="metric">
|
|
568
|
-
<strong>
|
|
568
|
+
<strong>48</strong>
|
|
569
569
|
<span>MCP tools</span>
|
|
570
570
|
</div>
|
|
571
571
|
<div class="metric">
|
|
@@ -664,13 +664,12 @@
|
|
|
664
664
|
<section class="proof" id="proof" aria-label="Proof and dependency view">
|
|
665
665
|
<div class="proof-header">
|
|
666
666
|
<div>
|
|
667
|
-
<p class="eyebrow">Proof
|
|
668
|
-
<h2>Check
|
|
667
|
+
<p class="eyebrow">Proof Replay and review evidence</p>
|
|
668
|
+
<h2>Check what actually ran.</h2>
|
|
669
669
|
</div>
|
|
670
670
|
<p>
|
|
671
|
-
Developers and agents can
|
|
672
|
-
|
|
673
|
-
anywhere.
|
|
671
|
+
Developers and agents can record proof-command outcomes locally, replay them against the
|
|
672
|
+
current working tree, and hand reviewers one receipt with scope, freshness, and decision.
|
|
674
673
|
</p>
|
|
675
674
|
</div>
|
|
676
675
|
|
|
@@ -680,24 +679,25 @@
|
|
|
680
679
|
<span class="dot red"></span>
|
|
681
680
|
<span class="dot amber"></span>
|
|
682
681
|
<span class="dot green"></span>
|
|
683
|
-
<span class="terminal-title">projscan
|
|
682
|
+
<span class="terminal-title">projscan prove --changed</span>
|
|
684
683
|
</div>
|
|
685
684
|
<div class="terminal-body">
|
|
686
685
|
<span class="line"
|
|
687
686
|
><span class="prompt">$</span>
|
|
688
687
|
<span class="cmd"
|
|
689
|
-
>projscan
|
|
688
|
+
>projscan prove --changed --contract .projscan/proof-contract.json</span
|
|
690
689
|
></span
|
|
691
690
|
>
|
|
692
|
-
<span class="line dim">
|
|
691
|
+
<span class="line dim">Proof Replay</span>
|
|
693
692
|
<span class="line"> </span>
|
|
694
|
-
<span class="line term-heading">
|
|
695
|
-
<span class="line success"
|
|
693
|
+
<span class="line term-heading">Proof status: <span class="success">passed</span></span>
|
|
694
|
+
<span class="line success">Reviewer decision: safe-to-review</span>
|
|
695
|
+
<span class="line success">Scope: within-contract</span>
|
|
696
696
|
<span class="line"> </span>
|
|
697
|
-
<span class="line term-heading">
|
|
698
|
-
<span class="line success">-
|
|
699
|
-
<span class="line success">-
|
|
700
|
-
<span class="line notice">Next:
|
|
697
|
+
<span class="line term-heading">Command evidence</span>
|
|
698
|
+
<span class="line success">- npm test -- tests/core/bugHunt.test.ts fresh</span>
|
|
699
|
+
<span class="line success">- projscan assess --mode fix-first fresh</span>
|
|
700
|
+
<span class="line notice">Next: paste Proof Receipt into PR</span>
|
|
701
701
|
</div>
|
|
702
702
|
</section>
|
|
703
703
|
|
|
@@ -705,30 +705,30 @@
|
|
|
705
705
|
<div class="signal">
|
|
706
706
|
<span class="tag green">Verify</span>
|
|
707
707
|
<span>
|
|
708
|
-
<strong>
|
|
709
|
-
<code>--
|
|
710
|
-
|
|
708
|
+
<strong>Proof Ledger</strong>
|
|
709
|
+
<code>--record-command</code> stores command, exit code, duration, fingerprint, and
|
|
710
|
+
redacted summary.
|
|
711
711
|
</span>
|
|
712
712
|
</div>
|
|
713
713
|
<div class="signal">
|
|
714
714
|
<span class="tag blue">MCP</span>
|
|
715
715
|
<span>
|
|
716
|
-
<strong>
|
|
717
|
-
<code>
|
|
716
|
+
<strong>Freshness</strong>
|
|
717
|
+
<code>prove --changed</code> marks proof stale when the changed-file fingerprint moves.
|
|
718
718
|
</span>
|
|
719
719
|
</div>
|
|
720
720
|
<div class="signal">
|
|
721
721
|
<span class="tag amber">List</span>
|
|
722
722
|
<span>
|
|
723
|
-
<strong>
|
|
724
|
-
<code>
|
|
723
|
+
<strong>PR receipt</strong>
|
|
724
|
+
<code>evidence-pack --pr-comment</code> includes the latest Proof Receipt section.
|
|
725
725
|
</span>
|
|
726
726
|
</div>
|
|
727
727
|
<div class="signal">
|
|
728
728
|
<span class="tag red">Gate</span>
|
|
729
729
|
<span>
|
|
730
|
-
<strong>
|
|
731
|
-
|
|
730
|
+
<strong>Stop signal</strong>
|
|
731
|
+
Failed proof or forbidden scope returns a reviewer decision of <code>stop</code>.
|
|
732
732
|
</span>
|
|
733
733
|
</div>
|
|
734
734
|
</div>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projscan",
|
|
3
3
|
"mcpName": "io.github.abhiyoheswaran1/projscan",
|
|
4
|
-
"version": "4.
|
|
4
|
+
"version": "4.14.0",
|
|
5
5
|
"description": "Local code intelligence for agent-assisted engineering. Focused daily workflows for repo orientation before edits, proof before handoff or commit, and release-candidate review, with AST-backed evidence through an MCP server and CLI. Runs locally by default.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.js",
|