its-magic 0.1.2-9 → 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.
Files changed (232) hide show
  1. package/README.md +1602 -755
  2. package/bin/its-magic.js +121 -11
  3. package/bin/postinstall.js +21 -0
  4. package/installer.ps1 +759 -0
  5. package/installer.py +981 -0
  6. package/installer.sh +649 -0
  7. package/package.json +18 -14
  8. package/scripts/check_intake_template_parity.py +284 -0
  9. package/scripts/doc_profile_lib.py +415 -0
  10. package/scripts/guard_installer_publish.py +88 -0
  11. package/scripts/intake_bug_routing_guard.py +67 -0
  12. package/scripts/intake_evidence_lib.py +802 -0
  13. package/scripts/intake_evidence_validate.py +73 -0
  14. package/scripts/materialize_codebase_map.py +184 -0
  15. package/scripts/remote_config_summary.py +243 -0
  16. package/template/.cursor/agents/curator.mdc +35 -0
  17. package/template/.cursor/agents/dev.mdc +29 -0
  18. package/template/.cursor/agents/po.mdc +141 -0
  19. package/template/.cursor/agents/qa.mdc +28 -0
  20. package/template/.cursor/agents/release.mdc +28 -0
  21. package/template/.cursor/agents/security.mdc +98 -0
  22. package/template/.cursor/agents/tech-lead.mdc +57 -0
  23. package/template/.cursor/commands/architecture.md +127 -0
  24. package/template/.cursor/commands/ask.md +55 -0
  25. package/template/.cursor/commands/auto.md +533 -0
  26. package/template/.cursor/commands/discovery.md +47 -0
  27. package/template/.cursor/commands/execute.md +343 -0
  28. package/template/.cursor/commands/intake.md +323 -0
  29. package/template/.cursor/commands/map-codebase.md +46 -0
  30. package/template/.cursor/commands/memory-audit.md +175 -0
  31. package/template/.cursor/commands/milestone-complete.md +51 -0
  32. package/template/.cursor/commands/milestone-start.md +59 -0
  33. package/template/.cursor/commands/pause.md +64 -0
  34. package/{.cursor/commands/gsd-phase-context.md → template/.cursor/commands/phase-context.md} +6 -2
  35. package/template/.cursor/commands/plan-verify.md +34 -0
  36. package/template/.cursor/commands/qa.md +226 -0
  37. package/template/.cursor/commands/quick.md +41 -0
  38. package/template/.cursor/commands/refresh-context.md +82 -0
  39. package/template/.cursor/commands/release.md +505 -0
  40. package/template/.cursor/commands/research.md +49 -0
  41. package/template/.cursor/commands/resume.md +67 -0
  42. package/template/.cursor/commands/security-review.md +81 -0
  43. package/template/.cursor/commands/sprint-plan.md +103 -0
  44. package/template/.cursor/commands/status-reconcile.md +95 -0
  45. package/template/.cursor/commands/verify-work.md +152 -0
  46. package/template/.cursor/dev-environment.json.example +22 -0
  47. package/{.cursor → template/.cursor}/hooks/README.md +3 -2
  48. package/{.cursor/hooks/gsd-hook.py → template/.cursor/hooks/hook.py} +15 -6
  49. package/template/.cursor/hooks.json +26 -0
  50. package/template/.cursor/remote.json +31 -0
  51. package/template/.cursor/rules/caveman.mdc +184 -0
  52. package/template/.cursor/rules/coding-standards.mdc +39 -0
  53. package/template/.cursor/rules/core.mdc +111 -0
  54. package/template/.cursor/rules/handoffs.mdc +27 -0
  55. package/template/.cursor/rules/quality.mdc +49 -0
  56. package/template/.cursor/scratchpad.local.example.md +323 -0
  57. package/template/.cursor/scratchpad.md +324 -0
  58. package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/SKILL.md +2 -2
  59. package/template/.cursorignore +6 -0
  60. package/template/.env.example +28 -0
  61. package/template/.github/workflows/ci.yml +194 -0
  62. package/{.github → template/.github}/workflows/deploy.yml +5 -2
  63. package/template/.its-magic-version +1 -0
  64. package/template/README.md +1602 -0
  65. package/template/decisions/DEC-0001.md +11 -0
  66. package/template/decisions/DEC-0002.md +11 -0
  67. package/template/docs/developer/README.md +44 -0
  68. package/template/docs/engineering/architecture.md +9 -0
  69. package/template/docs/engineering/artifact-ordering-policy.md +48 -0
  70. package/template/docs/engineering/artifact-ownership-policy.md +57 -0
  71. package/template/docs/engineering/auto-orchestration-reference.md +1211 -0
  72. package/{docs → template/docs}/engineering/codebase-map.md +0 -5
  73. package/template/docs/engineering/compatibility-report.md +20 -0
  74. package/template/docs/engineering/compatibility-signals.md +7 -0
  75. package/template/docs/engineering/component-scope-report.md +16 -0
  76. package/template/docs/engineering/component-scope.md +19 -0
  77. package/template/docs/engineering/context/installer-owned-paths.manifest +96 -0
  78. package/template/docs/engineering/context/readme-section-affinity.json +30 -0
  79. package/template/docs/engineering/decisions.md +16 -0
  80. package/template/docs/engineering/legacy-drift-audit.md +21 -0
  81. package/template/docs/engineering/manifests/components/api-gateway.manifest.yaml +12 -0
  82. package/template/docs/engineering/manifests/registry.manifest.yaml +20 -0
  83. package/template/docs/engineering/manifests/repo.manifest.yaml +11 -0
  84. package/template/docs/engineering/phase-context.md +16 -0
  85. package/template/docs/engineering/release-targets.json +123 -0
  86. package/template/docs/engineering/research.md +29 -0
  87. package/template/docs/engineering/runbook.md +2320 -0
  88. package/template/docs/engineering/runtime-connectivity.md +81 -0
  89. package/template/docs/engineering/security-review.md +33 -0
  90. package/template/docs/engineering/spec-pack/README.md +20 -0
  91. package/template/docs/engineering/state-archive/README.md +15 -0
  92. package/template/docs/engineering/state.md +20 -0
  93. package/template/docs/engineering/status-normalization-report.md +19 -0
  94. package/template/docs/engineering/token-cost-parity-manifest.md +16 -0
  95. package/template/docs/engineering/us-0084-remote-e2e.md +44 -0
  96. package/template/docs/product/acceptance.md +1 -0
  97. package/template/docs/product/backlog.md +5 -0
  98. package/template/docs/product/vision.md +11 -0
  99. package/template/docs/user-guides/README.md +40 -0
  100. package/{handoffs → template/handoffs}/dev_to_qa.md +0 -3
  101. package/{handoffs → template/handoffs}/po_to_tl.md +0 -3
  102. package/{handoffs → template/handoffs}/qa_to_dev.md +1 -2
  103. package/template/handoffs/release_notes.md +51 -0
  104. package/template/handoffs/release_queue.md +47 -0
  105. package/template/handoffs/release_to_dev.md +31 -0
  106. package/template/handoffs/releases/Sxxxx-release-notes.md +62 -0
  107. package/template/handoffs/resume_brief.md +14 -0
  108. package/{handoffs → template/handoffs}/tl_to_dev.md +0 -2
  109. package/template/handoffs/token_cost_runs/README.md +26 -0
  110. package/template/its_magic/.its-magic-version +1 -0
  111. package/template/its_magic/README.md +9 -0
  112. package/template/scripts/auto_outer_driver.py +521 -0
  113. package/template/scripts/caveman_compress_input.py +903 -0
  114. package/template/scripts/check_downstream_ci_guard.py +67 -0
  115. package/template/scripts/check_intake_template_parity.py +284 -0
  116. package/template/scripts/check_token_cost_parity.py +69 -0
  117. package/template/scripts/dev_environment_lib.py +463 -0
  118. package/template/scripts/doc_profile_lib.py +415 -0
  119. package/template/scripts/downstream_ci_guard_lib.py +222 -0
  120. package/template/scripts/enforce-triad-hot-surface.py +753 -0
  121. package/template/scripts/guard_installer_publish.py +88 -0
  122. package/template/scripts/intake_bug_resume_brief_refresh.py +303 -0
  123. package/template/scripts/intake_bug_routing_guard.py +67 -0
  124. package/template/scripts/intake_evidence_lib.py +802 -0
  125. package/template/scripts/intake_evidence_validate.py +73 -0
  126. package/template/scripts/materialize_codebase_map.py +184 -0
  127. package/template/scripts/pack_json_validate.py +130 -0
  128. package/template/scripts/project_readme_coverage_lib.py +417 -0
  129. package/template/scripts/readme_feature_coverage_lib.py +608 -0
  130. package/template/scripts/remote_config_summary.py +243 -0
  131. package/template/scripts/sync_push_gates.py +198 -0
  132. package/template/scripts/token_cost_compare.py +40 -0
  133. package/template/scripts/token_cost_lib.py +108 -0
  134. package/template/scripts/uat_probe_lib.py +868 -0
  135. package/template/scripts/validate-and-push.ps1 +280 -0
  136. package/template/scripts/validate-and-push.sh +243 -0
  137. package/template/scripts/validate_doc_profile.py +103 -0
  138. package/template/scripts/validate_project_readme_coverage.py +151 -0
  139. package/template/scripts/validate_readme_feature_coverage.py +140 -0
  140. package/template/sprints/S0001/progress.md +1 -0
  141. package/template/sprints/S0001/qa-findings.md +9 -0
  142. package/template/sprints/S0001/release-findings.md +24 -0
  143. package/template/sprints/S0001/sprint.md +9 -0
  144. package/template/sprints/S0001/summary.md +7 -0
  145. package/template/sprints/S0001/tasks.md +1 -0
  146. package/template/sprints/S0001/uat.json +6 -0
  147. package/template/sprints/S0001/uat.md +5 -0
  148. package/template/sprints/quick/Q0001/summary.md +1 -0
  149. package/{sprints → template/sprints}/quick/Q0001/task.json +0 -1
  150. package/.cursor/agents/curator.mdc +0 -21
  151. package/.cursor/agents/dev.mdc +0 -20
  152. package/.cursor/agents/po.mdc +0 -19
  153. package/.cursor/agents/qa.mdc +0 -19
  154. package/.cursor/agents/release.mdc +0 -19
  155. package/.cursor/agents/tech-lead.mdc +0 -21
  156. package/.cursor/commands/gsd-architecture.md +0 -29
  157. package/.cursor/commands/gsd-auto.md +0 -27
  158. package/.cursor/commands/gsd-discovery.md +0 -27
  159. package/.cursor/commands/gsd-execute.md +0 -32
  160. package/.cursor/commands/gsd-intake.md +0 -28
  161. package/.cursor/commands/gsd-map-codebase.md +0 -25
  162. package/.cursor/commands/gsd-milestone-complete.md +0 -24
  163. package/.cursor/commands/gsd-milestone-start.md +0 -26
  164. package/.cursor/commands/gsd-pause.md +0 -25
  165. package/.cursor/commands/gsd-plan-verify.md +0 -26
  166. package/.cursor/commands/gsd-qa.md +0 -28
  167. package/.cursor/commands/gsd-quick.md +0 -24
  168. package/.cursor/commands/gsd-refresh-context.md +0 -26
  169. package/.cursor/commands/gsd-release.md +0 -29
  170. package/.cursor/commands/gsd-research.md +0 -28
  171. package/.cursor/commands/gsd-resume.md +0 -26
  172. package/.cursor/commands/gsd-sprint-plan.md +0 -30
  173. package/.cursor/commands/gsd-verify-work.md +0 -25
  174. package/.cursor/hooks.json +0 -26
  175. package/.cursor/plans/cursor-gsd-team-kit_8cfee9b8.plan.md +0 -57
  176. package/.cursor/remote.json +0 -18
  177. package/.cursor/rules/gsd-core.mdc +0 -18
  178. package/.cursor/rules/gsd-handoffs.mdc +0 -10
  179. package/.cursor/rules/gsd-quality.mdc +0 -15
  180. package/.cursor/scratchpad.md +0 -34
  181. package/.github/workflows/ci.yml +0 -47
  182. package/decisions/DEC-0001.md +0 -21
  183. package/decisions/DEC-0002.md +0 -21
  184. package/docs/engineering/architecture.md +0 -354
  185. package/docs/engineering/decisions.md +0 -6
  186. package/docs/engineering/research.md +0 -11
  187. package/docs/engineering/runbook.md +0 -32
  188. package/docs/engineering/state.md +0 -33
  189. package/docs/product/acceptance.md +0 -6
  190. package/docs/product/backlog.md +0 -7
  191. package/docs/product/vision.md +0 -46
  192. package/gsd-installer.ps1 +0 -189
  193. package/gsd-installer.py +0 -195
  194. package/gsd-installer.sh +0 -201
  195. package/handoffs/release_notes.md +0 -14
  196. package/handoffs/resume_brief.md +0 -8
  197. package/milestones/M0001/milestone.json +0 -7
  198. package/milestones/M0001/phases.json +0 -9
  199. package/milestones/M0001/progress.md +0 -3
  200. package/milestones/M0001/summary.md +0 -3
  201. package/scripts/generate-release-notes.ps1 +0 -74
  202. package/scripts/generate-release-notes.sh +0 -63
  203. package/scripts/release-all.ps1 +0 -423
  204. package/scripts/release-all.sh +0 -226
  205. package/sprints/S0001/progress.md +0 -4
  206. package/sprints/S0001/qa-findings.md +0 -113
  207. package/sprints/S0001/sprint.md +0 -70
  208. package/sprints/S0001/summary.md +0 -46
  209. package/sprints/S0001/tasks.md +0 -35
  210. package/sprints/S0001/uat.json +0 -8
  211. package/sprints/S0001/uat.md +0 -8
  212. package/sprints/quick/Q0001/summary.md +0 -3
  213. /package/{.cursor/rules/gsd-escalation.mdc → template/.cursor/rules/escalation.mdc} +0 -0
  214. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/acceptance.json +0 -0
  215. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/acceptance.md +0 -0
  216. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/architecture.json +0 -0
  217. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/architecture.md +0 -0
  218. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/decision.json +0 -0
  219. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/decision.md +0 -0
  220. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/handoff.json +0 -0
  221. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/handoff.md +0 -0
  222. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/milestone.json +0 -0
  223. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/phase-context.json +0 -0
  224. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/plan-verify.json +0 -0
  225. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/sprint.json +0 -0
  226. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/sprint.md +0 -0
  227. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/story.json +0 -0
  228. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/story.md +0 -0
  229. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/uat.json +0 -0
  230. /package/{docs → template/docs}/engineering/context/phase-template.json +0 -0
  231. /package/{docs → template/docs}/engineering/dependencies.json +0 -0
  232. /package/{sprints → template/sprints}/S0001/plan-verify.json +0 -0
