its-magic 0.1.2-9 → 0.1.3-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/README.md +1602 -755
  2. package/bin/its-magic.js +121 -11
  3. package/bin/postinstall.js +93 -0
  4. package/installer.ps1 +759 -0
  5. package/installer.py +1036 -0
  6. package/installer.sh +649 -0
  7. package/package.json +18 -14
  8. package/scripts/check_intake_template_parity.py +312 -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 +523 -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/CHANGELOG.md +11 -0
  65. package/template/README.md +1602 -0
  66. package/template/decisions/DEC-0001.md +11 -0
  67. package/template/decisions/DEC-0002.md +11 -0
  68. package/template/docs/developer/README.md +44 -0
  69. package/template/docs/engineering/architecture.md +9 -0
  70. package/template/docs/engineering/artifact-ordering-policy.md +48 -0
  71. package/template/docs/engineering/artifact-ownership-policy.md +57 -0
  72. package/template/docs/engineering/auto-orchestration-reference.md +1211 -0
  73. package/{docs → template/docs}/engineering/codebase-map.md +0 -5
  74. package/template/docs/engineering/compatibility-report.md +20 -0
  75. package/template/docs/engineering/compatibility-signals.md +7 -0
  76. package/template/docs/engineering/component-scope-report.md +16 -0
  77. package/template/docs/engineering/component-scope.md +19 -0
  78. package/template/docs/engineering/context/installer-owned-paths.manifest +96 -0
  79. package/template/docs/engineering/context/readme-section-affinity.json +30 -0
  80. package/template/docs/engineering/decisions.md +16 -0
  81. package/template/docs/engineering/legacy-drift-audit.md +21 -0
  82. package/template/docs/engineering/manifests/components/api-gateway.manifest.yaml +12 -0
  83. package/template/docs/engineering/manifests/registry.manifest.yaml +20 -0
  84. package/template/docs/engineering/manifests/repo.manifest.yaml +11 -0
  85. package/template/docs/engineering/phase-context.md +16 -0
  86. package/template/docs/engineering/release-targets.json +123 -0
  87. package/template/docs/engineering/research.md +29 -0
  88. package/template/docs/engineering/runbook.md +2391 -0
  89. package/template/docs/engineering/runtime-connectivity.md +81 -0
  90. package/template/docs/engineering/security-review.md +33 -0
  91. package/template/docs/engineering/spec-pack/README.md +20 -0
  92. package/template/docs/engineering/state-archive/README.md +15 -0
  93. package/template/docs/engineering/state.md +20 -0
  94. package/template/docs/engineering/status-normalization-report.md +19 -0
  95. package/template/docs/engineering/token-cost-parity-manifest.md +16 -0
  96. package/template/docs/engineering/us-0084-remote-e2e.md +44 -0
  97. package/template/docs/product/acceptance.md +1 -0
  98. package/template/docs/product/backlog.md +5 -0
  99. package/template/docs/product/vision.md +11 -0
  100. package/template/docs/user-guides/README.md +40 -0
  101. package/{handoffs → template/handoffs}/dev_to_qa.md +0 -3
  102. package/{handoffs → template/handoffs}/po_to_tl.md +0 -3
  103. package/{handoffs → template/handoffs}/qa_to_dev.md +1 -2
  104. package/template/handoffs/release_notes.md +51 -0
  105. package/template/handoffs/release_queue.md +47 -0
  106. package/template/handoffs/release_to_dev.md +31 -0
  107. package/template/handoffs/releases/Sxxxx-release-notes.md +62 -0
  108. package/template/handoffs/releases/vX.Y.Z-release-notes.md.example +21 -0
  109. package/template/handoffs/resume_brief.md +14 -0
  110. package/{handoffs → template/handoffs}/tl_to_dev.md +0 -2
  111. package/template/handoffs/token_cost_runs/README.md +26 -0
  112. package/template/its_magic/.its-magic-version +1 -0
  113. package/template/its_magic/README.md +9 -0
  114. package/template/scripts/auto_outer_driver.py +521 -0
  115. package/template/scripts/caveman_compress_input.py +903 -0
  116. package/template/scripts/check_downstream_ci_guard.py +67 -0
  117. package/template/scripts/check_intake_template_parity.py +312 -0
  118. package/template/scripts/check_token_cost_parity.py +69 -0
  119. package/template/scripts/dev_environment_lib.py +601 -0
  120. package/template/scripts/doc_profile_lib.py +415 -0
  121. package/template/scripts/downstream_ci_guard_lib.py +222 -0
  122. package/template/scripts/enforce-triad-hot-surface.py +753 -0
  123. package/template/scripts/guard_installer_publish.py +88 -0
  124. package/template/scripts/intake_bug_resume_brief_refresh.py +303 -0
  125. package/template/scripts/intake_bug_routing_guard.py +67 -0
  126. package/template/scripts/intake_evidence_lib.py +802 -0
  127. package/template/scripts/intake_evidence_validate.py +73 -0
  128. package/template/scripts/materialize_codebase_map.py +184 -0
  129. package/template/scripts/pack_json_validate.py +130 -0
  130. package/template/scripts/project_readme_coverage_lib.py +417 -0
  131. package/template/scripts/readme_feature_coverage_lib.py +608 -0
  132. package/{scripts → template/scripts}/release-all.sh +27 -4
  133. package/template/scripts/release_changelog_backfill.py +153 -0
  134. package/template/scripts/release_changelog_lib.py +544 -0
  135. package/template/scripts/release_changelog_validate.py +134 -0
  136. package/template/scripts/remote_config_summary.py +243 -0
  137. package/template/scripts/sync_push_gates.py +198 -0
  138. package/template/scripts/token_cost_compare.py +40 -0
  139. package/template/scripts/token_cost_lib.py +108 -0
  140. package/template/scripts/uat_probe_lib.py +868 -0
  141. package/template/scripts/validate-and-push.ps1 +280 -0
  142. package/template/scripts/validate-and-push.sh +243 -0
  143. package/template/scripts/validate_doc_profile.py +103 -0
  144. package/template/scripts/validate_project_readme_coverage.py +151 -0
  145. package/template/scripts/validate_readme_feature_coverage.py +140 -0
  146. package/template/sprints/S0001/progress.md +1 -0
  147. package/template/sprints/S0001/qa-findings.md +9 -0
  148. package/template/sprints/S0001/release-findings.md +24 -0
  149. package/template/sprints/S0001/sprint.md +9 -0
  150. package/template/sprints/S0001/summary.md +7 -0
  151. package/template/sprints/S0001/tasks.md +1 -0
  152. package/template/sprints/S0001/uat.json +6 -0
  153. package/template/sprints/S0001/uat.md +5 -0
  154. package/template/sprints/quick/Q0001/summary.md +1 -0
  155. package/{sprints → template/sprints}/quick/Q0001/task.json +0 -1
  156. package/.cursor/agents/curator.mdc +0 -21
  157. package/.cursor/agents/dev.mdc +0 -20
  158. package/.cursor/agents/po.mdc +0 -19
  159. package/.cursor/agents/qa.mdc +0 -19
  160. package/.cursor/agents/release.mdc +0 -19
  161. package/.cursor/agents/tech-lead.mdc +0 -21
  162. package/.cursor/commands/gsd-architecture.md +0 -29
  163. package/.cursor/commands/gsd-auto.md +0 -27
  164. package/.cursor/commands/gsd-discovery.md +0 -27
  165. package/.cursor/commands/gsd-execute.md +0 -32
  166. package/.cursor/commands/gsd-intake.md +0 -28
  167. package/.cursor/commands/gsd-map-codebase.md +0 -25
  168. package/.cursor/commands/gsd-milestone-complete.md +0 -24
  169. package/.cursor/commands/gsd-milestone-start.md +0 -26
  170. package/.cursor/commands/gsd-pause.md +0 -25
  171. package/.cursor/commands/gsd-plan-verify.md +0 -26
  172. package/.cursor/commands/gsd-qa.md +0 -28
  173. package/.cursor/commands/gsd-quick.md +0 -24
  174. package/.cursor/commands/gsd-refresh-context.md +0 -26
  175. package/.cursor/commands/gsd-release.md +0 -29
  176. package/.cursor/commands/gsd-research.md +0 -28
  177. package/.cursor/commands/gsd-resume.md +0 -26
  178. package/.cursor/commands/gsd-sprint-plan.md +0 -30
  179. package/.cursor/commands/gsd-verify-work.md +0 -25
  180. package/.cursor/hooks.json +0 -26
  181. package/.cursor/plans/cursor-gsd-team-kit_8cfee9b8.plan.md +0 -57
  182. package/.cursor/remote.json +0 -18
  183. package/.cursor/rules/gsd-core.mdc +0 -18
  184. package/.cursor/rules/gsd-handoffs.mdc +0 -10
  185. package/.cursor/rules/gsd-quality.mdc +0 -15
  186. package/.cursor/scratchpad.md +0 -34
  187. package/.github/workflows/ci.yml +0 -47
  188. package/decisions/DEC-0001.md +0 -21
  189. package/decisions/DEC-0002.md +0 -21
  190. package/docs/engineering/architecture.md +0 -354
  191. package/docs/engineering/decisions.md +0 -6
  192. package/docs/engineering/research.md +0 -11
  193. package/docs/engineering/runbook.md +0 -32
  194. package/docs/engineering/state.md +0 -33
  195. package/docs/product/acceptance.md +0 -6
  196. package/docs/product/backlog.md +0 -7
  197. package/docs/product/vision.md +0 -46
  198. package/gsd-installer.ps1 +0 -189
  199. package/gsd-installer.py +0 -195
  200. package/gsd-installer.sh +0 -201
  201. package/handoffs/release_notes.md +0 -14
  202. package/handoffs/resume_brief.md +0 -8
  203. package/milestones/M0001/milestone.json +0 -7
  204. package/milestones/M0001/phases.json +0 -9
  205. package/milestones/M0001/progress.md +0 -3
  206. package/milestones/M0001/summary.md +0 -3
  207. package/scripts/generate-release-notes.ps1 +0 -74
  208. package/scripts/generate-release-notes.sh +0 -63
  209. package/scripts/release-all.ps1 +0 -423
  210. package/sprints/S0001/progress.md +0 -4
  211. package/sprints/S0001/qa-findings.md +0 -113
  212. package/sprints/S0001/sprint.md +0 -70
  213. package/sprints/S0001/summary.md +0 -46
  214. package/sprints/S0001/tasks.md +0 -35
  215. package/sprints/S0001/uat.json +0 -8
  216. package/sprints/S0001/uat.md +0 -8
  217. package/sprints/quick/Q0001/summary.md +0 -3
  218. /package/{.cursor/rules/gsd-escalation.mdc → template/.cursor/rules/escalation.mdc} +0 -0
  219. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/acceptance.json +0 -0
  220. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/acceptance.md +0 -0
  221. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/architecture.json +0 -0
  222. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/architecture.md +0 -0
  223. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/decision.json +0 -0
  224. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/decision.md +0 -0
  225. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/handoff.json +0 -0
  226. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/handoff.md +0 -0
  227. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/milestone.json +0 -0
  228. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/phase-context.json +0 -0
  229. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/plan-verify.json +0 -0
  230. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/sprint.json +0 -0
  231. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/sprint.md +0 -0
  232. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/story.json +0 -0
  233. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/story.md +0 -0
  234. /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/uat.json +0 -0
  235. /package/{docs → template/docs}/engineering/context/phase-template.json +0 -0
  236. /package/{docs → template/docs}/engineering/dependencies.json +0 -0
  237. /package/{sprints → template/sprints}/S0001/plan-verify.json +0 -0
