@planu/cli 0.80.1 → 0.81.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.
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/config/ac-gap-keywords.json +144 -0
- package/dist/config/challenge-scenarios.json +114 -0
- package/dist/config/code-quality-thresholds.json +114 -0
- package/dist/config/compliance-frameworks.json +150 -0
- package/dist/config/dor-dod-items.json +214 -0
- package/dist/config/drift-severity.json +22 -0
- package/dist/config/elicitation-questions.json +70 -0
- package/dist/config/feasibility-rules.json +91 -0
- package/dist/config/rbac-roles.json +27 -0
- package/dist/config/readiness-config.json +18 -0
- package/dist/config/spec-types.json +42 -0
- package/dist/engine/ac-gap-detector/constants.d.ts.map +1 -1
- package/dist/engine/ac-gap-detector/constants.js +24 -126
- package/dist/engine/ac-gap-detector/constants.js.map +1 -1
- package/dist/engine/ac-gap-detector/keyword-loader.d.ts +13 -0
- package/dist/engine/ac-gap-detector/keyword-loader.d.ts.map +1 -0
- package/dist/engine/ac-gap-detector/keyword-loader.js +35 -0
- package/dist/engine/ac-gap-detector/keyword-loader.js.map +1 -0
- package/dist/engine/challenge-scenarios-loader.d.ts +46 -0
- package/dist/engine/challenge-scenarios-loader.d.ts.map +1 -0
- package/dist/engine/challenge-scenarios-loader.js +83 -0
- package/dist/engine/challenge-scenarios-loader.js.map +1 -0
- package/dist/engine/code-quality-thresholds-loader.d.ts +27 -0
- package/dist/engine/code-quality-thresholds-loader.d.ts.map +1 -0
- package/dist/engine/code-quality-thresholds-loader.js +88 -0
- package/dist/engine/code-quality-thresholds-loader.js.map +1 -0
- package/dist/engine/compliance-injector.d.ts +46 -0
- package/dist/engine/compliance-injector.d.ts.map +1 -0
- package/dist/engine/compliance-injector.js +121 -0
- package/dist/engine/compliance-injector.js.map +1 -0
- package/dist/engine/dor-dod/dod.d.ts +3 -2
- package/dist/engine/dor-dod/dod.d.ts.map +1 -1
- package/dist/engine/dor-dod/dod.js +38 -73
- package/dist/engine/dor-dod/dod.js.map +1 -1
- package/dist/engine/dor-dod/dor.d.ts +3 -2
- package/dist/engine/dor-dod/dor.d.ts.map +1 -1
- package/dist/engine/dor-dod/dor.js +75 -125
- package/dist/engine/dor-dod/dor.js.map +1 -1
- package/dist/engine/dor-dod/items-loader.d.ts +18 -0
- package/dist/engine/dor-dod/items-loader.d.ts.map +1 -0
- package/dist/engine/dor-dod/items-loader.js +55 -0
- package/dist/engine/dor-dod/items-loader.js.map +1 -0
- package/dist/engine/elicitation/question-generator.d.ts.map +1 -1
- package/dist/engine/elicitation/question-generator.js +74 -63
- package/dist/engine/elicitation/question-generator.js.map +1 -1
- package/dist/engine/feasibility-rules-loader.d.ts +13 -0
- package/dist/engine/feasibility-rules-loader.d.ts.map +1 -0
- package/dist/engine/feasibility-rules-loader.js +39 -0
- package/dist/engine/feasibility-rules-loader.js.map +1 -0
- package/dist/engine/feasibility-validator.d.ts +1 -1
- package/dist/engine/feasibility-validator.d.ts.map +1 -1
- package/dist/engine/feasibility-validator.js +21 -78
- package/dist/engine/feasibility-validator.js.map +1 -1
- package/dist/engine/rbac/roles.d.ts +13 -5
- package/dist/engine/rbac/roles.d.ts.map +1 -1
- package/dist/engine/rbac/roles.js +58 -24
- package/dist/engine/rbac/roles.js.map +1 -1
- package/dist/engine/readiness-checker.d.ts +1 -1
- package/dist/engine/readiness-checker.d.ts.map +1 -1
- package/dist/engine/readiness-checker.js +10 -12
- package/dist/engine/readiness-checker.js.map +1 -1
- package/dist/engine/readiness-config-loader.d.ts +8 -0
- package/dist/engine/readiness-config-loader.d.ts.map +1 -0
- package/dist/engine/readiness-config-loader.js +58 -0
- package/dist/engine/readiness-config-loader.js.map +1 -0
- package/dist/engine/spec-types-loader.d.ts +22 -0
- package/dist/engine/spec-types-loader.d.ts.map +1 -0
- package/dist/engine/spec-types-loader.js +50 -0
- package/dist/engine/spec-types-loader.js.map +1 -0
- package/dist/engine/validator/analyzer.d.ts +1 -0
- package/dist/engine/validator/analyzer.d.ts.map +1 -1
- package/dist/engine/validator/analyzer.js +31 -8
- package/dist/engine/validator/analyzer.js.map +1 -1
- package/dist/types/common/primitives.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/plugin-configs.d.ts +105 -0
- package/dist/types/plugin-configs.d.ts.map +1 -0
- package/dist/types/plugin-configs.js +6 -0
- package/dist/types/plugin-configs.js.map +1 -0
- package/package.json +1 -1
- package/src/config/ac-gap-keywords.json +144 -0
- package/src/config/challenge-scenarios.json +114 -0
- package/src/config/code-quality-thresholds.json +114 -0
- package/src/config/compliance-frameworks.json +150 -0
- package/src/config/dor-dod-items.json +214 -0
- package/src/config/drift-severity.json +22 -0
- package/src/config/elicitation-questions.json +70 -0
- package/src/config/feasibility-rules.json +91 -0
- package/src/config/rbac-roles.json +27 -0
- package/src/config/readiness-config.json +18 -0
- package/src/config/spec-types.json +42 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "dor-1",
|
|
4
|
+
"kind": "dor",
|
|
5
|
+
"description": "Spec has a clear title and description",
|
|
6
|
+
"category": "spec",
|
|
7
|
+
"required": true,
|
|
8
|
+
"autoCheck": true,
|
|
9
|
+
"autoCheckField": "title",
|
|
10
|
+
"autoCheckCondition": "length>3"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "dor-2",
|
|
14
|
+
"kind": "dor",
|
|
15
|
+
"description": "Spec type and scope are defined",
|
|
16
|
+
"category": "spec",
|
|
17
|
+
"required": true,
|
|
18
|
+
"autoCheck": true,
|
|
19
|
+
"autoCheckField": "type+scope",
|
|
20
|
+
"autoCheckCondition": "bothNonEmpty"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "dor-3",
|
|
24
|
+
"kind": "dor",
|
|
25
|
+
"description": "Difficulty is assessed (1-5)",
|
|
26
|
+
"category": "spec",
|
|
27
|
+
"required": true,
|
|
28
|
+
"autoCheck": true,
|
|
29
|
+
"autoCheckField": "difficulty",
|
|
30
|
+
"autoCheckCondition": "between1and5"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "dor-4",
|
|
34
|
+
"kind": "dor",
|
|
35
|
+
"description": "Estimation is complete (dev hours > 0)",
|
|
36
|
+
"category": "spec",
|
|
37
|
+
"required": true,
|
|
38
|
+
"autoCheck": true,
|
|
39
|
+
"autoCheckField": "estimation.devHours",
|
|
40
|
+
"autoCheckCondition": "greaterThan0"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"id": "dor-5",
|
|
44
|
+
"kind": "dor",
|
|
45
|
+
"description": "HU.md file exists and is complete",
|
|
46
|
+
"category": "spec",
|
|
47
|
+
"required": true,
|
|
48
|
+
"autoCheck": true,
|
|
49
|
+
"autoCheckField": "specPath",
|
|
50
|
+
"autoCheckCondition": "nonEmpty"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "dor-6",
|
|
54
|
+
"kind": "dor",
|
|
55
|
+
"description": "FICHA-TECNICA.md file exists and is complete",
|
|
56
|
+
"category": "design",
|
|
57
|
+
"required": true,
|
|
58
|
+
"autoCheck": true,
|
|
59
|
+
"autoCheckField": "technicalPath",
|
|
60
|
+
"autoCheckCondition": "nonEmpty"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "dor-7",
|
|
64
|
+
"kind": "dor",
|
|
65
|
+
"description": "No blocking dependencies (blockedBy is empty)",
|
|
66
|
+
"category": "dependencies",
|
|
67
|
+
"required": true,
|
|
68
|
+
"autoCheck": true,
|
|
69
|
+
"autoCheckField": "blockedBy",
|
|
70
|
+
"autoCheckCondition": "emptyArray"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"id": "dor-8",
|
|
74
|
+
"kind": "dor",
|
|
75
|
+
"description": "Risk level is assessed",
|
|
76
|
+
"category": "technical",
|
|
77
|
+
"required": true,
|
|
78
|
+
"autoCheck": true,
|
|
79
|
+
"autoCheckField": "risk",
|
|
80
|
+
"autoCheckCondition": "nonEmpty"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": "dor-9",
|
|
84
|
+
"kind": "dor",
|
|
85
|
+
"description": "Target is defined (frontend/backend/fullstack)",
|
|
86
|
+
"category": "technical",
|
|
87
|
+
"required": true,
|
|
88
|
+
"autoCheck": true,
|
|
89
|
+
"autoCheckField": "target",
|
|
90
|
+
"autoCheckCondition": "nonEmpty"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"id": "dor-10",
|
|
94
|
+
"kind": "dor",
|
|
95
|
+
"description": "Spec is in approved status",
|
|
96
|
+
"category": "spec",
|
|
97
|
+
"required": true,
|
|
98
|
+
"autoCheck": true,
|
|
99
|
+
"autoCheckField": "status",
|
|
100
|
+
"autoCheckCondition": "approvedOrImplementing"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"id": "dor-11",
|
|
104
|
+
"kind": "dor",
|
|
105
|
+
"description": "Git branch is configured for this spec",
|
|
106
|
+
"category": "technical",
|
|
107
|
+
"required": false,
|
|
108
|
+
"autoCheck": true,
|
|
109
|
+
"autoCheckField": "gitBranch",
|
|
110
|
+
"autoCheckCondition": "nonEmpty"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "dor-arch-1",
|
|
114
|
+
"kind": "dor",
|
|
115
|
+
"description": "Architecture diagram or ADR included for architectural scope",
|
|
116
|
+
"category": "design",
|
|
117
|
+
"required": false,
|
|
118
|
+
"autoCheck": false,
|
|
119
|
+
"autoCheckField": null,
|
|
120
|
+
"autoCheckCondition": null,
|
|
121
|
+
"scopeFilter": ["architectural", "cross-module"]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "dor-type-1",
|
|
125
|
+
"kind": "dor",
|
|
126
|
+
"description": "Acceptance criteria reviewed and approved by team",
|
|
127
|
+
"category": "team",
|
|
128
|
+
"required": false,
|
|
129
|
+
"autoCheck": false,
|
|
130
|
+
"autoCheckField": null,
|
|
131
|
+
"autoCheckCondition": null,
|
|
132
|
+
"typeFilter": ["feature", "refactor"]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "dod-1",
|
|
136
|
+
"kind": "dod",
|
|
137
|
+
"description": "All acceptance criteria implemented",
|
|
138
|
+
"category": "code",
|
|
139
|
+
"required": true,
|
|
140
|
+
"autoCheck": false,
|
|
141
|
+
"autoCheckField": null,
|
|
142
|
+
"autoCheckCondition": null
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"id": "dod-2",
|
|
146
|
+
"kind": "dod",
|
|
147
|
+
"description": "No critical quality issues (validate score >= 80)",
|
|
148
|
+
"category": "quality",
|
|
149
|
+
"required": true,
|
|
150
|
+
"autoCheck": false,
|
|
151
|
+
"autoCheckField": null,
|
|
152
|
+
"autoCheckCondition": null
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"id": "dod-3",
|
|
156
|
+
"kind": "dod",
|
|
157
|
+
"description": "Unit tests written and passing for new code",
|
|
158
|
+
"category": "tests",
|
|
159
|
+
"required": true,
|
|
160
|
+
"autoCheck": false,
|
|
161
|
+
"autoCheckField": null,
|
|
162
|
+
"autoCheckCondition": null
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"id": "dod-4",
|
|
166
|
+
"kind": "dod",
|
|
167
|
+
"description": "No regressions in existing tests",
|
|
168
|
+
"category": "tests",
|
|
169
|
+
"required": true,
|
|
170
|
+
"autoCheck": false,
|
|
171
|
+
"autoCheckField": null,
|
|
172
|
+
"autoCheckCondition": null
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"id": "dod-5",
|
|
176
|
+
"kind": "dod",
|
|
177
|
+
"description": "Linting and formatting clean (zero errors, zero warnings)",
|
|
178
|
+
"category": "quality",
|
|
179
|
+
"required": true,
|
|
180
|
+
"autoCheck": false,
|
|
181
|
+
"autoCheckField": null,
|
|
182
|
+
"autoCheckCondition": null
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": "dod-6",
|
|
186
|
+
"kind": "dod",
|
|
187
|
+
"description": "Code reviewed and approved",
|
|
188
|
+
"category": "review",
|
|
189
|
+
"required": false,
|
|
190
|
+
"autoCheck": false,
|
|
191
|
+
"autoCheckField": null,
|
|
192
|
+
"autoCheckCondition": null
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"id": "dod-7",
|
|
196
|
+
"kind": "dod",
|
|
197
|
+
"description": "Documentation updated (HU.md, FICHA-TECNICA.md, PLAN.md)",
|
|
198
|
+
"category": "docs",
|
|
199
|
+
"required": false,
|
|
200
|
+
"autoCheck": false,
|
|
201
|
+
"autoCheckField": null,
|
|
202
|
+
"autoCheckCondition": null
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": "dod-8",
|
|
206
|
+
"kind": "dod",
|
|
207
|
+
"description": "Actuals recorded (hours, tokens, cost)",
|
|
208
|
+
"category": "review",
|
|
209
|
+
"required": true,
|
|
210
|
+
"autoCheck": true,
|
|
211
|
+
"autoCheckField": "actuals",
|
|
212
|
+
"autoCheckCondition": "notNull"
|
|
213
|
+
}
|
|
214
|
+
]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "critical",
|
|
4
|
+
"severity": "critical",
|
|
5
|
+
"keywords": ["security", "auth", "permission", "authentication", "authorization", "privilege"]
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"id": "high",
|
|
9
|
+
"severity": "high",
|
|
10
|
+
"keywords": ["error", "validation", "test", "exception", "failure", "required"]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "medium",
|
|
14
|
+
"severity": "medium",
|
|
15
|
+
"keywords": ["performance", "cache", "optimize", "latency", "throughput", "timeout"]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "low",
|
|
19
|
+
"severity": "low",
|
|
20
|
+
"keywords": []
|
|
21
|
+
}
|
|
22
|
+
]
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "users",
|
|
4
|
+
"category": "users",
|
|
5
|
+
"questionTemplate": "Who are the primary users of \"{title}\"?",
|
|
6
|
+
"hint": "e.g., \"authenticated users\", \"admin only\", \"all visitors\"",
|
|
7
|
+
"required": true,
|
|
8
|
+
"answerType": "text",
|
|
9
|
+
"condition": "always"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "success",
|
|
13
|
+
"category": "success",
|
|
14
|
+
"questionTemplate": "How will you know when this feature is successfully implemented?",
|
|
15
|
+
"hint": "Describe the outcome from the user's perspective",
|
|
16
|
+
"required": true,
|
|
17
|
+
"answerType": "text",
|
|
18
|
+
"condition": "always"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "scope",
|
|
22
|
+
"category": "scope",
|
|
23
|
+
"questionTemplate": "What is the scope of this change?",
|
|
24
|
+
"required": true,
|
|
25
|
+
"answerType": "choice",
|
|
26
|
+
"choices": [
|
|
27
|
+
"Small change in one place",
|
|
28
|
+
"Medium feature across 2-3 areas",
|
|
29
|
+
"Large cross-module change",
|
|
30
|
+
"Major architectural change"
|
|
31
|
+
],
|
|
32
|
+
"condition": "always"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "edge_cases",
|
|
36
|
+
"category": "behavior",
|
|
37
|
+
"questionTemplate": "What should happen in error or edge cases?",
|
|
38
|
+
"hint": "e.g., \"show error message\", \"redirect to login\", \"fail silently\"",
|
|
39
|
+
"required": false,
|
|
40
|
+
"answerType": "text",
|
|
41
|
+
"condition": "always"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "data",
|
|
45
|
+
"category": "data",
|
|
46
|
+
"questionTemplate": "What data needs to be stored or retrieved for this feature?",
|
|
47
|
+
"hint": "List the key fields/entities involved",
|
|
48
|
+
"required": false,
|
|
49
|
+
"answerType": "text",
|
|
50
|
+
"condition": "data",
|
|
51
|
+
"conditionKeywords": ["data", "store"]
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "api_contract",
|
|
55
|
+
"category": "constraints",
|
|
56
|
+
"questionTemplate": "Does this require a new API endpoint or changes to existing ones?",
|
|
57
|
+
"required": false,
|
|
58
|
+
"answerType": "yes-no",
|
|
59
|
+
"condition": "api",
|
|
60
|
+
"conditionKeywords": ["api", "endpoint"]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "performance",
|
|
64
|
+
"category": "constraints",
|
|
65
|
+
"questionTemplate": "Are there performance requirements (response time, load, etc.)?",
|
|
66
|
+
"required": false,
|
|
67
|
+
"answerType": "text",
|
|
68
|
+
"condition": "always"
|
|
69
|
+
}
|
|
70
|
+
]
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "feature-keywords",
|
|
4
|
+
"category": "feature",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"quiero",
|
|
7
|
+
"debe",
|
|
8
|
+
"should",
|
|
9
|
+
"feature",
|
|
10
|
+
"screen",
|
|
11
|
+
"page",
|
|
12
|
+
"module",
|
|
13
|
+
"endpoint",
|
|
14
|
+
"flow",
|
|
15
|
+
"integration",
|
|
16
|
+
"dashboard",
|
|
17
|
+
"panel",
|
|
18
|
+
"view",
|
|
19
|
+
"form",
|
|
20
|
+
"report",
|
|
21
|
+
"notification",
|
|
22
|
+
"alert",
|
|
23
|
+
"widget"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "performance-keywords",
|
|
28
|
+
"category": "performance",
|
|
29
|
+
"keywords": [
|
|
30
|
+
"ultra-fast",
|
|
31
|
+
"ultra fast",
|
|
32
|
+
"< 100ms",
|
|
33
|
+
"<100ms",
|
|
34
|
+
"high performance",
|
|
35
|
+
"low latency",
|
|
36
|
+
"sub-second",
|
|
37
|
+
"instant",
|
|
38
|
+
"real-time response"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "security-keywords",
|
|
43
|
+
"category": "security",
|
|
44
|
+
"keywords": [
|
|
45
|
+
"encrypted",
|
|
46
|
+
"encryption",
|
|
47
|
+
"highly secure",
|
|
48
|
+
"compliance",
|
|
49
|
+
"hipaa",
|
|
50
|
+
"gdpr",
|
|
51
|
+
"pci",
|
|
52
|
+
"soc2",
|
|
53
|
+
"zero-trust",
|
|
54
|
+
"audit log",
|
|
55
|
+
"audit trail"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "cheap-keywords",
|
|
60
|
+
"category": "cheap",
|
|
61
|
+
"keywords": [
|
|
62
|
+
"cheap",
|
|
63
|
+
"zero cost",
|
|
64
|
+
"free",
|
|
65
|
+
"no cost",
|
|
66
|
+
"minimal cost",
|
|
67
|
+
"low cost",
|
|
68
|
+
"budget",
|
|
69
|
+
"affordable",
|
|
70
|
+
"open source only"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"id": "offline-keywords",
|
|
75
|
+
"category": "offline",
|
|
76
|
+
"keywords": ["offline", "offline mode", "no internet", "works offline"]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "realtime-keywords",
|
|
80
|
+
"category": "realtime",
|
|
81
|
+
"keywords": [
|
|
82
|
+
"real-time sync",
|
|
83
|
+
"realtime sync",
|
|
84
|
+
"live sync",
|
|
85
|
+
"instant sync",
|
|
86
|
+
"real-time updates",
|
|
87
|
+
"websocket sync",
|
|
88
|
+
"live updates"
|
|
89
|
+
]
|
|
90
|
+
}
|
|
91
|
+
]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "Admin",
|
|
4
|
+
"description": "Full access to all operations: create, read, update, delete, approve, implement, configure.",
|
|
5
|
+
"permissions": ["create", "read", "update", "delete", "approve", "implement", "configure"]
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"id": "Architect",
|
|
9
|
+
"description": "Can create/approve specs and configure the project constitution.",
|
|
10
|
+
"permissions": ["create", "read", "update", "approve", "configure"]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "Developer",
|
|
14
|
+
"description": "Can read specs and implement (update) them.",
|
|
15
|
+
"permissions": ["read", "update", "implement"]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "Reviewer",
|
|
19
|
+
"description": "Can read and approve/reject specs.",
|
|
20
|
+
"permissions": ["read", "approve"]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "Observer",
|
|
24
|
+
"description": "Read-only access to all specs and project data.",
|
|
25
|
+
"permissions": ["read"]
|
|
26
|
+
}
|
|
27
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"vagueWords": [
|
|
3
|
+
{ "id": "fast", "word": "fast" },
|
|
4
|
+
{ "id": "easy", "word": "easy" },
|
|
5
|
+
{ "id": "good", "word": "good" },
|
|
6
|
+
{ "id": "nice", "word": "nice" },
|
|
7
|
+
{ "id": "quick", "word": "quick" },
|
|
8
|
+
{ "id": "better", "word": "better" },
|
|
9
|
+
{ "id": "simple", "word": "simple" },
|
|
10
|
+
{ "id": "clean", "word": "clean" }
|
|
11
|
+
],
|
|
12
|
+
"thresholds": {
|
|
13
|
+
"strictBlocker": 50,
|
|
14
|
+
"strictCaution": 70,
|
|
15
|
+
"lenientBlocker": 40,
|
|
16
|
+
"lenientCaution": 60
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "feature",
|
|
4
|
+
"label": "Feature",
|
|
5
|
+
"description": "New functionality or capability"
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
"id": "refactor",
|
|
9
|
+
"label": "Refactor",
|
|
10
|
+
"description": "Restructure existing code without changing behavior"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "bugfix",
|
|
14
|
+
"label": "Bug Fix",
|
|
15
|
+
"description": "Fix a defect or incorrect behavior"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "infra",
|
|
19
|
+
"label": "Infrastructure",
|
|
20
|
+
"description": "Infrastructure, CI/CD, build, deployment changes"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "docs",
|
|
24
|
+
"label": "Documentation",
|
|
25
|
+
"description": "Documentation-only changes"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "project",
|
|
29
|
+
"label": "Project",
|
|
30
|
+
"description": "Cross-cutting project-wide initiative"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "agent",
|
|
34
|
+
"label": "Agent",
|
|
35
|
+
"description": "AI agent or automation workflow"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "tech-debt",
|
|
39
|
+
"label": "Tech Debt",
|
|
40
|
+
"description": "Address accumulated technical debt"
|
|
41
|
+
}
|
|
42
|
+
]
|