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.
- package/README.md +1602 -755
- package/bin/its-magic.js +121 -11
- package/bin/postinstall.js +93 -0
- package/installer.ps1 +759 -0
- package/installer.py +1036 -0
- package/installer.sh +649 -0
- package/package.json +18 -14
- package/scripts/check_intake_template_parity.py +312 -0
- package/scripts/doc_profile_lib.py +415 -0
- package/scripts/guard_installer_publish.py +88 -0
- package/scripts/intake_bug_routing_guard.py +67 -0
- package/scripts/intake_evidence_lib.py +802 -0
- package/scripts/intake_evidence_validate.py +73 -0
- package/scripts/materialize_codebase_map.py +184 -0
- package/scripts/remote_config_summary.py +243 -0
- package/template/.cursor/agents/curator.mdc +35 -0
- package/template/.cursor/agents/dev.mdc +29 -0
- package/template/.cursor/agents/po.mdc +141 -0
- package/template/.cursor/agents/qa.mdc +28 -0
- package/template/.cursor/agents/release.mdc +28 -0
- package/template/.cursor/agents/security.mdc +98 -0
- package/template/.cursor/agents/tech-lead.mdc +57 -0
- package/template/.cursor/commands/architecture.md +127 -0
- package/template/.cursor/commands/ask.md +55 -0
- package/template/.cursor/commands/auto.md +533 -0
- package/template/.cursor/commands/discovery.md +47 -0
- package/template/.cursor/commands/execute.md +343 -0
- package/template/.cursor/commands/intake.md +323 -0
- package/template/.cursor/commands/map-codebase.md +46 -0
- package/template/.cursor/commands/memory-audit.md +175 -0
- package/template/.cursor/commands/milestone-complete.md +51 -0
- package/template/.cursor/commands/milestone-start.md +59 -0
- package/template/.cursor/commands/pause.md +64 -0
- package/{.cursor/commands/gsd-phase-context.md → template/.cursor/commands/phase-context.md} +6 -2
- package/template/.cursor/commands/plan-verify.md +34 -0
- package/template/.cursor/commands/qa.md +226 -0
- package/template/.cursor/commands/quick.md +41 -0
- package/template/.cursor/commands/refresh-context.md +82 -0
- package/template/.cursor/commands/release.md +523 -0
- package/template/.cursor/commands/research.md +49 -0
- package/template/.cursor/commands/resume.md +67 -0
- package/template/.cursor/commands/security-review.md +81 -0
- package/template/.cursor/commands/sprint-plan.md +103 -0
- package/template/.cursor/commands/status-reconcile.md +95 -0
- package/template/.cursor/commands/verify-work.md +152 -0
- package/template/.cursor/dev-environment.json.example +22 -0
- package/{.cursor → template/.cursor}/hooks/README.md +3 -2
- package/{.cursor/hooks/gsd-hook.py → template/.cursor/hooks/hook.py} +15 -6
- package/template/.cursor/hooks.json +26 -0
- package/template/.cursor/remote.json +31 -0
- package/template/.cursor/rules/caveman.mdc +184 -0
- package/template/.cursor/rules/coding-standards.mdc +39 -0
- package/template/.cursor/rules/core.mdc +111 -0
- package/template/.cursor/rules/handoffs.mdc +27 -0
- package/template/.cursor/rules/quality.mdc +49 -0
- package/template/.cursor/scratchpad.local.example.md +323 -0
- package/template/.cursor/scratchpad.md +324 -0
- package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/SKILL.md +2 -2
- package/template/.cursorignore +6 -0
- package/template/.env.example +28 -0
- package/template/.github/workflows/ci.yml +194 -0
- package/{.github → template/.github}/workflows/deploy.yml +5 -2
- package/template/.its-magic-version +1 -0
- package/template/CHANGELOG.md +11 -0
- package/template/README.md +1602 -0
- package/template/decisions/DEC-0001.md +11 -0
- package/template/decisions/DEC-0002.md +11 -0
- package/template/docs/developer/README.md +44 -0
- package/template/docs/engineering/architecture.md +9 -0
- package/template/docs/engineering/artifact-ordering-policy.md +48 -0
- package/template/docs/engineering/artifact-ownership-policy.md +57 -0
- package/template/docs/engineering/auto-orchestration-reference.md +1211 -0
- package/{docs → template/docs}/engineering/codebase-map.md +0 -5
- package/template/docs/engineering/compatibility-report.md +20 -0
- package/template/docs/engineering/compatibility-signals.md +7 -0
- package/template/docs/engineering/component-scope-report.md +16 -0
- package/template/docs/engineering/component-scope.md +19 -0
- package/template/docs/engineering/context/installer-owned-paths.manifest +96 -0
- package/template/docs/engineering/context/readme-section-affinity.json +30 -0
- package/template/docs/engineering/decisions.md +16 -0
- package/template/docs/engineering/legacy-drift-audit.md +21 -0
- package/template/docs/engineering/manifests/components/api-gateway.manifest.yaml +12 -0
- package/template/docs/engineering/manifests/registry.manifest.yaml +20 -0
- package/template/docs/engineering/manifests/repo.manifest.yaml +11 -0
- package/template/docs/engineering/phase-context.md +16 -0
- package/template/docs/engineering/release-targets.json +123 -0
- package/template/docs/engineering/research.md +29 -0
- package/template/docs/engineering/runbook.md +2391 -0
- package/template/docs/engineering/runtime-connectivity.md +81 -0
- package/template/docs/engineering/security-review.md +33 -0
- package/template/docs/engineering/spec-pack/README.md +20 -0
- package/template/docs/engineering/state-archive/README.md +15 -0
- package/template/docs/engineering/state.md +20 -0
- package/template/docs/engineering/status-normalization-report.md +19 -0
- package/template/docs/engineering/token-cost-parity-manifest.md +16 -0
- package/template/docs/engineering/us-0084-remote-e2e.md +44 -0
- package/template/docs/product/acceptance.md +1 -0
- package/template/docs/product/backlog.md +5 -0
- package/template/docs/product/vision.md +11 -0
- package/template/docs/user-guides/README.md +40 -0
- package/{handoffs → template/handoffs}/dev_to_qa.md +0 -3
- package/{handoffs → template/handoffs}/po_to_tl.md +0 -3
- package/{handoffs → template/handoffs}/qa_to_dev.md +1 -2
- package/template/handoffs/release_notes.md +51 -0
- package/template/handoffs/release_queue.md +47 -0
- package/template/handoffs/release_to_dev.md +31 -0
- package/template/handoffs/releases/Sxxxx-release-notes.md +62 -0
- package/template/handoffs/releases/vX.Y.Z-release-notes.md.example +21 -0
- package/template/handoffs/resume_brief.md +14 -0
- package/{handoffs → template/handoffs}/tl_to_dev.md +0 -2
- package/template/handoffs/token_cost_runs/README.md +26 -0
- package/template/its_magic/.its-magic-version +1 -0
- package/template/its_magic/README.md +9 -0
- package/template/scripts/auto_outer_driver.py +521 -0
- package/template/scripts/caveman_compress_input.py +903 -0
- package/template/scripts/check_downstream_ci_guard.py +67 -0
- package/template/scripts/check_intake_template_parity.py +312 -0
- package/template/scripts/check_token_cost_parity.py +69 -0
- package/template/scripts/dev_environment_lib.py +601 -0
- package/template/scripts/doc_profile_lib.py +415 -0
- package/template/scripts/downstream_ci_guard_lib.py +222 -0
- package/template/scripts/enforce-triad-hot-surface.py +753 -0
- package/template/scripts/guard_installer_publish.py +88 -0
- package/template/scripts/intake_bug_resume_brief_refresh.py +303 -0
- package/template/scripts/intake_bug_routing_guard.py +67 -0
- package/template/scripts/intake_evidence_lib.py +802 -0
- package/template/scripts/intake_evidence_validate.py +73 -0
- package/template/scripts/materialize_codebase_map.py +184 -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 +608 -0
- package/{scripts → template/scripts}/release-all.sh +27 -4
- package/template/scripts/release_changelog_backfill.py +153 -0
- package/template/scripts/release_changelog_lib.py +544 -0
- package/template/scripts/release_changelog_validate.py +134 -0
- package/template/scripts/remote_config_summary.py +243 -0
- package/template/scripts/sync_push_gates.py +198 -0
- package/template/scripts/token_cost_compare.py +40 -0
- package/template/scripts/token_cost_lib.py +108 -0
- package/template/scripts/uat_probe_lib.py +868 -0
- package/template/scripts/validate-and-push.ps1 +280 -0
- package/template/scripts/validate-and-push.sh +243 -0
- package/template/scripts/validate_doc_profile.py +103 -0
- package/template/scripts/validate_project_readme_coverage.py +151 -0
- package/template/scripts/validate_readme_feature_coverage.py +140 -0
- package/template/sprints/S0001/progress.md +1 -0
- package/template/sprints/S0001/qa-findings.md +9 -0
- package/template/sprints/S0001/release-findings.md +24 -0
- package/template/sprints/S0001/sprint.md +9 -0
- package/template/sprints/S0001/summary.md +7 -0
- package/template/sprints/S0001/tasks.md +1 -0
- package/template/sprints/S0001/uat.json +6 -0
- package/template/sprints/S0001/uat.md +5 -0
- package/template/sprints/quick/Q0001/summary.md +1 -0
- package/{sprints → template/sprints}/quick/Q0001/task.json +0 -1
- package/.cursor/agents/curator.mdc +0 -21
- package/.cursor/agents/dev.mdc +0 -20
- package/.cursor/agents/po.mdc +0 -19
- package/.cursor/agents/qa.mdc +0 -19
- package/.cursor/agents/release.mdc +0 -19
- package/.cursor/agents/tech-lead.mdc +0 -21
- package/.cursor/commands/gsd-architecture.md +0 -29
- package/.cursor/commands/gsd-auto.md +0 -27
- package/.cursor/commands/gsd-discovery.md +0 -27
- package/.cursor/commands/gsd-execute.md +0 -32
- package/.cursor/commands/gsd-intake.md +0 -28
- package/.cursor/commands/gsd-map-codebase.md +0 -25
- package/.cursor/commands/gsd-milestone-complete.md +0 -24
- package/.cursor/commands/gsd-milestone-start.md +0 -26
- package/.cursor/commands/gsd-pause.md +0 -25
- package/.cursor/commands/gsd-plan-verify.md +0 -26
- package/.cursor/commands/gsd-qa.md +0 -28
- package/.cursor/commands/gsd-quick.md +0 -24
- package/.cursor/commands/gsd-refresh-context.md +0 -26
- package/.cursor/commands/gsd-release.md +0 -29
- package/.cursor/commands/gsd-research.md +0 -28
- package/.cursor/commands/gsd-resume.md +0 -26
- package/.cursor/commands/gsd-sprint-plan.md +0 -30
- package/.cursor/commands/gsd-verify-work.md +0 -25
- package/.cursor/hooks.json +0 -26
- package/.cursor/plans/cursor-gsd-team-kit_8cfee9b8.plan.md +0 -57
- package/.cursor/remote.json +0 -18
- package/.cursor/rules/gsd-core.mdc +0 -18
- package/.cursor/rules/gsd-handoffs.mdc +0 -10
- package/.cursor/rules/gsd-quality.mdc +0 -15
- package/.cursor/scratchpad.md +0 -34
- package/.github/workflows/ci.yml +0 -47
- package/decisions/DEC-0001.md +0 -21
- package/decisions/DEC-0002.md +0 -21
- package/docs/engineering/architecture.md +0 -354
- package/docs/engineering/decisions.md +0 -6
- package/docs/engineering/research.md +0 -11
- package/docs/engineering/runbook.md +0 -32
- package/docs/engineering/state.md +0 -33
- package/docs/product/acceptance.md +0 -6
- package/docs/product/backlog.md +0 -7
- package/docs/product/vision.md +0 -46
- package/gsd-installer.ps1 +0 -189
- package/gsd-installer.py +0 -195
- package/gsd-installer.sh +0 -201
- package/handoffs/release_notes.md +0 -14
- package/handoffs/resume_brief.md +0 -8
- package/milestones/M0001/milestone.json +0 -7
- package/milestones/M0001/phases.json +0 -9
- package/milestones/M0001/progress.md +0 -3
- package/milestones/M0001/summary.md +0 -3
- package/scripts/generate-release-notes.ps1 +0 -74
- package/scripts/generate-release-notes.sh +0 -63
- package/scripts/release-all.ps1 +0 -423
- package/sprints/S0001/progress.md +0 -4
- package/sprints/S0001/qa-findings.md +0 -113
- package/sprints/S0001/sprint.md +0 -70
- package/sprints/S0001/summary.md +0 -46
- package/sprints/S0001/tasks.md +0 -35
- package/sprints/S0001/uat.json +0 -8
- package/sprints/S0001/uat.md +0 -8
- package/sprints/quick/Q0001/summary.md +0 -3
- /package/{.cursor/rules/gsd-escalation.mdc → template/.cursor/rules/escalation.mdc} +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/acceptance.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/acceptance.md +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/architecture.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/architecture.md +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/decision.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/decision.md +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/handoff.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/handoff.md +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/milestone.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/phase-context.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/plan-verify.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/sprint.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/sprint.md +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/story.json +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/story.md +0 -0
- /package/{.cursor/skills/gsd-team → template/.cursor/skills/its-magic}/templates/uat.json +0 -0
- /package/{docs → template/docs}/engineering/context/phase-template.json +0 -0
- /package/{docs → template/docs}/engineering/dependencies.json +0 -0
- /package/{sprints → template/sprints}/S0001/plan-verify.json +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Developer documentation
|
|
2
|
+
|
|
3
|
+
This shard holds contributor-facing material for the **its-magic** framework. End-user
|
|
4
|
+
setup stays in the root `README.md` (user channel).
|
|
5
|
+
|
|
6
|
+
## Prerequisites
|
|
7
|
+
|
|
8
|
+
- **Cursor** (or compatible editor) with the workflow files installed.
|
|
9
|
+
- **Python 3** on PATH for scratchpad merge validation and several repo scripts.
|
|
10
|
+
- **Node.js** if you use npm-packaged `its-magic` or npm-driven `TEST_COMMAND` defaults.
|
|
11
|
+
|
|
12
|
+
## Workflow
|
|
13
|
+
|
|
14
|
+
- Follow phased commands under `.cursor/commands/` (`intake`, `discovery`, `architecture`,
|
|
15
|
+
`sprint-plan`, `execute`, `qa`, `release`, etc.).
|
|
16
|
+
- Keep handoffs and `docs/engineering/state.md` updated at phase boundaries.
|
|
17
|
+
- Use `.cursor/scratchpad.local.md` for personal overrides; never commit secrets.
|
|
18
|
+
|
|
19
|
+
## Quality gates
|
|
20
|
+
|
|
21
|
+
- Run `TEST_COMMAND` from `docs/engineering/runbook.md` before push; CI should mirror the same.
|
|
22
|
+
- Run `python scripts/validate_doc_profile.py` when changing documentation profile flags or
|
|
23
|
+
README surfaces.
|
|
24
|
+
- Observe `US-0071` hygiene for user-visible script output (see runbook).
|
|
25
|
+
|
|
26
|
+
## Architecture notes
|
|
27
|
+
|
|
28
|
+
- High-level contracts live in `docs/engineering/architecture.md` (search for story ids).
|
|
29
|
+
- Installer ownership is driven by `docs/engineering/context/installer-owned-paths.manifest`.
|
|
30
|
+
- Template parity: changes in repo root often require the same edit under `template/`.
|
|
31
|
+
|
|
32
|
+
## Contracts and interfaces
|
|
33
|
+
|
|
34
|
+
- Scratchpad merge precedence: local → materialized `.cursor/scratchpad.md` →
|
|
35
|
+
`.cursor/scratchpad.local.example.md` (Model B / **DEC-0055**).
|
|
36
|
+
- Documentation profile keys: `DOC_AUDIENCE_PROFILE`, `DOC_DETAIL_LEVEL` (**DEC-0059**).
|
|
37
|
+
- Optional modes: `SPEC_PACK_MODE`, `USER_GUIDE_MODE` remain orthogonal; when `0`, validators
|
|
38
|
+
must not require those artifacts.
|
|
39
|
+
|
|
40
|
+
## Engineering decisions
|
|
41
|
+
|
|
42
|
+
- Decision records: `decisions/DEC-xxxx.md` and the compact index in
|
|
43
|
+
`docs/engineering/decisions.md`.
|
|
44
|
+
- Profile semantics for this shard: **DEC-0059** and `# US-0077` in `architecture.md`.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Artifact Ordering Policy (US-0058 / DEC-0040)
|
|
2
|
+
|
|
3
|
+
This policy defines deterministic write order for mutable workflow artifacts.
|
|
4
|
+
Commands that mutate these artifacts must use this matrix and fail safe when
|
|
5
|
+
anchors are missing or ambiguous.
|
|
6
|
+
|
|
7
|
+
## Canonical matrix
|
|
8
|
+
|
|
9
|
+
| Artifact | Policy | Deterministic rule |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| `docs/engineering/state.md` | `append-bottom` | Add new checkpoints only at end of file, in chronological order; enforce hot-surface rollover when configured thresholds are exceeded. |
|
|
12
|
+
| `docs/engineering/architecture.md` | `append-bottom` | Add new `US-xxxx` architecture sections at end of file; non-target section rewrites/deletions are forbidden. |
|
|
13
|
+
| `docs/product/backlog.md` | `sorted-canonical` | Keep stories sorted by numeric `US-xxxx` ID; mutate only target story block. |
|
|
14
|
+
| `docs/product/acceptance.md` | `sorted-canonical` | Keep `US-xxxx` rows ordered by numeric ID aligned to backlog order. |
|
|
15
|
+
| `handoffs/release_queue.md` | `append-bottom` | Append only one row per new sprint in release order. |
|
|
16
|
+
| `handoffs/release_notes.md` | `prepend-top` | Update latest pointer section first; preserve historical references list. |
|
|
17
|
+
| `handoffs/resume_brief.md` | `prepend-top` | Update current status/next-actions sections without rewriting unrelated history. |
|
|
18
|
+
|
|
19
|
+
## Idempotence contract
|
|
20
|
+
|
|
21
|
+
- Re-running a command without semantic changes must not reorder rows/blocks.
|
|
22
|
+
- No oscillation between top and bottom insertion paths.
|
|
23
|
+
- No broad rewrites of unrelated story/sprint entries.
|
|
24
|
+
- For `docs/engineering/state.md`, each newly appended checkpoint timestamp must
|
|
25
|
+
be monotonic (`new_timestamp >= last_checkpoint_timestamp`) in UTC.
|
|
26
|
+
- For rollover reruns, archive partition boundaries and pack naming must be
|
|
27
|
+
deterministic (no duplicate or oscillating pack generation).
|
|
28
|
+
|
|
29
|
+
## Fail-safe behavior
|
|
30
|
+
|
|
31
|
+
If required placement anchors are missing or ambiguous:
|
|
32
|
+
- stop with reason code `ARTIFACT_ORDERING_ANCHOR_AMBIGUOUS`,
|
|
33
|
+
- emit remediation guidance with expected anchor and file path,
|
|
34
|
+
- perform no partial mutation.
|
|
35
|
+
|
|
36
|
+
If a new `state.md` checkpoint timestamp is older than the current last
|
|
37
|
+
checkpoint timestamp:
|
|
38
|
+
- stop with reason code `STATE_TIMESTAMP_NON_MONOTONIC`,
|
|
39
|
+
- emit remediation guidance with the expected minimum timestamp,
|
|
40
|
+
- perform no partial mutation.
|
|
41
|
+
|
|
42
|
+
If configured state hot-surface rollover cannot determine a safe archive
|
|
43
|
+
boundary or cannot persist archive pack writes:
|
|
44
|
+
- stop with reason code `STATE_ARCHIVE_BOUNDARY_AMBIGUOUS` or
|
|
45
|
+
`STATE_ARCHIVE_WRITE_FAILED` (or verification mismatch
|
|
46
|
+
`STATE_ARCHIVE_VERIFICATION_FAILED`),
|
|
47
|
+
- emit remediation guidance with threshold/boundary details and target path,
|
|
48
|
+
- perform no partial mutation.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Artifact Ownership Policy (US-0061 / DEC-0043)
|
|
2
|
+
|
|
3
|
+
This policy defines phase-level mutation ownership for mutable workflow
|
|
4
|
+
artifacts. Ordering policy and ownership policy are complementary:
|
|
5
|
+
|
|
6
|
+
- ordering determines where mutations may be placed,
|
|
7
|
+
- ownership determines who may mutate specific scopes.
|
|
8
|
+
|
|
9
|
+
## Ownership matrix
|
|
10
|
+
|
|
11
|
+
| Artifact | Owned scope | Allowed phases | Override-authorized phases |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| `docs/product/vision.md` | Intake/discovery notes for current story | `intake`, `discovery` | none |
|
|
14
|
+
| `docs/product/backlog.md` | target story block only | `intake`, `release`, `status-reconcile` | none |
|
|
15
|
+
| `docs/product/acceptance.md` | target story row only | `intake`, `release`, `status-reconcile` | none |
|
|
16
|
+
| `handoffs/po_to_tl.md` | newest handoff/addendum section | `intake`, `discovery` | none |
|
|
17
|
+
| `docs/engineering/research.md` | new `R-xxxx` entries | `intake`, `research`, `architecture` | none |
|
|
18
|
+
| `docs/engineering/architecture.md` | append new `US-xxxx` architecture section or target section update | `architecture` | none |
|
|
19
|
+
| `docs/engineering/decisions.md` | compact index/context pack section | `architecture`, `refresh-context` | none |
|
|
20
|
+
| `decisions/DEC-xxxx.md` | decision file for current story | `architecture` | none |
|
|
21
|
+
| `sprints/Sxxxx/*` | current sprint artifacts only | `sprint-plan`, `plan-verify`, `execute`, `qa`, `verify-work`, `release` | none |
|
|
22
|
+
| `handoffs/tl_to_dev.md` | newest handoff section | `sprint-plan` | none |
|
|
23
|
+
| `handoffs/release_queue.md` | target sprint row only | `release` | none |
|
|
24
|
+
| `handoffs/release_notes.md` | latest pointer section | `release`, `refresh-context` | none |
|
|
25
|
+
| `docs/engineering/state.md` | append-bottom checkpoints only | all delivery phases | none |
|
|
26
|
+
| `handoffs/resume_brief.md` | current status/next-actions sections; latest-pointer upsert on **`/intake bug`** completion (**DEC-0069**) | `intake` (bug persistence path only), `pause`, `resume`, `refresh-context`, `release` | none |
|
|
27
|
+
|
|
28
|
+
## Non-destructive mutation rules
|
|
29
|
+
|
|
30
|
+
- Non-authorized phases must not delete or rewrite sections owned by other
|
|
31
|
+
phases.
|
|
32
|
+
- Mutations must be target-scoped; broad file rewrites are forbidden.
|
|
33
|
+
- `docs/engineering/architecture.md` history preservation is mandatory:
|
|
34
|
+
unrelated `US-xxxx` sections must remain intact.
|
|
35
|
+
|
|
36
|
+
## Override contract
|
|
37
|
+
|
|
38
|
+
- Override-authorized mutation is allowed only when the matrix explicitly lists
|
|
39
|
+
an override-authorized phase for that artifact.
|
|
40
|
+
- Required evidence fields:
|
|
41
|
+
- `override_phase_id`
|
|
42
|
+
- `override_reason`
|
|
43
|
+
- `override_scope`
|
|
44
|
+
- `evidence_ref`
|
|
45
|
+
- Missing/invalid override evidence is fail-closed.
|
|
46
|
+
|
|
47
|
+
## Fail-safe reason codes
|
|
48
|
+
|
|
49
|
+
- `PHASE_OWNERSHIP_VIOLATION`
|
|
50
|
+
- `PHASE_OVERRIDE_EVIDENCE_MISSING`
|
|
51
|
+
- `ARCH_HISTORY_DELETION_DETECTED`
|
|
52
|
+
|
|
53
|
+
When any reason code is emitted:
|
|
54
|
+
|
|
55
|
+
- perform no partial write,
|
|
56
|
+
- preserve current file contents,
|
|
57
|
+
- emit remediation guidance with expected owner phase and target scope.
|