@@ -0,0 +1,81 @@
1
+ # Runtime Connectivity
2
+
3
+ Canonical operator-facing connectivity summary for release and QA/runtime debug
4
+ contexts.
5
+
6
+ ## Purpose
7
+
8
+ - Show where current targets are hosted (local vs remote).
9
+ - Provide connection instructions (domain/ip/port/protocol).
10
+ - Provide ingress/proxy metadata (for example Traefik) when configured.
11
+ - Preserve secret safety: never store secret values, only env-reference names.
12
+
13
+ ## Source of truth
14
+
15
+ - `docs/engineering/release-targets.json`
16
+
17
+ ## Operator summary template
18
+
19
+ For each enabled target include:
20
+
21
+ - `target_id`
22
+ - `target_type`
23
+ - `execution_mode` (`local|remote`)
24
+ - `connect_endpoint` (`protocol://domain:port` or `ip:port`)
25
+ - `ingress` (`traefik enabled/disabled`, router, entrypoint, tls)
26
+ - `docker_over_ssh` (enabled + context hints when configured)
27
+ - `release_context` (latest sprint/release note ref)
28
+ - `qa_context` (latest remote/local verification path)
29
+
30
+ ## Security rules
31
+
32
+ - Do not write inline credentials/tokens/private keys.
33
+ - Only env reference names are permitted in connectivity artifacts.
34
+ - Redact auth details in handoffs and release outputs.
35
+
36
+ ## `*Env` variable sourcing (US-0085 / DEC-0071)
37
+
38
+ Operators may populate `release-targets.json`-referenced `*Env` variables
39
+ (such as `SSH_HOST`, `DOCKER_TOKEN`, `AWS_PROFILE`, etc.) from a sourced
40
+ `.env` file at repository root. Values are never stored in JSON configs —
41
+ only env-reference **names** appear in committed artifacts. See
42
+ `docs/engineering/runbook.md` for the copy/source recipe and
43
+ `.env.example` for the full 20-name inventory.
44
+
45
+ ## Dev/QA remote profiles vs `release-targets.json` (US-0084)
46
+
47
+ Use this table to map **where you run tests** to the **US-0064** release/QA
48
+ connectivity model (**no parallel schema**). Cursor/dev **`REMOTE_CONFIG`** is
49
+ documented in the runbook; it complements, not replaces, **`release-targets.json`**.
50
+
51
+ | Operator path | Maps in `release-targets.json` | Scratchpad / dev config |
52
+ |---------------|----------------------------------|-------------------------|
53
+ | **WSL** | Local Linux on the same machine — not a separate target row by default. | Usually **`REMOTE_EXECUTION=0`**. Cite **environment label** **`WSL`** in QA evidence. |
54
+ | **Bare SSH Linux** | **`ssh-server`**: `hostEnv`, `userEnv`, `authEnv`, `remoteCommand`, `runtime`, ingress. | **`REMOTE_EXECUTION=1`**, **`REMOTE_CONFIG=.cursor/remote.json`** (see **`.cursor/scratchpad.md`**). |
55
+ | **Docker-over-SSH** | **`ssh-server.dockerOverSsh`**: `dockerHostEnv`, `dockerContextEnv`, `composeFile`, `service`. | Same scratchpad keys; operator sets **`DOCKER_HOST`** / context using **env names** only in docs. |
56
+
57
+ ### `docker_over_ssh` (operator summary)
58
+
59
+ When **`dockerOverSsh.enabled`** is true on **`ssh-server`**, connectivity flows
60
+ through SSH to a host where Docker commands run; **`dockerHostEnv`** and
61
+ **`dockerContextEnv`** name the operator env vars (values never pasted into
62
+ artifacts). **`composeFile`** and **`service`** identify the stack slice. Full
63
+ fields remain in **`docs/engineering/release-targets.json`** and **DEC-0044**.
64
+
65
+ ## Optional deterministic CI routing recipe (US-0086)
66
+
67
+ This recipe is optional and applies only when automation routing is explicitly
68
+ enabled.
69
+
70
+ - Keep `AUTO_REMOTE_AUTOMATION_PROFILE=off` as the default in CI unless the
71
+ workflow intentionally opts into automation routing.
72
+ - Use deterministic path filters to set an execution label:
73
+ - `docker` label for container surfaces (`Dockerfile*`, `docker-compose*.yml`,
74
+ container runtime scripts)
75
+ - `ssh` label for ssh/deploy/runtime host scripts
76
+ - `local` label for all other changes
77
+ - If explicit NL intent `start container <target_id>` is provided by automation,
78
+ target-id resolution takes precedence over path filters.
79
+ - Emit names-only routing evidence:
80
+ `target_id`, `environment_label`, `automation_profile`, `routing_source`,
81
+ `secret_surface=names_only`.
@@ -0,0 +1,33 @@
1
+ # Security Review
2
+
3
+ ## Review metadata
4
+ - Timestamp:
5
+ - Mode: design | code
6
+ - Sprint:
7
+ - Compliance profiles:
8
+
9
+ ## Findings
10
+
11
+ ### [Severity: critical|high|medium|low] - [Title]
12
+ - Component:
13
+ - Description:
14
+ - Risk:
15
+ - Remediation:
16
+ - Status: open | blocking | resolved | accepted | deferred
17
+ - Decision reference:
18
+
19
+ ## Blockers
20
+ - None.
21
+
22
+ ## Recommended actions
23
+ - Add prioritized remediation actions here.
24
+
25
+ ## Summary
26
+ - Critical: 0
27
+ - High: 0
28
+ - Medium: 0
29
+ - Low: 0
30
+ - Overall: pass | fail
31
+
32
+ > Findings are AI-guided review support and are not a compliance certification.
33
+ > Human expert validation is recommended for production compliance decisions.
@@ -0,0 +1,20 @@
1
+ # Spec-pack (US-0031)
2
+
3
+ When `SPEC_PACK_MODE=1` in `.cursor/scratchpad.md`, the workflow creates/updates
4
+ three artifacts per story at these canonical paths:
5
+
6
+ - `docs/engineering/spec-pack/<story_id>-design-concept.md`
7
+ - `docs/engineering/spec-pack/<story_id>-crs.md`
8
+ - `docs/engineering/spec-pack/<story_id>-technical-specification.md`
9
+
10
+ Traceability: backlog story ID → the three paths above.
11
+
12
+ Minimum required sections (see `docs/engineering/runbook.md` for validation and
13
+ ownership):
14
+
15
+ - Design Concept: Summary, Goals, Non-goals, Key decisions
16
+ - CRS: Purpose, Scope, Acceptance criteria ref
17
+ - Technical Specification: Overview, Components, Interfaces, Non-functional
18
+
19
+ Validation blocks release only when `SPEC_PACK_MODE=1` and a required section
20
+ is missing or empty (`SPEC_PACK_INCOMPLETE`).
@@ -0,0 +1,15 @@
1
+ # State Archive Packs
2
+
3
+ This folder stores append-only historical state packs for context compaction
4
+ (US-0053 / DEC-0035).
5
+
6
+ Policy:
7
+
8
+ - Keep `docs/engineering/state.md` focused on active/hot context and recent
9
+ checkpoints.
10
+ - Move older, low-frequency checkpoints into timestamped archive packs here.
11
+ - Do not rewrite historical evidence; archive moves are non-destructive and
12
+ traceable.
13
+ - Use stable pack naming:
14
+ - `state-pack-YYYY-QN.md` for periodic compaction
15
+ - or `state-pack-YYYYMMDD.md` for ad-hoc snapshots
@@ -0,0 +1,20 @@
1
+ # Engineering State
2
+
3
+ ## Active context surface (US-0053 / DEC-0035)
4
+
5
+ - This file is the hot context surface for current phase checkpoints and
6
+ short-horizon traceability.
7
+ - Archive policy: move low-frequency historical checkpoints into
8
+ `docs/engineering/state-archive/` packs without rewriting evidence.
9
+ - Retrieval policy for `/ask`: prefer latest targeted sections first and expand
10
+ only when unresolved.
11
+
12
+ ## Session status
13
+
14
+ ## Progress snapshot
15
+
16
+ ## Known issues (carry-forward)
17
+
18
+ ## Key risks
19
+
20
+ ## Next actions
@@ -0,0 +1,19 @@
1
+ # Status Normalization Report
2
+
3
+ - Baseline run date: not yet run
4
+ - Scope: append-only status normalization evidence for stories with completed
5
+ release/state evidence but stale product status artifacts.
6
+ - Canonical owner: `docs/product/backlog.md`
7
+ - Derived views reconciled: `docs/product/acceptance.md`,
8
+ `docs/engineering/state.md`
9
+
10
+ | Story | Prior backlog status | Prior acceptance | Resolved backlog status | Resolved acceptance | Evidence refs | Timestamp |
11
+ |---|---|---|---|---|---|---|
12
+ | (none yet) | - | - | - | - | - | - |
13
+
14
+ ## Procedure notes
15
+
16
+ - This baseline is append-only; later reconciliations add delta rows only.
17
+ - Guardrail scope is target stories only. Unrelated stories are never rewritten.
18
+ - Contradictory reconciliation outcomes must fail safe with reason code
19
+ `CANONICAL_STATUS_CONFLICT` and remediation guidance.
@@ -0,0 +1,16 @@
1
+ # Token-cost parity manifest (DEC-0062 §5 / US-0080)
2
+
3
+ - **version**: `1`
4
+ - **purpose**: Paths below MUST be **byte-identical** between repository root and
5
+ `template/` after edits (installer parity). CI: `python scripts/check_token_cost_parity.py --repo .`
6
+
7
+ ## Mirrored path pairs (`active` → `template`)
8
+
9
+ - `.cursor/commands/auto.md` → `template/.cursor/commands/auto.md`
10
+ - `.cursor/commands/execute.md` → `template/.cursor/commands/execute.md`
11
+ - `docs/engineering/auto-orchestration-reference.md` → `template/docs/engineering/auto-orchestration-reference.md`
12
+ - `docs/engineering/token-cost-parity-manifest.md` → `template/docs/engineering/token-cost-parity-manifest.md`
13
+ - `scripts/token_cost_lib.py` → `template/scripts/token_cost_lib.py`
14
+ - `scripts/token_cost_compare.py` → `template/scripts/token_cost_compare.py`
15
+ - `scripts/check_token_cost_parity.py` → `template/scripts/check_token_cost_parity.py`
16
+ - `handoffs/token_cost_runs/README.md` → `template/handoffs/token_cost_runs/README.md`
@@ -0,0 +1,44 @@
1
+ # US-0084 — Minimal remote sanity path (Windows → WSL or SSH Linux)
2
+
3
+ Sprint **S0069** / story **US-0084**. This is a short operator walkthrough; normative
4
+ contracts live in **`docs/engineering/architecture.md`** **`# US-0084`**,
5
+ **`docs/engineering/release-targets.json`**, and **`docs/engineering/runtime-connectivity.md`**
6
+ (**US-0064**).
7
+
8
+ ## Path A — WSL (local Linux on the Windows machine)
9
+
10
+ 1. Install/launch **WSL** and open a Linux shell in the repo (or clone the repo inside WSL).
11
+ 2. Ensure **Node.js** and **Python 3** are available on **PATH** (same as host runbook).
12
+ 3. Run **`npm pack`** / local **`its-magic`** or **`sh installer.sh --target <repo> --mode missing --create`** from the package root.
13
+ 4. Run **`python tests/installer_shell_bug0004_test.py`** and your stack’s **`TEST_COMMAND`** (from merged runbook / scratchpad).
14
+ 5. Evidence: set **environment label** **`WSL`** in QA handoffs; **`REMOTE_EXECUTION=0`** is typical (no **`.cursor/remote.json`** validation required).
15
+
16
+ ## Path B — SSH to a Linux host
17
+
18
+ 1. SSH into the Linux machine; clone or sync the repo there.
19
+ 2. Copy **`.env.example`** to **`.env`** and fill in values for `SSH_HOST`,
20
+ `SSH_USER`, `SSH_PRIVATE_KEY`, and any other relevant `REMOTE_*` vars.
21
+ Source the file (`source .env` or equivalent) before running remote ops.
22
+ See **`docs/engineering/runbook.md`** § Operator `.env` setup.
23
+ 3. Run the same **`sh`/`dash`** installer and **`python`** tests as on native Linux.
24
+ 4. For **release/QA connectivity** semantics, align with **`ssh-server`** in
25
+ **`docs/engineering/release-targets.json`** (`hostEnv`, `userEnv`, `authEnv`, …).
26
+ 5. For **Cursor/dev remote** validation, set **`REMOTE_EXECUTION=1`** and
27
+ **`REMOTE_CONFIG=.cursor/remote.json`** on the merged scratchpad; run
28
+ **`python scripts/remote_config_summary.py`** — stdout must list **names only**
29
+ (no keys/passwords).
30
+ 6. Evidence: cite **`ssh:<hostEnv>`** (the **env var name**, not the host value) plus
31
+ **environment label**; never paste private key material.
32
+
33
+ ## Path C — Docker-over-SSH
34
+
35
+ 1. Follow **Path B** on the SSH host (including **`.env`** setup from
36
+ **`.env.example`**); enable **`dockerOverSsh`** patterns per
37
+ **`runtime-connectivity.md`** (**`dockerHostEnv`**, **`dockerContextEnv`**, **`composeFile`**, **`service`**).
38
+ 2. Ensure **`DOCKER_HOST`** and **`DOCKER_CONTEXT`** are set in your **`.env`**;
39
+ source before running Docker commands. Document **env names** only in handoffs.
40
+
41
+ ## Related
42
+
43
+ - **`tests/run-tests.sh`** / **`tests/run-tests.ps1`** — **H1–H5** (**US-0084** / AC-10).
44
+ - **`python scripts/guard_installer_publish.py`** — publish-time LF + POSIX guard.
@@ -0,0 +1 @@
1
+ # Acceptance
@@ -0,0 +1,5 @@
1
+ # Backlog
2
+
3
+ ## Bug issues (canonical)
4
+
5
+ Stub — materialized installs use the full **`## Bug issues (canonical)`** contract in **`docs/product/backlog.md`** (**US-0079** / **DEC-0061**). Append **`### BUG-#### — Title`** blocks here when tracking defects; run **`python scripts/bug_issue_validate.py`** before handoff.
@@ -0,0 +1,11 @@
1
+ # Vision
2
+
3
+ ## Problem
4
+
5
+ ## Audience
6
+
7
+ ## Value
8
+
9
+ ## Look and Feel
10
+
11
+ ## UX References
@@ -0,0 +1,40 @@
1
+ # User guides (US-0032)
2
+
3
+ When `USER_GUIDE_MODE=1` in `.cursor/scratchpad.md`, the workflow expects one
4
+ end-user how-to guide per feature story at a canonical path.
5
+
6
+ ## Canonical location and naming
7
+
8
+ - **Path**: `docs/user-guides/US-xxxx.md`
9
+ - **Naming**: Use the backlog story ID (e.g. `US-0032`) as the filename.
10
+ - One guide per feature story; create or update when the story is in scope.
11
+
12
+ ## Minimum required schema
13
+
14
+ Each guide must include the following sections (structural validation; content
15
+ quality is not enforced by the gate):
16
+
17
+ | Section | Description |
18
+ |--------|-------------|
19
+ | Purpose | What the feature is for and who it is for |
20
+ | Prerequisites | What the user needs before following the guide |
21
+ | Usage steps | Step-by-step how-to |
22
+ | Example | Concrete example(s) |
23
+ | Limitations | Known limits or caveats |
24
+ | Troubleshooting | Common issues and fixes |
25
+
26
+ Validation runs only when `USER_GUIDE_MODE=1`. Missing file or missing/empty
27
+ required section blocks release with reason code `USER_GUIDE_INCOMPLETE`.
28
+
29
+ ## Boundary with spec-pack (US-0031)
30
+
31
+ - **User guides**: End-user facing; how-to and usage only.
32
+ - **Spec-pack**: Design Concept, CRS, Technical Specification (engineering/design).
33
+ - Do not duplicate spec-pack content in user guides; guides may reference
34
+ technical docs but remain end-user focused.
35
+
36
+ ## Traceability
37
+
38
+ Story ID → user guide artifact is 1:1. Handoffs and release context should
39
+ reference `docs/user-guides/US-xxxx.md` for the target story when user-guide
40
+ mode is enabled.
@@ -1,8 +1,5 @@
1
1
  # Dev -> QA Handoff
