magic-spec 1.4.3 → 1.4.15

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/CHANGELOG.md CHANGED
@@ -5,6 +5,36 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.4.15] - 2026-03-02
9
+
10
+ ### Changed
11
+
12
+ - **Executor Refactor**: Improved `executor.js` structure by replacing global `return` with an `else` block for better readability and standard Node.js practices.
13
+ - **Test Suite Cleanup**: Removed duplicate T54 "Spec Rename History Immutability" scenario from `suite.md`.
14
+
15
+ ### Meta
16
+
17
+ - **Automated Update**: Sequential patch bump, history update, and checksum regeneration via `update-engine-meta`.
18
+
19
+ ## [1.4.5] - 2026-03-01
20
+
21
+ ### Added
22
+
23
+ - **Engine Versioning Protocol (C14)**: Established a mandatory convention requiring a patch version bump in `.magic/.version` whenever core engine files are modified. Integrated checkpoints into all primary workflows (`run.md`, `spec.md`, `rule.md`).
24
+ - **History Refactoring**: Extracted "Document History" from core workflow markdown files into a dedicated `.magic/history/` directory. This significantly reduces token consumption during agentic operations while preserving audit trials.
25
+ - **Node.js Script Transition**: Fully replaced legacy `.sh` and `.ps1` initialization and utility scripts with cross-platform Node.js implementations (`init.js`, `generate-context.js`, etc.).
26
+
27
+ ### Changed
28
+
29
+ - **Installer Configuration**: Optimized `installers/config.json` to exclude history files from distribution and prioritize Node.js scripts.
30
+ - **Engine Security**: `generate-checksums.js` and `executor.js` now explicitly skip history files to prevent non-functional changes from triggering integrity warnings.
31
+ - **Template System**: `init.js` now automatically injects the new C14 protocol into target project constitution files (`RULES.md`).
32
+
33
+ ### Fixed
34
+
35
+ - **Syntax Hygiene**: Cleaned up redundant markdown artifacts (terminal backticks) in core workflow files.
36
+ - **Workflow Integrity**: Fixed accidental history duplication in `spec.md`.
37
+
8
38
  ## [1.4.3] - 2026-03-01
9
39
 
10
40
  ### Added
@@ -17,7 +47,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
17
47
  - **Updater Integrity**: Modified files that are bypassed during an update via `[s] Skip modified files` now persist their original hashes so they don't get silently overwritten in subsequent updates.
18
48
  - **Testing Logic**: Fixed an issue in the `run_tests.py` exhaustive test suite section where failures during adapter testing cycles were mistakenly swallowed, reporting a false "All tests completed successfully".
19
49
 
20
- ## [1.4.3] - 2026-03-01
50
+ ## [1.4.1] - 2026-03-01
21
51
 
22
52
  ### Fixed
23
53
 
@@ -25,13 +25,11 @@
25
25
  "task.md",
26
26
  ".version",
27
27
  ".checksums",
28
- "scripts/check-prerequisites.ps1",
29
- "scripts/check-prerequisites.sh",
28
+ "scripts/check-prerequisites.js",
30
29
  "scripts/executor.js",
31
- "scripts/generate-context.ps1",
32
- "scripts/generate-context.sh",
33
- "scripts/init.ps1",
34
- "scripts/init.sh",
30
+ "scripts/generate-checksums.js",
31
+ "scripts/generate-context.js",
32
+ "scripts/init.js",
35
33
  "templates/plan.md",
36
34
  "templates/retrospective.md",
37
35
  "templates/specification.md",
@@ -500,7 +500,7 @@ function getDirectoryChecksums(dir, baseDir = dir) {
500
500
  for (const item of items) {
501
501
  const fullPath = path.join(dir, item.name);
502
502
  if (item.isDirectory()) {
503
- if (item.name === '.checksums') continue;
503
+ if (item.name === '.checksums' || item.name === 'history') continue;
504
504
  Object.assign(results, getDirectoryChecksums(fullPath, baseDir));
505
505
  } else {
506
506
  if (item.name === '.checksums') continue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magic-spec",
3
- "version": "1.4.3",
3
+ "version": "1.4.15",
4
4
  "description": "Magic Specification-Driven Development (SDD) Workflow",
5
5
  "author": "Oleg Alexandrov <alexandrovoleg.ru@gmail.com>",
6
6
  "license": "MIT",