lean-spec 0.1.4 → 0.2.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/CHANGELOG.md CHANGED
@@ -7,6 +7,113 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.0] - 2025-11-10
11
+
12
+ **🎉 Official Public Release - Production Ready**
13
+
14
+ This is the official v0.2.0 release, treating v0.1.x as alpha versions. LeanSpec is now production-ready for teams and solo developers.
15
+
16
+ ### Highlights
17
+
18
+ **First Principles Foundation:**
19
+ - Operationalized five first principles with validation tooling
20
+ - Context Economy enforced: Specs under 300 lines, warnings at 400+
21
+ - Signal-to-Noise validation: Every line must inform decisions
22
+ - Complete philosophy documentation guiding methodology
23
+
24
+ **Quality & Validation:**
25
+ - Comprehensive `lean-spec validate` with complexity analysis
26
+ - Lint-style output format matching ESLint/TypeScript conventions
27
+ - Sub-spec validation and relationship checking
28
+ - Dogfooding complete: All specs follow our own principles
29
+
30
+ **Documentation Excellence:**
31
+ - 100% accurate documentation site (verified)
32
+ - AI-assisted spec writing guide
33
+ - Clear WHY vs HOW separation in docs
34
+ - Comprehensive migration guides from ADRs/RFCs
35
+ - First principles deeply documented
36
+
37
+ **Developer Experience:**
38
+ - Unified dashboard (board + stats + health metrics)
39
+ - Pattern-aware list grouping with visual clarity
40
+ - Improved init flow with pattern selection
41
+ - MCP server stability improvements
42
+ - Better error handling throughout
43
+
44
+ ### Added
45
+
46
+ **New Commands:**
47
+ - `lean-spec migrate` - Migrate from existing tools (ADRs, RFCs, design docs)
48
+ - `lean-spec archive` - Archive completed specs with metadata updates
49
+ - `lean-spec backfill` - Backfill timestamps from git history
50
+ - `lean-spec validate` - Comprehensive spec validation
51
+
52
+ **Core Features:**
53
+ - First principles validation (Context Economy, Signal-to-Noise, etc.)
54
+ - Complexity analysis for specs and sub-specs
55
+ - Bidirectional `related` and directional `depends_on` relationships
56
+ - Sub-spec file support with validation
57
+ - Pattern-based folder organization
58
+
59
+ ### Changed
60
+
61
+ **Breaking Changes:**
62
+ - `lean-spec validate` output format now matches lint tools (ESLint-style)
63
+ - Default validation mode is quiet success (use `--verbose` for all details)
64
+
65
+ **User Experience:**
66
+ - Unified dashboard combining board + stats + health summary
67
+ - Pattern-aware list with visual icons and better grouping
68
+ - Enhanced init flow with template/pattern selection
69
+ - Clearer stats dashboard with actionable insights
70
+
71
+ ### Fixed
72
+ - MCP server error handling and stability
73
+ - Documentation accuracy across all pages
74
+ - Test suite: 402/402 passing (100%)
75
+ - TypeScript/lint: Zero errors
76
+ - Frontmatter parsing edge cases
77
+
78
+ ### Philosophy & Methodology
79
+
80
+ This release operationalizes LeanSpec's five first principles:
81
+
82
+ 1. **Context Economy** - Fit in working memory (<300 lines target, 400 max)
83
+ 2. **Signal-to-Noise Maximization** - Every word informs decisions
84
+ 3. **Intent Over Implementation** - Capture why, not just how
85
+ 4. **Bridge the Gap** - Both human and AI understand
86
+ 5. **Progressive Disclosure** - Add complexity only when pain is felt
87
+
88
+ **Practice What We Preach:**
89
+ - All specs validated against principles
90
+ - Large specs split using sub-spec pattern
91
+ - Documentation follows progressive disclosure
92
+ - Validation tooling prevents principle violations
93
+
94
+ ### Migration Notes
95
+
96
+ **From v0.1.x:**
97
+ - Run `lean-spec validate` to check your specs
98
+ - Review any specs >400 lines and consider splitting
99
+ - Update to new validate output format (ESLint-style)
100
+ - No breaking changes to commands or file formats
101
+
102
+ **From other tools:**
103
+ - Use `lean-spec migrate` for ADRs, RFCs, design docs
104
+ - See documentation for detailed migration guides
105
+ - AI-assisted migration available (Claude, Copilot)
106
+
107
+ ### Acknowledgments
108
+
109
+ Built with dogfooding: 63 specs written, 28 archived, all following our own principles.
110
+
111
+ ## [0.1.5] - 2025-11-10
112
+
113
+ ### Fixed
114
+ - MCP server version now also read dynamically from package.json
115
+ - Complete version consistency across CLI and MCP server
116
+
10
117
  ## [0.1.4] - 2025-11-10
11
118
 
12
119
  ### Fixed
@@ -211,6 +318,7 @@ This UAT release operationalizes LeanSpec's five first principles:
211
318
  - Gray-matter for frontmatter parsing
212
319
  - Dayjs for date handling
213
320
 
321
+ [0.1.5]: https://github.com/codervisor/lean-spec/releases/tag/v0.1.5
214
322
  [0.1.4]: https://github.com/codervisor/lean-spec/releases/tag/v0.1.4
215
323
  [0.1.3]: https://github.com/codervisor/lean-spec/releases/tag/v0.1.3
216
324
  [0.1.2]: https://github.com/codervisor/lean-spec/releases/tag/v0.1.2
@@ -459,8 +459,8 @@ async function getProjectName(cwd = process.cwd()) {
459
459
  try {
460
460
  const packageJsonPath = path4.join(cwd, "package.json");
461
461
  const content = await fs4.readFile(packageJsonPath, "utf-8");
462
- const packageJson = JSON.parse(content);
463
- return packageJson.name || null;
462
+ const packageJson2 = JSON.parse(content);
463
+ return packageJson2.name || null;
464
464
  } catch {
465
465
  return null;
466
466
  }
@@ -4710,6 +4710,14 @@ async function mcpCommand() {
4710
4710
  }
4711
4711
 
4712
4712
  // src/mcp-server.ts
4713
+ import { readFileSync } from "fs";
4714
+ import { fileURLToPath as fileURLToPath2 } from "url";
4715
+ import { dirname as dirname3, join as join18 } from "path";
4716
+ var __filename2 = fileURLToPath2(import.meta.url);
4717
+ var __dirname3 = dirname3(__filename2);
4718
+ var packageJson = JSON.parse(
4719
+ readFileSync(join18(__dirname3, "../package.json"), "utf-8")
4720
+ );
4713
4721
  function formatErrorMessage(prefix, error) {
4714
4722
  const errorMsg = error instanceof Error ? error.message : String(error);
4715
4723
  return `${prefix}: ${errorMsg}`;
@@ -4861,7 +4869,7 @@ async function getDepsData(specPath) {
4861
4869
  async function createMcpServer() {
4862
4870
  const server = new McpServer({
4863
4871
  name: "lean-spec",
4864
- version: "0.1.0"
4872
+ version: packageJson.version
4865
4873
  });
4866
4874
  server.registerTool(
4867
4875
  "list",
@@ -5645,4 +5653,4 @@ export {
5645
5653
  createMcpServer,
5646
5654
  mcpCommand
5647
5655
  };
5648
- //# sourceMappingURL=chunk-S6TGAL75.js.map
5656
+ //# sourceMappingURL=chunk-J7ZSZ5VJ.js.map