2
2
 
3
3
  ## Summary
4
- - ...
5
4
 
6
5
  ## Test focus
7
- - ...
8
-
@@ -1,8 +1,5 @@
1
1
  # PO -> TL Handoff
2
2
 
3
3
  ## Summary
4
- - ...
5
4
 
6
5
  ## Open questions
7
- - ...
8
-
@@ -1,6 +1,5 @@
1
1
  # QA -> Dev Handoff
2
+
2
3
  ## Findings
3
- - ...
4
4
 
5
5
  ## Required fixes
6
- - ...
@@ -0,0 +1,51 @@
1
+ # Release Notes (Legacy Compatibility Pointer)
2
+
3
+ This file remains backward-compatible for workflows that read
4
+ `handoffs/release_notes.md` as the latest release summary.
5
+
6
+ Canonical sprint history now lives under:
7
+ - `handoffs/releases/Sxxxx-release-notes.md`
8
+
9
+ Canonical queue state now lives under:
10
+ - `handoffs/release_queue.md`
11
+
12
+ ---
13
+
14
+ ## Latest finalized release pointer
15
+
16
+ - **Latest released sprint:** `Sxxxx`
17
+ - **Latest canonical notes:** `handoffs/releases/Sxxxx-release-notes.md`
18
+ - **Latest release date:** YYYY-MM-DD
19
+ - **Latest release story:** US-xxxx
20
+
21
+ ## Unreleased queue visibility
22
+
23
+ Check `handoffs/release_queue.md` for all pending entries where `status=unreleased`
24
+ or `status=blocked` before finalization.
25
+
26
+ ## Latest operator summary (Run/Connect/Verify)
27
+
28
+ - **Start command:** Refer to `## Run` in
29
+ `handoffs/releases/Sxxxx-release-notes.md`.
30
+ - **Endpoint + port:** Refer to `## Connect` in
31
+ `handoffs/releases/Sxxxx-release-notes.md`.
32
+ - **Verification steps + health signal:** Refer to `## Verify` in
33
+ `handoffs/releases/Sxxxx-release-notes.md`.
34
+ - **Credentials source refs (sanitized):** Refer to `## Credentials` in
35
+ `handoffs/releases/Sxxxx-release-notes.md` (env-ref only).
36
+ - **Known issues:** Refer to `## Known Issues` in
37
+ `handoffs/releases/Sxxxx-release-notes.md`.
38
+
39
+ ## Historical references
40
+
41
+ - `Sxxxx`: `handoffs/releases/Sxxxx-release-notes.md`
42
+
43
+ ---
44
+
45
+ ## Compatibility behavior contract
46
+
47
+ - Keep this file as a pointer/summary; do not treat it as canonical historical
48
+ storage.
49
+ - `/release` must update sprint-scoped notes first, then refresh this pointer.
50
+ - Never delete or destructively rewrite historical sprint-scoped note files
51
+ through this legacy path.
@@ -0,0 +1,47 @@
1
+ # Release Queue Tracker
2
+
3
+ Canonical release queue for sprint-level release state.
4
+
5
+ ## Queue rows
6
+
7
+ | sprint_id | story_refs | status | last_updated | release_notes_ref | gate_snapshot | release_version | remediation |
8
+ |-----------|------------|--------|--------------|-------------------|---------------|-----------------|-------------|
9
+
10
+ ## Status model
11
+
12
+ - `planned`: sprint exists, release flow not entered
13
+ - `ready`: verify-work completed and release is eligible to start
14
+ - `unreleased`: release flow entered; notes written; finalization not completed
15
+ - `released`: release finalization completed for the sprint
16
+ - `blocked`: deterministic fail-safe condition requiring remediation
17
+
18
+ ## Deterministic transition contract
19
+
20
+ - Allowed lifecycle: `planned -> ready -> unreleased -> released`.
21
+ - `blocked` can be set on deterministic failure conditions.
22
+ - Only the target sprint row may change during one `/release` run.
23
+ - No destructive auto-reconciliation is allowed by default.
24
+
25
+ ## Fail-safe reason codes
26
+
27
+ - `RELEASE_SPRINT_UNRESOLVED`
28
+ - `LEGACY_NOTES_SPRINT_UNRESOLVED`
29
+ - `QUEUE_ENTRY_MISSING`
30
+ - `NOTES_REF_MISSING`
31
+ - `STATUS_TRANSITION_INVALID`
32
+ - `BACKLOG_STATUS_DRIFT`
33
+ - `CANONICAL_STATUS_CONFLICT`
34
+ - `COMPATIBILITY_CRITICAL_OPEN`
35
+ - `COMPONENT_SCOPE_VIOLATION_UNAPPROVED`
36
+
37
+ ## Remediation guidance
38
+
39
+ - `RELEASE_SPRINT_UNRESOLVED`: set explicit sprint context (`Sxxxx`) and rerun `/release`.
40
+ - `LEGACY_NOTES_SPRINT_UNRESOLVED`: preserve legacy notes, identify sprint manually, then create target sprint notes file.
41
+ - `QUEUE_ENTRY_MISSING`: create the target sprint queue row with required fields, then rerun `/release`.
42
+ - `NOTES_REF_MISSING`: add canonical `release_notes_ref` for target sprint row and rerun `/release`.
43
+ - `STATUS_TRANSITION_INVALID`: correct row status to a valid predecessor state and rerun `/release`.
44
+ - `BACKLOG_STATUS_DRIFT`: reconcile target story status/ACs in `docs/product/backlog.md` using release evidence, then rerun `/release`.
45
+ - `CANONICAL_STATUS_CONFLICT`: resolve canonical backlog status mismatch versus derived artifacts and rerun `/release`.
46
+ - `COMPATIBILITY_CRITICAL_OPEN`: resolve or explicitly decide on open critical compatibility findings before rerun.
47
+ - `COMPONENT_SCOPE_VIOLATION_UNAPPROVED`: resolve or explicitly approve out-of-scope component impact before rerun.
@@ -0,0 +1,31 @@
1
+ # Release -> Dev Handoff
2
+
3
+ ## Status
4
+
5
+ - Result: BLOCKED
6
+ - Sprint: `Sxxxx`
7
+ - Story: `US-xxxx`
8
+
9
+ ## Blocking reason
10
+
11
+ - Primary reason code: `RELEASE_TEST_FAILED|RELEASE_QA_BLOCKERS_OPEN|RELEASE_UAT_INCOMPLETE|RELEASE_SPRINT_UNRESOLVED|QUEUE_ENTRY_MISSING|NOTES_REF_MISSING|STATUS_TRANSITION_INVALID|LEGACY_NOTES_SPRINT_UNRESOLVED`
12
+ - Summary:
13
+
14
+ ## Evidence refs
15
+
16
+ - `sprints/Sxxxx/release-findings.md`
17
+ - `handoffs/release_queue.md`
18
+ - `tests/report.md`
19
+ - `sprints/Sxxxx/qa-findings.md`
20
+ - `sprints/Sxxxx/uat.json`
21
+
22
+ ## Required remediation
23
+
24
+ 1.
25
+ 2.
26
+
27
+ ## Re-run criteria
28
+
29
+ - Update `sprints/Sxxxx/release-findings.md` with remediation status.
30
+ - Confirm blocking reason code is resolved.
31
+ - Re-run `/release` for sprint `Sxxxx`.
@@ -0,0 +1,62 @@
1
+ # Sprint Release Notes Template
2
+
3
+ **Sprint:** Sxxxx
4
+ **Date:** YYYY-MM-DD
5
+ **Stories:** US-xxxx
6
+ **Queue status:** unreleased|released|blocked
7
+
8
+ ---
9
+
10
+ ## Gate results
11
+
12
+ 1. **Check-in test gate:** PASS|FAIL
13
+ 2. **QA completion gate:** PASS|FAIL
14
+ 3. **UAT completeness gate:** PASS|FAIL
15
+ 4. **Release finalization gate:** PASS|FAIL
16
+
17
+ ---
18
+
19
+ ## Run
20
+
21
+ - `start_command`: `<required>`
22
+ - `runtime_mode`: `local|remote` (required)
23
+ - `runtime_context_ref`: `docs/engineering/runtime-connectivity.md` (required
24
+ when present)
25
+
26
+ ## Connect
27
+
28
+ - `service_url`: `<required>`
29
+ - `service_port`: `<required>`
30
+ - `health_endpoint`: `<required>`
31
+
32
+ ## Verify
33
+
34
+ - `verification_steps`:
35
+ 1. `<required step 1>`
36
+ 2. `<required step 2>`
37
+ 3. `<required step 3>`
38
+ - `expected_health_signal`: `<required>`
39
+
40
+ ## Credentials
41
+
42
+ - `credential_source_refs` (env names only):
43
+ - `<ENV_VAR_NAME>`
44
+ - `expected_value_source`:
45
+ - `<CI secret store | operator shell profile | deployment platform variable set>`
46
+ - Never place inline secrets/tokens/passwords in this file.
47
+
48
+ ## Known Issues
49
+
50
+ - `None` or deterministic concise issue list.
51
+
52
+ ## Notes
53
+
54
+ - Sprint-scoped notes are canonical history artifacts.
55
+ - Do not overwrite notes for non-target sprints.
56
+ - Required section order is deterministic:
57
+ `Run -> Connect -> Verify -> Credentials -> Known Issues`.
58
+
59
+ ## Queue linkage
60
+
61
+ - `release_queue.md` row must reference this file via `release_notes_ref`.
62
+ - Status transitions must affect only the target sprint row.
@@ -0,0 +1,21 @@
1
+ # Per-version release notes — pattern example (US-0100 / DEC-0085)
2
+
3
+ > **Rename at use**: copy this file to `handoffs/releases/{semver}-release-notes.md`
4
+ > where `{semver}` is the normalized semver stem **without** a leading `v`
5
+ > (e.g. `0.1.2-41-release-notes.md`, not `v0.1.2-41-release-notes.md`).
6
+ >
7
+ > **Do not overwrite** unrelated version files — target only the semver you are publishing.
8
+ > Sprint-scoped workflow evidence stays in `handoffs/releases/Sxxxx-release-notes.md`
9
+ > (**US-0040**); never pass `Sxxxx` notes to `gh -F`.
10
+
11
+ ## Work items
12
+
13
+ - **US-xxxx** — One-line summary derived from sprint notes / backlog / queue precedence.
14
+ - **BUG-xxxx** — One-line fix summary (category **Fixed** in cumulative `CHANGELOG.md`).
15
+
16
+ ## Sprint evidence
17
+
18
+ - [`S0070`](handoffs/releases/S0070-release-notes.md)
19
+ - [`S0071`](handoffs/releases/S0071-release-notes.md)
20
+
21
+ <!-- Example coalesce: S0070 + S0071 → semver 0.1.2-41 -->
@@ -0,0 +1,14 @@
1
+ # Resume Brief
2
+
3
+ ## Current status
4
+
5
+ ## Next actions
6
+
7
+ ## Intended resume phase
8
+
9
+ `intake`
10
+
11
+ ## Isolation provenance (US-0048 / DEC-0029)
12
+
13
+ - isolation_provenance_ref=
14
+ - resume_requires_fresh_context=1
@@ -1,7 +1,5 @@
1
1
  # TL -> Dev Handoff
2
2
 
3
3
  ## Summary
4
- - ...
5
4
 
6
5
  ## Tasks
7
- - ...
@@ -0,0 +1,26 @@
1
+ # Token-cost run evidence (`handoffs/token_cost_runs/`)
2
+
3
+ Append-only artifacts per **`orchestrator_run_id`** (**`DEC-0062`** §3, **`US-0080`**).
4
+
5
+ ## Schema (markdown table)
6
+
7
+ Each run file SHOULD include:
8
+
9
+ - `orchestrator_run_id` — stable id for the orchestrated run
10
+ - `run_class_hash` — SHA-256 hex over canonical **`DEC-0062`** §2 JSON object
11
+ - `metric_source` — how numbers were produced (for example `cursor_usage_export`,
12
+ `fixture`, `unmapped_host`)
13
+ - `recorded_at_utc` — RFC3339 UTC
14
+ - **Run totals** row: `cache_read_tokens`, `input_tokens`, `output_tokens`, and
15
+ optional `cache_creation_tokens`, `orchestrator_call_estimate`
16
+ - **Per-phase** rows: same metrics plus `phase_id`, `phase_call_count`
17
+
18
+ `docs/engineering/state.md` checkpoints SHOULD set **`token_cost_evidence_ref`**
19
+ to the primary file path when metrics exist.
20
+
21
+ ## Tooling
22
+
23
+ - `scripts/token_cost_lib.py` — `run_class_hash`, strict-proof hash helper, AC-2 compare
24
+ - `scripts/token_cost_compare.py <baseline.json> <target.json>` — exit **0** if
25
+ same `run_class_hash` and ≥ **50%** `cache_read_tokens` reduction vs baseline
26
+ - `python scripts/check_token_cost_parity.py --repo .` — active/`template/` parity
@@ -0,0 +1 @@
1
+ 0.1.2-26
@@ -0,0 +1,9 @@
1
+ # its-magic metadata home
2
+
3
+ This directory is installer-owned and stores framework metadata surfaces that are
4
+ not part of product/project artifacts.
5
+
6
+ Current metadata:
7
+
8
+ - `.its-magic-version` (installed framework version marker)
9
+ - this operator-oriented README surface