speclock 2.1.0 → 2.1.1

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 CHANGED
@@ -50,11 +50,14 @@ No other tool does this. Not Claude's native memory. Not Mem0. Not CLAUDE.md fil
50
50
  | Remembers context | Yes | Yes | Manual | **Yes** |
51
51
  | **Stops the AI from breaking things** | No | No | No | **Yes — active enforcement** |
52
52
  | **Semantic conflict detection** | No | No | No | **Yes — semantic engine v2 (100% detection, 0% false positives)** |
53
+ | **Tamper-proof audit trail** | No | No | No | **Yes — HMAC-SHA256 hash chain** |
54
+ | **Compliance exports** | No | No | No | **Yes — SOC 2, HIPAA, CSV** |
53
55
  | Works on Bolt.new | No | No | No | **Yes — npm file-based mode** |
54
56
  | Works on Lovable | No | No | No | **Yes — MCP remote** |
55
57
  | Structured decisions/locks | No | Tags only | Flat text | **Goals, locks, decisions, changes** |
56
58
  | Git-aware (checkpoints, rollback) | No | No | No | **Yes** |
57
59
  | Drift detection | No | No | No | **Yes — scans changes against locks** |
60
+ | CI/CD integration | No | No | No | **Yes — GitHub Actions** |
58
61
  | Multi-agent timeline | No | No | No | **Yes** |
59
62
  | Cross-platform | Claude only | MCP only | Tool-specific | **Universal (MCP + npm)** |
60
63
 
@@ -189,10 +192,10 @@ Result: NO CONFLICT (confidence: 7%)
189
192
  | Mode | Platforms | How It Works |
190
193
  |------|-----------|--------------|
191
194
  | **MCP Remote** | Lovable, bolt.diy, Base44 | Connect via URL — no install needed |
192
- | **MCP Local** | Claude Code, Cursor, Windsurf, Cline | `npx speclock serve` — 22 tools via MCP |
195
+ | **MCP Local** | Claude Code, Cursor, Windsurf, Cline | `npx speclock serve` — 24 tools via MCP |
193
196
  | **npm File-Based** | Bolt.new, Aider, Rocket.new | `npx speclock setup` — AI reads SPECLOCK.md + uses CLI |
194
197
 
195
- ## 22 MCP Tools
198
+ ## 24 MCP Tools
196
199
 
197
200
  ### Memory Management
198
201
  | Tool | Purpose |
@@ -240,6 +243,12 @@ Result: NO CONFLICT (confidence: 7%)
240
243
  | `speclock_report` | Violation report — blocked change stats |
241
244
  | `speclock_audit` | Audit staged files against active locks |
242
245
 
246
+ ### Enterprise (v2.1)
247
+ | Tool | Purpose |
248
+ |------|---------|
249
+ | `speclock_verify_audit` | Verify HMAC audit chain integrity — tamper detection |
250
+ | `speclock_export_compliance` | Generate SOC 2 / HIPAA / CSV compliance reports |
251
+
243
252
  ## Auto-Guard: Locks That Actually Work
244
253
 
245
254
  When you add a lock, SpecLock **automatically finds and guards related files**:
@@ -303,12 +312,68 @@ speclock audit # Audit staged files against locks
303
312
  speclock log-change <text> --files x # Log a change
304
313
  speclock context # Regenerate context file
305
314
 
315
+ # Enterprise (v2.1)
316
+ speclock audit-verify # Verify HMAC audit chain integrity
317
+ speclock export --format <soc2|hipaa|csv> # Compliance export
318
+ speclock license # Show license tier and usage
319
+
306
320
  # Other
307
321
  speclock status # Show brain summary
308
322
  speclock serve [--project <path>] # Start MCP server
309
323
  speclock watch # Start file watcher
310
324
  ```
311
325
 
326
+ ## Enterprise Features (v2.1)
327
+
328
+ ### HMAC Audit Chain
329
+ Every event in `events.log` gets an HMAC-SHA256 hash chained to the previous event. Modify any event and the chain breaks — instant tamper detection.
330
+
331
+ ```bash
332
+ $ npx speclock audit-verify
333
+
334
+ Audit Chain Verification
335
+ ==================================================
336
+ Status: VALID
337
+ Total events: 47
338
+ Hashed events: 47
339
+ Legacy events (pre-v2.1): 0
340
+ Audit chain verified. No tampering detected.
341
+ ```
342
+
343
+ ### Compliance Exports
344
+ Generate audit-ready reports for regulated industries:
345
+
346
+ ```bash
347
+ npx speclock export --format soc2 # SOC 2 Type II JSON report
348
+ npx speclock export --format hipaa # HIPAA PHI protection report
349
+ npx speclock export --format csv # All events as CSV spreadsheet
350
+ ```
351
+
352
+ SOC 2 reports include: constraint change history, access logs, decision audit trail, audit chain integrity verification. HIPAA reports filter for PHI-related constraints and check encryption/access control status.
353
+
354
+ ### License Tiers
355
+ | Tier | Price | Locks | Features |
356
+ |------|-------|-------|----------|
357
+ | **Free** | $0 | 10 | Conflict detection, MCP, CLI, context |
358
+ | **Pro** | $19/mo | Unlimited | + LLM detection, HMAC audit, compliance exports |
359
+ | **Enterprise** | $99/mo | Unlimited | + RBAC, encrypted storage, SSO |
360
+
361
+ ### HTTP Server Hardening
362
+ - Rate limiting: 100 req/min per IP (configurable via `SPECLOCK_RATE_LIMIT`)
363
+ - CORS: configurable origins via `SPECLOCK_CORS_ORIGINS`
364
+ - Health endpoint: `GET /health` with uptime and audit chain status
365
+
366
+ ### GitHub Actions
367
+ ```yaml
368
+ # In your workflow:
369
+ - uses: sgroy10/speclock-check@v2
370
+ with:
371
+ fail-on-conflict: true
372
+ ```
373
+ Audits changed files against locks, posts PR comments, fails workflow on violations.
374
+
375
+ ---
376
+
312
377
  ## Architecture
313
378
 
314
379
  ```
