ripp-cli 1.0.0 → 1.2.1

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.
@@ -0,0 +1,201 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://dylan-natter.github.io/ripp-protocol/schema/evidence-pack.schema.json",
4
+ "title": "RIPP Evidence Pack Schema",
5
+ "description": "Schema for RIPP evidence pack index",
6
+ "type": "object",
7
+ "required": ["version", "created", "stats", "files"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "const": "1.0",
12
+ "description": "Evidence pack schema version"
13
+ },
14
+ "created": {
15
+ "type": "string",
16
+ "format": "date-time",
17
+ "description": "ISO 8601 timestamp of evidence pack creation"
18
+ },
19
+ "stats": {
20
+ "type": "object",
21
+ "required": ["totalFiles", "totalSize", "includedFiles", "excludedFiles"],
22
+ "properties": {
23
+ "totalFiles": {
24
+ "type": "integer",
25
+ "minimum": 0,
26
+ "description": "Total number of files scanned"
27
+ },
28
+ "totalSize": {
29
+ "type": "integer",
30
+ "minimum": 0,
31
+ "description": "Total size of included files in bytes"
32
+ },
33
+ "includedFiles": {
34
+ "type": "integer",
35
+ "minimum": 0,
36
+ "description": "Number of files included in evidence"
37
+ },
38
+ "excludedFiles": {
39
+ "type": "integer",
40
+ "minimum": 0,
41
+ "description": "Number of files excluded from evidence"
42
+ }
43
+ }
44
+ },
45
+ "includePatterns": {
46
+ "type": "array",
47
+ "items": {
48
+ "type": "string"
49
+ },
50
+ "description": "Glob patterns used for inclusion"
51
+ },
52
+ "excludePatterns": {
53
+ "type": "array",
54
+ "items": {
55
+ "type": "string"
56
+ },
57
+ "description": "Glob patterns used for exclusion"
58
+ },
59
+ "files": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "object",
63
+ "required": ["path", "hash", "size"],
64
+ "properties": {
65
+ "path": {
66
+ "type": "string",
67
+ "description": "Relative path from repository root"
68
+ },
69
+ "hash": {
70
+ "type": "string",
71
+ "description": "SHA-256 hash of file content"
72
+ },
73
+ "size": {
74
+ "type": "integer",
75
+ "minimum": 0,
76
+ "description": "File size in bytes"
77
+ },
78
+ "type": {
79
+ "type": "string",
80
+ "enum": ["source", "config", "schema", "workflow", "other"],
81
+ "description": "Detected file type"
82
+ }
83
+ }
84
+ },
85
+ "description": "List of files included in evidence pack"
86
+ },
87
+ "evidence": {
88
+ "type": "object",
89
+ "properties": {
90
+ "dependencies": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "object",
94
+ "properties": {
95
+ "name": {
96
+ "type": "string"
97
+ },
98
+ "version": {
99
+ "type": "string"
100
+ },
101
+ "type": {
102
+ "type": "string",
103
+ "enum": ["runtime", "dev", "peer"]
104
+ },
105
+ "source": {
106
+ "type": "string",
107
+ "description": "File path where dependency was found"
108
+ }
109
+ }
110
+ },
111
+ "description": "Extracted dependencies"
112
+ },
113
+ "routes": {
114
+ "type": "array",
115
+ "items": {
116
+ "type": "object",
117
+ "properties": {
118
+ "method": {
119
+ "type": "string"
120
+ },
121
+ "path": {
122
+ "type": "string"
123
+ },
124
+ "source": {
125
+ "type": "string",
126
+ "description": "File and line where route was found"
127
+ },
128
+ "snippet": {
129
+ "type": "string",
130
+ "description": "Code snippet"
131
+ }
132
+ }
133
+ },
134
+ "description": "Detected API routes"
135
+ },
136
+ "schemas": {
137
+ "type": "array",
138
+ "items": {
139
+ "type": "object",
140
+ "properties": {
141
+ "name": {
142
+ "type": "string"
143
+ },
144
+ "type": {
145
+ "type": "string",
146
+ "enum": ["model", "migration", "validation"]
147
+ },
148
+ "source": {
149
+ "type": "string"
150
+ },
151
+ "snippet": {
152
+ "type": "string"
153
+ }
154
+ }
155
+ },
156
+ "description": "Detected data schemas"
157
+ },
158
+ "auth": {
159
+ "type": "array",
160
+ "items": {
161
+ "type": "object",
162
+ "properties": {
163
+ "type": {
164
+ "type": "string",
165
+ "enum": ["middleware", "guard", "config"]
166
+ },
167
+ "source": {
168
+ "type": "string"
169
+ },
170
+ "snippet": {
171
+ "type": "string"
172
+ }
173
+ }
174
+ },
175
+ "description": "Authentication/authorization signals"
176
+ },
177
+ "workflows": {
178
+ "type": "array",
179
+ "items": {
180
+ "type": "object",
181
+ "properties": {
182
+ "name": {
183
+ "type": "string"
184
+ },
185
+ "triggers": {
186
+ "type": "array",
187
+ "items": {
188
+ "type": "string"
189
+ }
190
+ },
191
+ "source": {
192
+ "type": "string"
193
+ }
194
+ }
195
+ },
196
+ "description": "CI/CD workflow configurations"
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://dylan-natter.github.io/ripp-protocol/schema/intent-candidates.schema.json",
4
+ "title": "RIPP Intent Candidates Schema",
5
+ "description": "Schema for AI-inferred candidate intent requiring human confirmation",
6
+ "type": "object",
7
+ "required": ["version", "created", "candidates"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "const": "1.0",
12
+ "description": "Intent candidates schema version"
13
+ },
14
+ "created": {
15
+ "type": "string",
16
+ "format": "date-time",
17
+ "description": "ISO 8601 timestamp of generation"
18
+ },
19
+ "generatedBy": {
20
+ "type": "object",
21
+ "properties": {
22
+ "provider": {
23
+ "type": "string",
24
+ "description": "AI provider used"
25
+ },
26
+ "model": {
27
+ "type": "string",
28
+ "description": "Model identifier"
29
+ },
30
+ "evidencePackHash": {
31
+ "type": "string",
32
+ "description": "Hash of evidence pack used"
33
+ }
34
+ }
35
+ },
36
+ "candidates": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "required": ["source", "confidence", "evidence", "requires_human_confirmation"],
41
+ "properties": {
42
+ "section": {
43
+ "type": "string",
44
+ "enum": [
45
+ "purpose",
46
+ "ux_flow",
47
+ "data_contracts",
48
+ "api_contracts",
49
+ "permissions",
50
+ "failure_modes",
51
+ "audit_events",
52
+ "nfrs",
53
+ "acceptance_tests"
54
+ ],
55
+ "description": "RIPP section this candidate belongs to"
56
+ },
57
+ "source": {
58
+ "type": "string",
59
+ "const": "inferred",
60
+ "description": "Must always be 'inferred' for candidates"
61
+ },
62
+ "confidence": {
63
+ "type": "number",
64
+ "minimum": 0,
65
+ "maximum": 1,
66
+ "description": "Confidence score (0.0 to 1.0)"
67
+ },
68
+ "evidence": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "object",
72
+ "required": ["file", "line"],
73
+ "properties": {
74
+ "file": {
75
+ "type": "string",
76
+ "description": "Source file path"
77
+ },
78
+ "line": {
79
+ "type": "integer",
80
+ "minimum": 1,
81
+ "description": "Line number (or start line)"
82
+ },
83
+ "endLine": {
84
+ "type": "integer",
85
+ "minimum": 1,
86
+ "description": "End line (for multi-line snippets)"
87
+ },
88
+ "snippet": {
89
+ "type": "string",
90
+ "description": "Relevant code snippet"
91
+ }
92
+ }
93
+ },
94
+ "minItems": 1,
95
+ "description": "Evidence references supporting this inference"
96
+ },
97
+ "requires_human_confirmation": {
98
+ "type": "boolean",
99
+ "const": true,
100
+ "description": "Must always be true for candidates"
101
+ },
102
+ "content": {
103
+ "description": "The inferred content (structure depends on section)"
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,85 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://dylan-natter.github.io/ripp-protocol/schema/intent-confirmed.schema.json",
4
+ "title": "RIPP Confirmed Intent Schema",
5
+ "description": "Schema for human-confirmed intent ready for compilation",
6
+ "type": "object",
7
+ "required": ["version", "confirmed"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "const": "1.0",
12
+ "description": "Confirmed intent schema version"
13
+ },
14
+ "confirmed": {
15
+ "type": "array",
16
+ "items": {
17
+ "type": "object",
18
+ "required": ["source", "confirmed_at", "content"],
19
+ "properties": {
20
+ "section": {
21
+ "type": "string",
22
+ "enum": [
23
+ "purpose",
24
+ "ux_flow",
25
+ "data_contracts",
26
+ "api_contracts",
27
+ "permissions",
28
+ "failure_modes",
29
+ "audit_events",
30
+ "nfrs",
31
+ "acceptance_tests"
32
+ ],
33
+ "description": "RIPP section this confirmed block belongs to"
34
+ },
35
+ "source": {
36
+ "type": "string",
37
+ "const": "confirmed",
38
+ "description": "Must be 'confirmed' after human review"
39
+ },
40
+ "confirmed_at": {
41
+ "type": "string",
42
+ "format": "date-time",
43
+ "description": "ISO 8601 timestamp of confirmation"
44
+ },
45
+ "confirmed_by": {
46
+ "type": "string",
47
+ "description": "Optional user identifier"
48
+ },
49
+ "original_confidence": {
50
+ "type": "number",
51
+ "minimum": 0,
52
+ "maximum": 1,
53
+ "description": "Original AI confidence score (for traceability)"
54
+ },
55
+ "evidence": {
56
+ "type": "array",
57
+ "items": {
58
+ "type": "object",
59
+ "properties": {
60
+ "file": {
61
+ "type": "string"
62
+ },
63
+ "line": {
64
+ "type": "integer",
65
+ "minimum": 1
66
+ },
67
+ "endLine": {
68
+ "type": "integer",
69
+ "minimum": 1
70
+ },
71
+ "snippet": {
72
+ "type": "string"
73
+ }
74
+ }
75
+ },
76
+ "description": "Original evidence references (preserved for traceability)"
77
+ },
78
+ "content": {
79
+ "description": "The confirmed content (structure depends on section)"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }