its-magic 0.1.2-55 → 0.1.2
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/package.json +1 -1
- package/scripts/check_intake_template_parity.py +96 -0
- package/template/.cursor/commands/architecture.md +4 -0
- package/template/.cursor/commands/auto.md +110 -15
- package/template/.cursor/commands/discovery.md +4 -0
- package/template/.cursor/commands/execute.md +343 -291
- package/template/.cursor/commands/intake.md +4 -0
- package/template/.cursor/commands/map-codebase.md +4 -0
- package/template/.cursor/commands/memory-audit.md +4 -0
- package/template/.cursor/commands/milestone-complete.md +4 -0
- package/template/.cursor/commands/milestone-start.md +4 -0
- package/template/.cursor/commands/pause.md +4 -0
- package/template/.cursor/commands/phase-context.md +4 -0
- package/template/.cursor/commands/plan-verify.md +4 -0
- package/template/.cursor/commands/qa.md +226 -222
- package/template/.cursor/commands/quick.md +13 -0
- package/template/.cursor/commands/refresh-context.md +4 -0
- package/template/.cursor/commands/release.md +505 -487
- package/template/.cursor/commands/research.md +4 -0
- package/template/.cursor/commands/resume.md +4 -0
- package/template/.cursor/commands/security-review.md +4 -0
- package/template/.cursor/commands/sprint-plan.md +4 -0
- package/template/.cursor/commands/status-reconcile.md +4 -0
- package/template/.cursor/commands/verify-work.md +4 -0
- package/template/.cursor/dev-environment.json.example +22 -0
- package/template/.cursor/scratchpad.local.example.md +40 -3
- package/template/.cursor/scratchpad.md +324 -262
- package/template/.cursorignore +1 -0
- package/template/docs/engineering/auto-orchestration-reference.md +121 -14
- package/template/docs/engineering/context/installer-owned-paths.manifest +4 -1
- package/template/docs/engineering/runbook.md +207 -4
- package/template/scripts/check_intake_template_parity.py +96 -0
- package/template/scripts/dev_environment_lib.py +463 -0
- package/template/scripts/pack_json_validate.py +130 -0
- package/template/scripts/project_readme_coverage_lib.py +417 -0
- package/template/scripts/readme_feature_coverage_lib.py +2 -2
- package/template/scripts/validate_project_readme_coverage.py +151 -0
|
@@ -1,262 +1,324 @@
|
|
|
1
|
-
# its-magic scratchpad
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
# (
|
|
6
|
-
#
|
|
7
|
-
# Core behavior
|
|
8
|
-
# - MAGIC_CONTEXT_STRICT: 0|1 (require context refresh after code changes)
|
|
9
|
-
# - LOOP_UNTIL_GREEN: 0|1 (optional test loop)
|
|
10
|
-
# - RUN_TESTS_ON_EDIT: 0|1 (run tests after edits)
|
|
11
|
-
# - AUTO_IMPLEMENTATION_LOOP: 0|1 (auto cycle execute->qa->execute)
|
|
12
|
-
# - AUTO_LOOP_MAX_CYCLES: integer >= 1 (safety guard)
|
|
13
|
-
# - AUTO_PAUSE_REQUEST: 0|1 (request graceful stop at next safe boundary)
|
|
14
|
-
# - AUTO_PAUSE_POLICY: after_task|after_phase (safe stop boundary)
|
|
15
|
-
# - DONE: 0|1 (stop hook loops)
|
|
16
|
-
MAGIC_CONTEXT_STRICT=1
|
|
17
|
-
LOOP_UNTIL_GREEN=1
|
|
18
|
-
RUN_TESTS_ON_EDIT=1
|
|
19
|
-
AUTO_IMPLEMENTATION_LOOP=1
|
|
20
|
-
AUTO_LOOP_MAX_CYCLES=5
|
|
21
|
-
AUTO_PAUSE_REQUEST=0
|
|
22
|
-
AUTO_PAUSE_POLICY=after_phase
|
|
23
|
-
DONE=0
|
|
24
|
-
#
|
|
25
|
-
# Benchmarking
|
|
26
|
-
# - MAGIC_BENCH_SESSION: free-form id for live benchmark logging
|
|
27
|
-
MAGIC_BENCH_SESSION=
|
|
28
|
-
#
|
|
29
|
-
# Automation
|
|
30
|
-
# - AUTO_FLOW_MODE: manual|auto_until_decision|full_autonomy
|
|
31
|
-
# - manual: operator invokes phases explicitly (default when unset)
|
|
32
|
-
# - auto_until_decision: continuous until decision_gate
|
|
33
|
-
# - full_autonomy: outer-driver loop + relaxable transient stops + drain-without-pause (default-off; US-0092 / DEC-0078)
|
|
34
|
-
# - opt-in enablement: AUTO_FLOW_MODE=full_autonomy
|
|
35
|
-
# - AUTO_BLOCK_RETRY_MAX: integer >= 1 (default 3; per (story_id, stop_reason) recoverable retries before BLOCK_RETRY_CAP_EXHAUSTED)
|
|
36
|
-
# - AUTO_OUTER_DRIVER_TIMEOUT_SECONDS: optional integer; unset = no hook timeout (timeout -> exit 124)
|
|
37
|
-
# Interaction (full_autonomy): PHASE_MODE/PERMISSION_MODE orthogonal; AUTO_BACKLOG_DRAIN/AUTO_BUG_QUEUE per US-0044/US-0087;
|
|
38
|
-
# AUTO_LOOP_MAX_CYCLES/AUTO_BACKLOG_MAX_STORIES hard caps; TOKEN_PROFILE = context breadth / token cost only (DEC-0062 / US-0092).
|
|
39
|
-
# - PHASE_MODE: interactive|auto
|
|
40
|
-
# - PERMISSION_MODE: interactive|auto
|
|
41
|
-
# - AUTO_INSTALL_DEPS: 0|1
|
|
42
|
-
# - AUTO_RELEASE_NOTES: 0|1
|
|
43
|
-
# - AUTO_BACKLOG_DRAIN: 0|1 (continue across multiple stories when enabled)
|
|
44
|
-
# - AUTO_BACKLOG_MAX_STORIES: integer >= 1 (max stories per auto run when drain enabled)
|
|
45
|
-
# - AUTO_BACKLOG_ON_BLOCK: stop|skip (behavior when a story blocks)
|
|
46
|
-
# - AUTO_STORY_SELECTION: priority_then_backlog_order
|
|
47
|
-
# - AUTO_EXECUTE_BULK: 0|1 (explicit bulk execute orchestration mode)
|
|
48
|
-
# - AUTO_EXECUTE_MAX_ITEMS: integer >= 1 (max planned items per bulk execute run)
|
|
49
|
-
# - AUTO_EXECUTE_ON_BLOCK: stop|skip (behavior when a planned item blocks)
|
|
50
|
-
# - AUTO_EXECUTE_SELECTION: planned_then_priority
|
|
51
|
-
# - AUTO_TEAM_SCOPE_ENFORCE: 0|1 (when TEAM_MODE=1, enforce TEAM_MEMBER + ACTIVE_TASK_IDS)
|
|
52
|
-
# Optional bug-queue mode (US-0087) — default-off when absent/unset after merge
|
|
53
|
-
# - AUTO_BUG_QUEUE: 0|1 (1 = enable bug-targeted /auto; mutex vs AUTO_BACKLOG_DRAIN without bug-target argv)
|
|
54
|
-
# - AUTO_BUG_TARGET: all-open|BUG-#### (required when AUTO_BUG_QUEUE=1 unless bug-target= argv supplies target)
|
|
55
|
-
# - AUTO_BUG_MAX_ITEMS: non-negative integer (0 or unset = no cap for all-open queue per run)
|
|
56
|
-
# - AUTO_BUG_ON_BLOCK: stop|skip (bug segment pause/stop boundary)
|
|
57
|
-
# Quiet mode (US-0088) — suppress routine per-phase success chatter only
|
|
58
|
-
# - AUTO_QUIET: 0|1 (default 0; 1 = quiet routine notifications)
|
|
59
|
-
# Non-suppressible: decision_gate, errors, pause, loop_max, blocked, missing inputs.
|
|
60
|
-
# Orthogonal to TOKEN_PROFILE (DEC-0035 / US-0080) — TOKEN_PROFILE controls
|
|
61
|
-
# context breadth / token cost, not notification policy.
|
|
62
|
-
AUTO_QUIET=
|
|
63
|
-
AUTO_FLOW_MODE=
|
|
64
|
-
PHASE_MODE=auto
|
|
65
|
-
PERMISSION_MODE=auto
|
|
66
|
-
AUTO_INSTALL_DEPS=1
|
|
67
|
-
AUTO_RELEASE_NOTES=1
|
|
68
|
-
AUTO_BACKLOG_DRAIN=1
|
|
69
|
-
AUTO_BACKLOG_MAX_STORIES=10
|
|
70
|
-
AUTO_BACKLOG_ON_BLOCK=
|
|
71
|
-
AUTO_STORY_SELECTION=priority_then_backlog_order
|
|
72
|
-
AUTO_EXECUTE_BULK=0
|
|
73
|
-
AUTO_EXECUTE_MAX_ITEMS=1
|
|
74
|
-
AUTO_EXECUTE_ON_BLOCK=
|
|
75
|
-
AUTO_EXECUTE_SELECTION=planned_then_priority
|
|
76
|
-
AUTO_TEAM_SCOPE_ENFORCE=1
|
|
77
|
-
AUTO_BUG_QUEUE=0
|
|
78
|
-
AUTO_BUG_TARGET=
|
|
79
|
-
AUTO_BUG_MAX_ITEMS=0
|
|
80
|
-
AUTO_BUG_ON_BLOCK=
|
|
81
|
-
AUTO_BLOCK_RETRY_MAX=
|
|
82
|
-
#
|
|
83
|
-
# `/auto` phase role policy (US-0069 / DEC-0051)
|
|
84
|
-
# - AUTO_ROLE_RESEARCH: po|tech-lead (empty -> default tech-lead)
|
|
85
|
-
# - AUTO_ROLE_PLAN_VERIFY: qa|tech-lead (empty -> default qa)
|
|
86
|
-
# - AUTO_ROLE_REFRESH_CONTEXT: curator|po (empty -> default curator)
|
|
87
|
-
# - AUTO_EXECUTE_ROLE_OVERRIDE: empty or allowed_non_dev_execute (execute default is dev)
|
|
88
|
-
# - EXECUTE_OVERRIDE_GOVERNANCE_REF: parseable waiver pointer (DEC-xxxx / state anchor) when override set
|
|
89
|
-
AUTO_ROLE_RESEARCH=
|
|
90
|
-
AUTO_ROLE_PLAN_VERIFY=
|
|
91
|
-
AUTO_ROLE_REFRESH_CONTEXT=
|
|
92
|
-
AUTO_EXECUTE_ROLE_OVERRIDE=
|
|
93
|
-
EXECUTE_OVERRIDE_GOVERNANCE_REF=
|
|
94
|
-
#
|
|
95
|
-
# `/auto` phase selection policy (US-0070 / DEC-0052)
|
|
96
|
-
# Exactly one active mode after merge; conflict -> PHASE_POLICY_CONFLICT (no plan).
|
|
97
|
-
# - AUTO_PHASE_PLAN: unset or full (default full canonical lifecycle)
|
|
98
|
-
# - AUTO_PHASE_EXCLUDE: csv of canonical phase ids (exclude from full)
|
|
99
|
-
# - AUTO_PHASE_INCLUDE: csv of canonical phase ids (re-sorted to canonical order)
|
|
100
|
-
# - AUTO_PHASE_PROFILE: named profile (see /auto + DEC-0052; unknown -> fail closed)
|
|
101
|
-
# - AUTO_PHASE_HIGH_RISK_ACK: required token when a high-risk profile demands it
|
|
102
|
-
AUTO_PHASE_PLAN=
|
|
103
|
-
AUTO_PHASE_EXCLUDE=
|
|
104
|
-
AUTO_PHASE_INCLUDE=
|
|
105
|
-
AUTO_PHASE_PROFILE=
|
|
106
|
-
AUTO_PHASE_HIGH_RISK_ACK=
|
|
107
|
-
#
|
|
108
|
-
# Team mode
|
|
109
|
-
# - TEAM_MODE: 0|1 (enable task/member scoped team workflow)
|
|
110
|
-
# - TEAM_MEMBER: short id for current developer
|
|
111
|
-
# - ACTIVE_TASK_IDS: comma-separated task ids (for example T-12,T-13)
|
|
112
|
-
TEAM_MODE=0
|
|
113
|
-
TEAM_MEMBER=
|
|
114
|
-
ACTIVE_TASK_IDS=
|
|
115
|
-
#
|
|
116
|
-
# Sprint planning
|
|
117
|
-
# - SPRINT_MAX_TASKS: integer >= 1 (max atomic tasks per sprint, default 12)
|
|
118
|
-
# - SPRINT_AUTO_SPLIT: 0|1 (propose splitting when over threshold)
|
|
119
|
-
# - SPRINT_BULK_MAX_STORIES: integer >= 1 (candidate stories when /sprint-plan --bulk)
|
|
120
|
-
# - SPRINT_BULK_MAX_SPRINTS: integer >= 1 (generated sprints per /sprint-plan --bulk run)
|
|
121
|
-
# - SPRINT_BULK_SELECTION: priority_then_backlog_order
|
|
122
|
-
SPRINT_MAX_TASKS=12
|
|
123
|
-
SPRINT_AUTO_SPLIT=1
|
|
124
|
-
SPRINT_BULK_MAX_STORIES=5
|
|
125
|
-
SPRINT_BULK_MAX_SPRINTS=3
|
|
126
|
-
SPRINT_BULK_SELECTION=priority_then_backlog_order
|
|
127
|
-
#
|
|
128
|
-
# Remote execution (US-0086 / US-0084 / US-0064)
|
|
129
|
-
# - REMOTE_EXECUTION: 0|1
|
|
130
|
-
# - REMOTE_CONFIG: path to
|
|
131
|
-
# - AUTO_REMOTE_AUTOMATION_PROFILE: off|deterministic_v1 (default off
|
|
132
|
-
#
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
#
|
|
144
|
-
#
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
#
|
|
150
|
-
#
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
#
|
|
156
|
-
#
|
|
157
|
-
# -
|
|
158
|
-
#
|
|
159
|
-
#
|
|
160
|
-
#
|
|
161
|
-
#
|
|
162
|
-
# -
|
|
163
|
-
#
|
|
164
|
-
#
|
|
165
|
-
#
|
|
166
|
-
#
|
|
167
|
-
#
|
|
168
|
-
# -
|
|
169
|
-
#
|
|
170
|
-
# -
|
|
171
|
-
#
|
|
172
|
-
#
|
|
173
|
-
#
|
|
174
|
-
# -
|
|
175
|
-
# -
|
|
176
|
-
# -
|
|
177
|
-
#
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
#
|
|
203
|
-
#
|
|
204
|
-
#
|
|
205
|
-
# -
|
|
206
|
-
#
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
#
|
|
212
|
-
#
|
|
213
|
-
# -
|
|
214
|
-
#
|
|
215
|
-
#
|
|
216
|
-
#
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
#
|
|
222
|
-
# -
|
|
223
|
-
#
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
#
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
#
|
|
238
|
-
#
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
#
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
#
|
|
247
|
-
#
|
|
248
|
-
#
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
#
|
|
253
|
-
# -
|
|
254
|
-
#
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
1
|
+
# its-magic scratchpad (framework default catalog — Model B / DEC-0055)
|
|
2
|
+
#
|
|
3
|
+
# Copy this file to `.cursor/scratchpad.local.md` for personal overrides (gitignored).
|
|
4
|
+
# Merge precedence: local > materialized `.cursor/scratchpad.md` > this example
|
|
5
|
+
# (installers materialize the baseline from template when missing).
|
|
6
|
+
#
|
|
7
|
+
# Core behavior
|
|
8
|
+
# - MAGIC_CONTEXT_STRICT: 0|1 (require context refresh after code changes)
|
|
9
|
+
# - LOOP_UNTIL_GREEN: 0|1 (optional test loop)
|
|
10
|
+
# - RUN_TESTS_ON_EDIT: 0|1 (run tests after edits)
|
|
11
|
+
# - AUTO_IMPLEMENTATION_LOOP: 0|1 (auto cycle execute->qa->execute)
|
|
12
|
+
# - AUTO_LOOP_MAX_CYCLES: integer >= 1 (safety guard)
|
|
13
|
+
# - AUTO_PAUSE_REQUEST: 0|1 (request graceful stop at next safe boundary)
|
|
14
|
+
# - AUTO_PAUSE_POLICY: after_task|after_phase (safe stop boundary)
|
|
15
|
+
# - DONE: 0|1 (stop hook loops)
|
|
16
|
+
MAGIC_CONTEXT_STRICT=1
|
|
17
|
+
LOOP_UNTIL_GREEN=1
|
|
18
|
+
RUN_TESTS_ON_EDIT=1
|
|
19
|
+
AUTO_IMPLEMENTATION_LOOP=1
|
|
20
|
+
AUTO_LOOP_MAX_CYCLES=5
|
|
21
|
+
AUTO_PAUSE_REQUEST=0
|
|
22
|
+
AUTO_PAUSE_POLICY=after_phase
|
|
23
|
+
DONE=0
|
|
24
|
+
#
|
|
25
|
+
# Benchmarking
|
|
26
|
+
# - MAGIC_BENCH_SESSION: free-form id for live benchmark logging
|
|
27
|
+
MAGIC_BENCH_SESSION=
|
|
28
|
+
#
|
|
29
|
+
# Automation
|
|
30
|
+
# - AUTO_FLOW_MODE: manual|auto_until_decision|full_autonomy
|
|
31
|
+
# - manual: operator invokes phases explicitly (default when unset)
|
|
32
|
+
# - auto_until_decision: continuous until decision_gate
|
|
33
|
+
# - full_autonomy: outer-driver loop + relaxable transient stops + drain-without-pause (default-off; US-0092 / DEC-0078)
|
|
34
|
+
# - opt-in enablement: AUTO_FLOW_MODE=full_autonomy
|
|
35
|
+
# - AUTO_BLOCK_RETRY_MAX: integer >= 1 (default 3; per (story_id, stop_reason) recoverable retries before BLOCK_RETRY_CAP_EXHAUSTED)
|
|
36
|
+
# - AUTO_OUTER_DRIVER_TIMEOUT_SECONDS: optional integer; unset = no hook timeout (timeout -> exit 124)
|
|
37
|
+
# Interaction (full_autonomy): PHASE_MODE/PERMISSION_MODE orthogonal; AUTO_BACKLOG_DRAIN/AUTO_BUG_QUEUE per US-0044/US-0087;
|
|
38
|
+
# AUTO_LOOP_MAX_CYCLES/AUTO_BACKLOG_MAX_STORIES hard caps; TOKEN_PROFILE = context breadth / token cost only (DEC-0062 / US-0092).
|
|
39
|
+
# - PHASE_MODE: interactive|auto
|
|
40
|
+
# - PERMISSION_MODE: interactive|auto
|
|
41
|
+
# - AUTO_INSTALL_DEPS: 0|1
|
|
42
|
+
# - AUTO_RELEASE_NOTES: 0|1
|
|
43
|
+
# - AUTO_BACKLOG_DRAIN: 0|1 (continue across multiple stories when enabled)
|
|
44
|
+
# - AUTO_BACKLOG_MAX_STORIES: integer >= 1 (max stories per auto run when drain enabled)
|
|
45
|
+
# - AUTO_BACKLOG_ON_BLOCK: stop|skip (behavior when a story blocks)
|
|
46
|
+
# - AUTO_STORY_SELECTION: priority_then_backlog_order
|
|
47
|
+
# - AUTO_EXECUTE_BULK: 0|1 (explicit bulk execute orchestration mode)
|
|
48
|
+
# - AUTO_EXECUTE_MAX_ITEMS: integer >= 1 (max planned items per bulk execute run)
|
|
49
|
+
# - AUTO_EXECUTE_ON_BLOCK: stop|skip (behavior when a planned item blocks)
|
|
50
|
+
# - AUTO_EXECUTE_SELECTION: planned_then_priority
|
|
51
|
+
# - AUTO_TEAM_SCOPE_ENFORCE: 0|1 (when TEAM_MODE=1, enforce TEAM_MEMBER + ACTIVE_TASK_IDS)
|
|
52
|
+
# Optional bug-queue mode (US-0087) — default-off when absent/unset after merge
|
|
53
|
+
# - AUTO_BUG_QUEUE: 0|1 (1 = enable bug-targeted /auto; mutex vs AUTO_BACKLOG_DRAIN without bug-target argv)
|
|
54
|
+
# - AUTO_BUG_TARGET: all-open|BUG-#### (required when AUTO_BUG_QUEUE=1 unless bug-target= argv supplies target)
|
|
55
|
+
# - AUTO_BUG_MAX_ITEMS: non-negative integer (0 or unset = no cap for all-open queue per run)
|
|
56
|
+
# - AUTO_BUG_ON_BLOCK: stop|skip (bug segment pause/stop boundary)
|
|
57
|
+
# Quiet mode (US-0088) — suppress routine per-phase success chatter only
|
|
58
|
+
# - AUTO_QUIET: 0|1 (default 0; 1 = quiet routine notifications)
|
|
59
|
+
# Non-suppressible: decision_gate, errors, pause, loop_max, blocked, missing inputs.
|
|
60
|
+
# Orthogonal to TOKEN_PROFILE (DEC-0035 / US-0080) — TOKEN_PROFILE controls
|
|
61
|
+
# context breadth / token cost, not notification policy.
|
|
62
|
+
AUTO_QUIET=1
|
|
63
|
+
AUTO_FLOW_MODE=full_autonomy
|
|
64
|
+
PHASE_MODE=auto
|
|
65
|
+
PERMISSION_MODE=auto
|
|
66
|
+
AUTO_INSTALL_DEPS=1
|
|
67
|
+
AUTO_RELEASE_NOTES=1
|
|
68
|
+
AUTO_BACKLOG_DRAIN=1
|
|
69
|
+
AUTO_BACKLOG_MAX_STORIES=10
|
|
70
|
+
AUTO_BACKLOG_ON_BLOCK=skip
|
|
71
|
+
AUTO_STORY_SELECTION=priority_then_backlog_order
|
|
72
|
+
AUTO_EXECUTE_BULK=0
|
|
73
|
+
AUTO_EXECUTE_MAX_ITEMS=1
|
|
74
|
+
AUTO_EXECUTE_ON_BLOCK=skip
|
|
75
|
+
AUTO_EXECUTE_SELECTION=planned_then_priority
|
|
76
|
+
AUTO_TEAM_SCOPE_ENFORCE=1
|
|
77
|
+
AUTO_BUG_QUEUE=0
|
|
78
|
+
AUTO_BUG_TARGET=
|
|
79
|
+
AUTO_BUG_MAX_ITEMS=0
|
|
80
|
+
AUTO_BUG_ON_BLOCK=skip
|
|
81
|
+
AUTO_BLOCK_RETRY_MAX=5
|
|
82
|
+
#
|
|
83
|
+
# `/auto` phase role policy (US-0069 / DEC-0051)
|
|
84
|
+
# - AUTO_ROLE_RESEARCH: po|tech-lead (empty -> default tech-lead)
|
|
85
|
+
# - AUTO_ROLE_PLAN_VERIFY: qa|tech-lead (empty -> default qa)
|
|
86
|
+
# - AUTO_ROLE_REFRESH_CONTEXT: curator|po (empty -> default curator)
|
|
87
|
+
# - AUTO_EXECUTE_ROLE_OVERRIDE: empty or allowed_non_dev_execute (execute default is dev)
|
|
88
|
+
# - EXECUTE_OVERRIDE_GOVERNANCE_REF: parseable waiver pointer (DEC-xxxx / state anchor) when override set
|
|
89
|
+
AUTO_ROLE_RESEARCH=
|
|
90
|
+
AUTO_ROLE_PLAN_VERIFY=
|
|
91
|
+
AUTO_ROLE_REFRESH_CONTEXT=
|
|
92
|
+
AUTO_EXECUTE_ROLE_OVERRIDE=
|
|
93
|
+
EXECUTE_OVERRIDE_GOVERNANCE_REF=
|
|
94
|
+
#
|
|
95
|
+
# `/auto` phase selection policy (US-0070 / DEC-0052)
|
|
96
|
+
# Exactly one active mode after merge; conflict -> PHASE_POLICY_CONFLICT (no plan).
|
|
97
|
+
# - AUTO_PHASE_PLAN: unset or full (default full canonical lifecycle)
|
|
98
|
+
# - AUTO_PHASE_EXCLUDE: csv of canonical phase ids (exclude from full)
|
|
99
|
+
# - AUTO_PHASE_INCLUDE: csv of canonical phase ids (re-sorted to canonical order)
|
|
100
|
+
# - AUTO_PHASE_PROFILE: named profile (see /auto + DEC-0052; unknown -> fail closed)
|
|
101
|
+
# - AUTO_PHASE_HIGH_RISK_ACK: required token when a high-risk profile demands it
|
|
102
|
+
AUTO_PHASE_PLAN=
|
|
103
|
+
AUTO_PHASE_EXCLUDE=
|
|
104
|
+
AUTO_PHASE_INCLUDE=
|
|
105
|
+
AUTO_PHASE_PROFILE=
|
|
106
|
+
AUTO_PHASE_HIGH_RISK_ACK=
|
|
107
|
+
#
|
|
108
|
+
# Team mode
|
|
109
|
+
# - TEAM_MODE: 0|1 (enable task/member scoped team workflow)
|
|
110
|
+
# - TEAM_MEMBER: short id for current developer
|
|
111
|
+
# - ACTIVE_TASK_IDS: comma-separated task ids (for example T-12,T-13)
|
|
112
|
+
TEAM_MODE=0
|
|
113
|
+
TEAM_MEMBER=
|
|
114
|
+
ACTIVE_TASK_IDS=
|
|
115
|
+
#
|
|
116
|
+
# Sprint planning
|
|
117
|
+
# - SPRINT_MAX_TASKS: integer >= 1 (max atomic tasks per sprint, default 12)
|
|
118
|
+
# - SPRINT_AUTO_SPLIT: 0|1 (propose splitting when over threshold)
|
|
119
|
+
# - SPRINT_BULK_MAX_STORIES: integer >= 1 (candidate stories when /sprint-plan --bulk)
|
|
120
|
+
# - SPRINT_BULK_MAX_SPRINTS: integer >= 1 (generated sprints per /sprint-plan --bulk run)
|
|
121
|
+
# - SPRINT_BULK_SELECTION: priority_then_backlog_order
|
|
122
|
+
SPRINT_MAX_TASKS=12
|
|
123
|
+
SPRINT_AUTO_SPLIT=1
|
|
124
|
+
SPRINT_BULK_MAX_STORIES=5
|
|
125
|
+
SPRINT_BULK_MAX_SPRINTS=3
|
|
126
|
+
SPRINT_BULK_SELECTION=priority_then_backlog_order
|
|
127
|
+
#
|
|
128
|
+
# Remote execution (US-0086 / US-0084 / US-0064)
|
|
129
|
+
# - REMOTE_EXECUTION: 0|1
|
|
130
|
+
# - REMOTE_CONFIG: path to remote config
|
|
131
|
+
# - AUTO_REMOTE_AUTOMATION_PROFILE: off|deterministic_v1 (default off/manual-safe)
|
|
132
|
+
# - AUTO_REMOTE_ENVIRONMENT_LABEL: local|docker|ssh (names-only evidence label)
|
|
133
|
+
REMOTE_EXECUTION=0
|
|
134
|
+
REMOTE_CONFIG=.cursor/remote.json
|
|
135
|
+
AUTO_REMOTE_AUTOMATION_PROFILE=off
|
|
136
|
+
AUTO_REMOTE_ENVIRONMENT_LABEL=local
|
|
137
|
+
#
|
|
138
|
+
# Sync policy
|
|
139
|
+
# - SYNC_POLICY_MODE: disabled|manual|by_phase|by_milestone|custom_phase_list
|
|
140
|
+
# - SYNC_CUSTOM_PHASES: comma-separated canonical phase IDs; only used when
|
|
141
|
+
# SYNC_POLICY_MODE=custom_phase_list
|
|
142
|
+
# - ALLOW_AUTO_PUSH: 0|1 (default off; explicit opt-in required)
|
|
143
|
+
# - AUTO_PUSH_BRANCH_ALLOWLIST: comma-separated branches/patterns eligible for
|
|
144
|
+
# auto-push. Protected/default branches are denied unless allowlisted.
|
|
145
|
+
SYNC_POLICY_MODE=disabled
|
|
146
|
+
SYNC_CUSTOM_PHASES=
|
|
147
|
+
ALLOW_AUTO_PUSH=1
|
|
148
|
+
AUTO_PUSH_BRANCH_ALLOWLIST=main
|
|
149
|
+
#
|
|
150
|
+
# Knowledge curation
|
|
151
|
+
# - EARLY_RESEARCH: 0|1 (PO/TL search web during intake/architecture)
|
|
152
|
+
# - INTAKE_GUIDED_MODE: 0|1 (guided intake follow-up/options/research behavior)
|
|
153
|
+
# - INTAKE_SUBAGENT_FALLBACK: deny|allow (deny by default; when deny, missing
|
|
154
|
+
# role-specific intake subagent capability fails fast)
|
|
155
|
+
# - INTAKE_WORK_ITEM_KIND: story|bug (default story; bug selects BUG-#### path per DEC-0061 / US-0079)
|
|
156
|
+
# - ID_NAMESPACE_BOOTSTRAP: 0|1 (optional fresh-project ID bootstrap mode; when 1, allow first IDs to start at 0001 only if deterministic freshness checks pass)
|
|
157
|
+
# - TOKEN_PROFILE: lean|balanced|full (tiered token-cost profile defaults)
|
|
158
|
+
# TOKEN_PROFILE controls context breadth / token cost only (DEC-0062 / US-0092).
|
|
159
|
+
# - lean: lowest context breadth / token cost defaults
|
|
160
|
+
# - balanced: default profile; moderate context breadth
|
|
161
|
+
# - full: highest context breadth / token cost for complex work
|
|
162
|
+
# - STATE_HOT_MAX_LINES: integer >= 200 (hot-surface soft cap trigger for
|
|
163
|
+
# archival rollover checks)
|
|
164
|
+
# - STATE_HOT_MAX_CHECKPOINTS: integer >= 10 (max recent checkpoints to retain
|
|
165
|
+
# in `state.md` after rollover)
|
|
166
|
+
# - PO_TO_TL_HOT_MAX_LINES: integer >= 200 (handoff hot-surface line cap)
|
|
167
|
+
# - PO_TO_TL_HOT_MAX_SECTIONS: integer >= 10 (max top-level ## sections retained)
|
|
168
|
+
# - ARCH_HOT_MAX_LINES: integer >= 500 (architecture hot-surface line cap)
|
|
169
|
+
# - ARCH_HOT_MAX_STORY_SECTIONS: integer >= 20 (max # US-xxxx story sections retained)
|
|
170
|
+
# - Manual-override precedence: explicit flag values in this file remain authoritative
|
|
171
|
+
# for that flag and override profile defaults.
|
|
172
|
+
#
|
|
173
|
+
# Delivery mode (US-0096 / DEC-0082)
|
|
174
|
+
# - DELIVERY_MODE: standard|ultra_lean|mega_quick (default standard; unset = standard)
|
|
175
|
+
# - LEAN_MEMORY_READ: 0|1 (default 1 when pack/active-context paths exist)
|
|
176
|
+
# - LEAN_MEMORY_WRITE: 0|1 (default 1 when pack/active-context paths exist)
|
|
177
|
+
# - LEAN_COLD_READ_MAX_SECTIONS: int >= 1 (default 4)
|
|
178
|
+
# - LEAN_STATE_INDEX_ROWS: int >= 30 (default 80)
|
|
179
|
+
# - AUTO_DELIVERY_ROUTING: scratchpad_only|backlog_then_scratchpad (default scratchpad_only)
|
|
180
|
+
# Tranche A default hot caps (US-0096): example uses 1000/650/3000; explicit values here override.
|
|
181
|
+
DELIVERY_MODE=standard
|
|
182
|
+
LEAN_MEMORY_READ=1
|
|
183
|
+
LEAN_MEMORY_WRITE=1
|
|
184
|
+
LEAN_COLD_READ_MAX_SECTIONS=4
|
|
185
|
+
LEAN_STATE_INDEX_ROWS=80
|
|
186
|
+
AUTO_DELIVERY_ROUTING=scratchpad_only
|
|
187
|
+
EARLY_RESEARCH=1
|
|
188
|
+
INTAKE_GUIDED_MODE=1
|
|
189
|
+
INTAKE_SUBAGENT_FALLBACK=deny
|
|
190
|
+
INTAKE_WORK_ITEM_KIND=story
|
|
191
|
+
ID_NAMESPACE_BOOTSTRAP=0
|
|
192
|
+
TOKEN_PROFILE=lean
|
|
193
|
+
STATE_HOT_MAX_LINES=1000
|
|
194
|
+
STATE_HOT_MAX_CHECKPOINTS=80
|
|
195
|
+
PO_TO_TL_HOT_MAX_LINES=650
|
|
196
|
+
PO_TO_TL_HOT_MAX_SECTIONS=60
|
|
197
|
+
ARCH_HOT_MAX_LINES=3000
|
|
198
|
+
ARCH_HOT_MAX_STORY_SECTIONS=120
|
|
199
|
+
|
|
200
|
+
# Publish targets (US-0054)
|
|
201
|
+
# - RELEASE_PUBLISH_MODE: disabled|confirm|auto
|
|
202
|
+
# - disabled: skip post-release publish target execution
|
|
203
|
+
# - confirm: require explicit operator confirmation before publish (default)
|
|
204
|
+
# - auto: allow publish without confirmation (explicit opt-in)
|
|
205
|
+
# - RELEASE_TARGETS_FILE: canonical target config path
|
|
206
|
+
# - RELEASE_TARGETS_DEFAULT: comma-separated default target IDs (optional)
|
|
207
|
+
RELEASE_PUBLISH_MODE=disabled
|
|
208
|
+
RELEASE_TARGETS_FILE=docs/engineering/release-targets.json
|
|
209
|
+
RELEASE_TARGETS_DEFAULT=
|
|
210
|
+
|
|
211
|
+
#
|
|
212
|
+
# Security review
|
|
213
|
+
# - SECURITY_REVIEW: 0|1 (enable optional security/compliance review; default off)
|
|
214
|
+
# - COMPLIANCE_PROFILES: comma-separated values (GDPR,SOC2,HIPAA,PCI-DSS,ISO27001)
|
|
215
|
+
# Empty value means general security best practices only.
|
|
216
|
+
# When SECURITY_REVIEW=0, the workflow adds zero security-review overhead.
|
|
217
|
+
SECURITY_REVIEW=0
|
|
218
|
+
COMPLIANCE_PROFILES=GDPR
|
|
219
|
+
|
|
220
|
+
# Cross-repo compatibility observability
|
|
221
|
+
# - CROSS_REPO_OBSERVABILITY: 0|1 (enable compatibility visibility and checks)
|
|
222
|
+
# - COMPATIBILITY_GATE_ON_CRITICAL: 0|1 (when enabled, critical unresolved
|
|
223
|
+
# compatibility findings trigger decision gate before release)
|
|
224
|
+
# - COMPATIBILITY_SOURCES: semicolon-separated sources
|
|
225
|
+
# (repo=<path|url>,module=<id>,contract=<path|url>,docs=<path|url>)
|
|
226
|
+
CROSS_REPO_OBSERVABILITY=0
|
|
227
|
+
COMPATIBILITY_GATE_ON_CRITICAL=1
|
|
228
|
+
COMPATIBILITY_SOURCES=
|
|
229
|
+
|
|
230
|
+
# Component-scoped execution mode
|
|
231
|
+
# - COMPONENT_SCOPE_MODE: 0|1 (enable scoped planning/execution guardrails)
|
|
232
|
+
# - TARGET_COMPONENTS: comma-separated component IDs intended in scope
|
|
233
|
+
COMPONENT_SCOPE_MODE=0
|
|
234
|
+
TARGET_COMPONENTS=
|
|
235
|
+
|
|
236
|
+
# Optional spec-pack documentation (US-0031)
|
|
237
|
+
# - SPEC_PACK_MODE: 0|1 (enable Design Concept, CRS, Technical Spec generation/validation; default 0)
|
|
238
|
+
# When 0, intake/architecture/release add no required spec-pack steps.
|
|
239
|
+
SPEC_PACK_MODE=0
|
|
240
|
+
|
|
241
|
+
# Optional user-guide documentation (US-0032)
|
|
242
|
+
# - USER_GUIDE_MODE: 0|1 (enable per-feature user guides at docs/user-guides/US-xxxx.md; default 0)
|
|
243
|
+
# When 0, intake/architecture/sprint-plan/execute/qa/release add no required user-guide steps or blocking checks.
|
|
244
|
+
USER_GUIDE_MODE=0
|
|
245
|
+
|
|
246
|
+
# Documentation audience profile (DEC-0059)
|
|
247
|
+
# - DOC_AUDIENCE_PROFILE: user|developer|both (empty -> both during transition)
|
|
248
|
+
# - DOC_DETAIL_LEVEL: concise|balanced|technical-deep (empty -> balanced during transition)
|
|
249
|
+
DOC_AUDIENCE_PROFILE=both
|
|
250
|
+
DOC_DETAIL_LEVEL=balanced
|
|
251
|
+
|
|
252
|
+
# README feature coverage gate (US-0091 / DEC-0074)
|
|
253
|
+
# - README_FEATURE_COVERAGE_ENFORCE: 0|1 (default 0 until backfill + --report green)
|
|
254
|
+
# When 0, /release step 3f skips (grandfathering). When 1, static coverage is blocking.
|
|
255
|
+
README_FEATURE_COVERAGE_ENFORCE=1
|
|
256
|
+
|
|
257
|
+
#
|
|
258
|
+
# ## Project README coverage (US-0097 / DEC-0083)
|
|
259
|
+
# Project-owned root README bootstrap + per-story catalog growth.
|
|
260
|
+
# - PROJECT_README_ENFORCE: 0|1 (default 1 post-bootstrap)
|
|
261
|
+
# When 0, /release step 3g skips (migration/grandfathering only). When 1, blocking.
|
|
262
|
+
# Flip 0→1 only after validate_project_readme_coverage.py --report shows coverage_missing: [].
|
|
263
|
+
# - FRAMEWORK_KIT_REPO: 0|1 (default 0)
|
|
264
|
+
# When 1 (its-magic dev kit repo only), skip execute 23a/23b and project validator root check.
|
|
265
|
+
# Consumer repos never set FRAMEWORK_KIT_REPO=1.
|
|
266
|
+
PROJECT_README_ENFORCE=1
|
|
267
|
+
FRAMEWORK_KIT_REPO=1
|
|
268
|
+
|
|
269
|
+
#
|
|
270
|
+
# ## Browser UAT self-test (US-0093 / DEC-0079)
|
|
271
|
+
# Two-tier browser probe: stdlib lib classifies + agent owns Cursor browser MCP (BUG-0006).
|
|
272
|
+
# - UAT_BROWSER_PROBE_MODE: cursor|http_fallback|playwright_fallback (default cursor)
|
|
273
|
+
# - cursor: agent executes MCP sequence; lib emits plan + UAT_PROBE_UNRESOLVED until evidence
|
|
274
|
+
# - http_fallback: stdlib HTTP GET (CI recipe — set this in CI)
|
|
275
|
+
# - playwright_fallback: subprocess Playwright primary; HTTP fallback when missing
|
|
276
|
+
# - UAT_BROWSER_FALLBACK_CHAIN: 0|1 (default 1; enable HTTP → Playwright after MCP unavailable)
|
|
277
|
+
# - UAT_PROCESS_HEALTH_POLL_SECONDS: positive int (default 60; process_health readiness cap)
|
|
278
|
+
# - UAT_PROCESS_HEALTH_POLL_INTERVAL_SECONDS: positive int (default 2; poll interval)
|
|
279
|
+
# - DEV_SERVER_PORT: int (optional; URL/port inference override)
|
|
280
|
+
# - DEV_SERVER_COMMAND: shell command (optional; process_health startup override)
|
|
281
|
+
# Interaction: orthogonal to PERMISSION_MODE and Cursor browser approval modes (manual / allow-list /
|
|
282
|
+
# auto-run per vendor docs). Health URLs from docs/engineering/runtime-connectivity.md first.
|
|
283
|
+
UAT_BROWSER_PROBE_MODE=cursor
|
|
284
|
+
UAT_BROWSER_FALLBACK_CHAIN=1
|
|
285
|
+
UAT_PROCESS_HEALTH_POLL_SECONDS=60
|
|
286
|
+
UAT_PROCESS_HEALTH_POLL_INTERVAL_SECONDS=2
|
|
287
|
+
DEV_SERVER_PORT=
|
|
288
|
+
DEV_SERVER_COMMAND=
|
|
289
|
+
|
|
290
|
+
#
|
|
291
|
+
# ## Dev environment auto-launch (US-0098 / DEC-0084)
|
|
292
|
+
# Execute-phase bounded rebuild/relaunch + Connect surfacing — distinct from US-0065 phase QA,
|
|
293
|
+
# US-0086 test routing, and US-0067 release hints. Orthogonal to AUTO_REMOTE_AUTOMATION_PROFILE.
|
|
294
|
+
# When off, execute step 24 skipped with zero overhead.
|
|
295
|
+
# - DEV_AUTO_LAUNCH_PROFILE: off|deterministic_v1 (default off)
|
|
296
|
+
# - DEV_ENVIRONMENT_CONFIG: repo-relative path (default .cursor/dev-environment.json)
|
|
297
|
+
DEV_AUTO_LAUNCH_PROFILE=off
|
|
298
|
+
DEV_ENVIRONMENT_CONFIG=.cursor/dev-environment.json
|
|
299
|
+
|
|
300
|
+
#
|
|
301
|
+
# ## Caveman mode (US-0089)
|
|
302
|
+
# Response-side voice toggle. Default off. Composition is orthogonal to
|
|
303
|
+
# TOKEN_PROFILE (DEC-0035 / US-0080) and AUTO_QUIET (US-0088) --
|
|
304
|
+
# TOKEN_PROFILE controls context breadth, CAVEMAN_MODE controls reply voice;
|
|
305
|
+
# neither substitutes for the other.
|
|
306
|
+
# - CAVEMAN_MODE: 0|1 (default 0; absence = 0)
|
|
307
|
+
# - CAVEMAN_LEVEL: lite|full|ultra (empty; with MODE=1 empty -> treat as full;
|
|
308
|
+
# unknown value -> CAVEMAN_LEVEL_UNKNOWN and fall back to pre-US-0089 voice)
|
|
309
|
+
#
|
|
310
|
+
# ## Caveman input compression (US-0090 / DEC-0073)
|
|
311
|
+
# Input-side prose minification via scripts/caveman_compress_input.py. Default off.
|
|
312
|
+
# Orthogonal to CAVEMAN_MODE (reply voice) and TOKEN_PROFILE (context breadth).
|
|
313
|
+
# - CAVEMAN_COMPRESS_INPUT: 0|1 (default 0) -- activation gate; must be 1 for --write
|
|
314
|
+
# - CAVEMAN_FILE_SCOPE: string (empty default) -- allow-list of files eligible for compression:
|
|
315
|
+
# * empty: no files in scope (fail-closed on --write with CAVEMAN_COMPRESS_SCOPE_EMPTY)
|
|
316
|
+
# * named profile: e.g. docs-prose-only (user-guides, runbook, state-archive, handoffs/archive)
|
|
317
|
+
# * raw globs: e.g. docs/user-guides/**/*.md,handoffs/archive/*.md (forward slashes only)
|
|
318
|
+
# * hybrid: profile:docs-prose-only;globs:handoffs/archive/*.md
|
|
319
|
+
# Mutation requires COMPRESS_INPUT=1 + non-empty scope + CLI --write; use --dry-run first.
|
|
320
|
+
# Originals land in docs/.caveman-originals/<path>; deny-list always wins over allow.
|
|
321
|
+
CAVEMAN_MODE=1
|
|
322
|
+
CAVEMAN_LEVEL=full
|
|
323
|
+
CAVEMAN_COMPRESS_INPUT=0
|
|
324
|
+
CAVEMAN_FILE_SCOPE=
|
package/template/.cursorignore
CHANGED