@@ -317,18 +382,20 @@ speclock watch # Start file watcher
317
382
  └──────────────┬──────────────────┬────────────────────┘
318
383
  │ │
319
384
  MCP Protocol File-Based (npm)
320
- (22 tool calls) (reads SPECLOCK.md +
385
+ (24 tool calls) (reads SPECLOCK.md +
321
386
  .speclock/context/latest.md,
322
387
  runs CLI commands)
323
388
  │ │
324
389
  ┌──────────────▼──────────────────▼────────────────────┐
325
390
  │ SpecLock Core Engine │
326
- Memory | Tracking | Enforcement | Git | Intelligence│
391
+ Memory | Tracking | Enforcement | Git | Intelligence
392
+ │ Audit | Compliance | License │
327
393
  └──────────────────────┬───────────────────────────────┘
328
394
 
329
395
  .speclock/
330
396
  ├── brain.json (structured memory)
331
- ├── events.log (immutable audit trail)
397
+ ├── events.log (HMAC-signed audit trail)
398
+ ├── .audit-key (HMAC secret — gitignored)
332
399
  ├── patches/ (git diffs per event)
333
400
  └── context/
334
401
  └── latest.md (human-readable context)
@@ -352,4 +419,4 @@ MIT License - see [LICENSE](LICENSE) file.
352
419
 
353
420
  ---
354
421
 
355
- *SpecLock v2.0.0 — Real semantic conflict detection. 100% detection, 0% false positives. Because remembering isn't enough — AI needs to respect boundaries.*
422
+ *SpecLock v2.1.0 — Semantic conflict detection + enterprise audit & compliance. 100% detection, 0% false positives. HMAC audit chain, SOC 2/HIPAA exports. Because remembering isn't enough — AI needs to respect boundaries.*
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "speclock",
3
- "version": "2.1.0",
3
+ "version": "2.1.1",
4
4
  "description": "AI constraint engine with semantic conflict detection, HMAC audit chain, SOC 2/HIPAA compliance exports. 100% detection, 0% false positives. 24 MCP tools + CLI. Enterprise-ready memory + enforcement.",
5
5
  "type": "module",
6
6
  "main": "src/mcp/server.js",
package/src/cli/index.js CHANGED
@@ -82,7 +82,7 @@ function refreshContext(root) {
82
82
 
83
83
  function printHelp() {
84
84
  console.log(`
85
- SpecLock v2.1.0 — AI Constraint Engine (Enterprise)
85
+ SpecLock v2.1.1 — AI Constraint Engine (Enterprise)
86
86
  Developed by Sandeep Roy (github.com/sgroy10)
87
87
 
88
88
  Usage: speclock <command> [options]
@@ -9,7 +9,7 @@
9
9
  import { readBrain, readEvents } from "./storage.js";
10
10
  import { verifyAuditChain } from "./audit.js";
11
11
 
12
- const VERSION = "2.1.0";
12
+ const VERSION = "2.1.1";
13
13
 
14
14
  // PHI-related keywords for HIPAA filtering
15
15
  const PHI_KEYWORDS = [
@@ -48,7 +48,7 @@ import {
48
48
  } from "../core/git.js";
49
49
 
50
50
  const PROJECT_ROOT = process.env.SPECLOCK_PROJECT_ROOT || process.cwd();
51
- const VERSION = "2.1.0";
51
+ const VERSION = "2.1.1";
52
52
  const AUTHOR = "Sandeep Roy";
53
53
  const START_TIME = Date.now();
54
54
 
package/src/mcp/server.js CHANGED
@@ -61,7 +61,7 @@ const PROJECT_ROOT =
61
61
  args.project || process.env.SPECLOCK_PROJECT_ROOT || process.cwd();
62
62
 
63
63
  // --- MCP Server ---
64
- const VERSION = "2.1.0";
64
+ const VERSION = "2.1.1";
65
65
  const AUTHOR = "Sandeep Roy";
66
66
 
67
67
  const server = new McpServer(