@@ -0,0 +1,323 @@
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=0
18
+ RUN_TESTS_ON_EDIT=0
19
+ AUTO_IMPLEMENTATION_LOOP=0
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=0
63
+ AUTO_FLOW_MODE=auto_until_decision
64
+ PHASE_MODE=interactive
65
+ PERMISSION_MODE=interactive
66
+ AUTO_INSTALL_DEPS=0
67
+ AUTO_RELEASE_NOTES=1
68
+ AUTO_BACKLOG_DRAIN=0
69
+ AUTO_BACKLOG_MAX_STORIES=1
70
+ AUTO_BACKLOG_ON_BLOCK=stop
71
+ AUTO_STORY_SELECTION=priority_then_backlog_order
72
+ AUTO_EXECUTE_BULK=0
73
+ AUTO_EXECUTE_MAX_ITEMS=1
74
+ AUTO_EXECUTE_ON_BLOCK=stop
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=stop
81
+ AUTO_BLOCK_RETRY_MAX=3
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=manual
146
+ SYNC_CUSTOM_PHASES=
147
+ ALLOW_AUTO_PUSH=0
148
+ AUTO_PUSH_BRANCH_ALLOWLIST=
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): 1000/650/3000 — explicit values 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=balanced
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=confirm
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
+ README_FEATURE_COVERAGE_ENFORCE=1
255
+
256
+ #
257
+ # ## Project README coverage (US-0097 / DEC-0083)
258
+ # Project-owned root README bootstrap + per-story catalog growth.
259
+ # - PROJECT_README_ENFORCE: 0|1 (default 1 post-bootstrap)
260
+ # When 0, /release step 3g skips (migration/grandfathering only). When 1, blocking.
261
+ # Flip 0→1 only after validate_project_readme_coverage.py --report shows coverage_missing: [].
262
+ # - FRAMEWORK_KIT_REPO: 0|1 (default 0)
263
+ # When 1 (its-magic dev kit repo only), skip execute 23a/23b and project validator root check.
264
+ # Consumer repos never set FRAMEWORK_KIT_REPO=1.
265
+ PROJECT_README_ENFORCE=1
266
+ FRAMEWORK_KIT_REPO=0
267
+
268
+ #
269
+ # ## Browser UAT self-test (US-0093 / DEC-0079)
270
+ # Two-tier browser probe: stdlib lib classifies + agent owns Cursor browser MCP (BUG-0006).
271
+ # - UAT_BROWSER_PROBE_MODE: cursor|http_fallback|playwright_fallback (default cursor)
272
+ # - cursor: agent executes MCP sequence; lib emits plan + UAT_PROBE_UNRESOLVED until evidence
273
+ # - http_fallback: stdlib HTTP GET (CI recipe — set this in CI)
274
+ # - playwright_fallback: subprocess Playwright primary; HTTP fallback when missing
275
+ # - UAT_BROWSER_FALLBACK_CHAIN: 0|1 (default 1; enable HTTP → Playwright after MCP unavailable)
276
+ # - UAT_PROCESS_HEALTH_POLL_SECONDS: positive int (default 60; process_health readiness cap)
277
+ # - UAT_PROCESS_HEALTH_POLL_INTERVAL_SECONDS: positive int (default 2; poll interval)
278
+ # - DEV_SERVER_PORT: int (optional; URL/port inference override)
279
+ # - DEV_SERVER_COMMAND: shell command (optional; process_health startup override)
280
+ # Interaction: orthogonal to PERMISSION_MODE and Cursor browser approval modes (manual / allow-list /
281
+ # auto-run per vendor docs). Health URLs from docs/engineering/runtime-connectivity.md first.
282
+ UAT_BROWSER_PROBE_MODE=cursor
283
+ UAT_BROWSER_FALLBACK_CHAIN=1
284
+ UAT_PROCESS_HEALTH_POLL_SECONDS=60
285
+ UAT_PROCESS_HEALTH_POLL_INTERVAL_SECONDS=2
286
+ DEV_SERVER_PORT=
287
+ DEV_SERVER_COMMAND=
288
+
289
+ #
290
+ # ## Dev environment auto-launch (US-0098 / DEC-0084)
291
+ # Execute-phase bounded rebuild/relaunch + Connect surfacing — distinct from US-0065 phase QA,
292
+ # US-0086 test routing, and US-0067 release hints. Orthogonal to AUTO_REMOTE_AUTOMATION_PROFILE.
293
+ # When off, execute step 24 skipped with zero overhead.
294
+ # - DEV_AUTO_LAUNCH_PROFILE: off|deterministic_v1 (default off)
295
+ # - DEV_ENVIRONMENT_CONFIG: repo-relative path (default .cursor/dev-environment.json)
296
+ DEV_AUTO_LAUNCH_PROFILE=off
297
+ DEV_ENVIRONMENT_CONFIG=.cursor/dev-environment.json
298
+
299
+ #
300
+ # ## Caveman mode (US-0089)
301
+ # Response-side voice toggle. Default off. Composition is orthogonal to
302
+ # TOKEN_PROFILE (DEC-0035 / US-0080) and AUTO_QUIET (US-0088) --
303
+ # TOKEN_PROFILE controls context breadth, CAVEMAN_MODE controls reply voice;
304
+ # neither substitutes for the other.
305
+ # - CAVEMAN_MODE: 0|1 (default 0; absence = 0)
306
+ # - CAVEMAN_LEVEL: lite|full|ultra (empty; with MODE=1 empty -> treat as full;
307
+ # unknown value -> CAVEMAN_LEVEL_UNKNOWN and fall back to pre-US-0089 voice)
308
+ #
309
+ # ## Caveman input compression (US-0090 / DEC-0073)
310
+ # Input-side prose minification via scripts/caveman_compress_input.py. Default off.
311
+ # Orthogonal to CAVEMAN_MODE (reply voice) and TOKEN_PROFILE (context breadth).
312
+ # - CAVEMAN_COMPRESS_INPUT: 0|1 (default 0) -- activation gate; must be 1 for --write
313
+ # - CAVEMAN_FILE_SCOPE: string (empty default) -- allow-list of files eligible for compression:
314
+ # * empty: no files in scope (fail-closed on --write with CAVEMAN_COMPRESS_SCOPE_EMPTY)
315
+ # * named profile: e.g. docs-prose-only (user-guides, runbook, state-archive, handoffs/archive)
316
+ # * raw globs: e.g. docs/user-guides/**/*.md,handoffs/archive/*.md (forward slashes only)
317
+ # * hybrid: profile:docs-prose-only;globs:handoffs/archive/*.md
318
+ # Mutation requires COMPRESS_INPUT=1 + non-empty scope + CLI --write; use --dry-run first.
319
+ # Originals land in docs/.caveman-originals/<path>; deny-list always wins over allow.
320
+ CAVEMAN_MODE=0
321
+ CAVEMAN_LEVEL=
322
+ CAVEMAN_COMPRESS_INPUT=0
323
+ CAVEMAN_FILE_SCOPE=
@@ -0,0 +1,324 @@
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=
@@ -1,6 +1,6 @@
1
- # GSD Team Skill
1
+ # its-magic Skill
2
2
 
3
- This skill guides the AI dev team through the GSD workflow. It enforces
3
+ This skill guides the AI dev team through the its-magic workflow. It enforces
4
4
  artifact persistence, clear handoffs, and compact context packs.
5
5
 
6
6
  ## Workflow
@@ -0,0 +1,6 @@
1
+ # Agent exclusion — secrets must not be ingested by AI tools (US-0085 / DEC-0071)
2
+ .env
3
+ .env.local
4
+ .env.*
5
+ !.env.example
6
+ .cursor/dev-environment.json