-
Notifications
You must be signed in to change notification settings - Fork 0
Releases: forkzero/lattice
v0.2.4
Summary
Makes the health/freshness gate index-aware so catch-up commits pass without --no-verify, lists affected files in health output, and adds update notification to --version.
What's New
- Index-aware pre-commit gate (#31):
health --strict --checkandfreshness --checknow detect staged.lattice/changes. A commit that includes a lattice update passes the gate — no bootstrap--no-verifyneeded. - Affected file listing:
lattice healthnow shows which specific lattice-tracked files triggered the WARN/FAIL verdict - Update notification on
--version:lattice -Vnow shows "A new version is available" when one exists (was bypassed by clap's built-in handler)
Example output
HEALTH: FAIL
Freshness:
Lattice is 359h behind code changes
Code Impact:
14 files changed since last lattice update
5 of 16 lattice-tracked files affected
src/main.rs
src/storage.rs
src/types.rs
Makefile
README.md
With staged lattice changes:
HEALTH: PASS
Freshness:
Lattice update staged — credited
Code Impact:
Lattice update staged — diff coupling cleared
Fixes #31
Full Changelog: v0.2.3...v0.2.4
Assets 8
v0.2.3
Summary
Fixes health --strict to block on what this commit breaks, not wall-clock time. Freshness threshold now configurable.
What's Changed
health --strictnow FAILs on diff-coupled staleness: if you edited files bound in implementation nodes without updating the lattice, strict mode blocks. This is the actionable signal — caused by this commit, fixable now.- Lone wall-clock staleness stays WARN in strict mode. Time-based thresholds belong at branch/repo altitude (pre-push, CI), not on individual commits.
- Freshness threshold configurable via
freshness_threshold_hoursin.lattice/config.yaml(default: 72h)
Verdict logic (strict mode)
FAIL: lint issues, OR tracked files changed without lattice update (diff-coupled)
FAIL: change pressure + signals combine, OR high pressure (>3)
WARN: any single signal (stale, some pressure, code changed)
PASS: nothing flagged
Fixes #30
Full Changelog: v0.2.2...v0.2.3
Assets 8
v0.2.2
Summary
Adds --strict to lattice health, reorganizes help into AUTOMATED CHECKS section, adds health check to pre-commit, and updates all documentation.
What's New
lattice health --strict— includes lint alongside freshness, change pressure, and code impact. Any lint issues escalate verdict to FAIL.- The CI one-liner:
lattice health --strict --check - AUTOMATED CHECKS help section groups health, drift, freshness, assess, lint
- ANALYSIS section for summary, diff, plan, export
- Pre-commit Makefile target now runs
lattice health --strict --check(skips gracefully if lattice not installed or too old)
What's Changed
- Updated README, CLAUDE.md for v0.2.x (messages, adversarial debate, health, assess, freshness)
- Trimmed SKILL.md and prompt templates — reference CLI help instead of duplicating tables (54% smaller)
- Fixed help integration test for renamed section headings
Full Changelog: v0.2.1...v0.2.2
Assets 8
v0.2.1
Summary
Adds lattice health — a unified CI gate that combines freshness, change pressure, and code impact into a single PASS/WARN/FAIL verdict.
What's New
lattice health— one command, one verdict:- Freshness: hours since lattice was updated relative to code
- Change pressure: contested theses + drift items
- Code impact: files changed since last lattice update that are bound in implementation nodes (lattice-tracked files)
--checkexits 2 on FAIL for CI gates; WARN exits 0--format jsonfor automation
Verdict logic
FAIL: pressure + code/time signals together, or high pressure alone (>3)
WARN: any single signal (tracked files changed, stale >72h, or some pressure)
PASS: nothing flagged
Fixes
- Fixed NodeMeta untagged serde ordering — ThesisMeta was incorrectly matching implementation nodes due to struct-level
#[serde(default)] lattice summarynow shows message count and contested thesis count- Health command loads graph once via
build_node_indexinstead of double-loading
Full Changelog: v0.2.0...v0.2.1
Assets 8
v0.2.0
Summary
Major release adding adversarial debate primitives, persona-specific messaging, and continuous learning foundations. Lattice can now capture structured challenges to strategic positions, track confidence changes over time, and measure change pressure across the knowledge graph.
What's New
Message node type (MSG-*)
lattice add message— create persona-specific claims grounded in theses- Messages trace back to strategic positions via
grounded_inedges - Drift-detected when underlying theses weaken — know immediately when messaging is on shaky ground
- Searchable, listable, and visible in
lattice summary
Adversarial debate primitives
rebutsedge — thesis directly argues against another thesis (structured debate)concedesedge — thesis acknowledges validity of an opposing point (partial agreement)contestedstatus — signals a thesis is under active challenge; downstream requirements flagged
Confidence tracking
- Confidence history — audit trail of
{value, reason, updated_by, updated_at}entries on theses - Research lifecycle fields:
last_researched,research_scope,agent_directive
Change pressure assessment
lattice assess— compute change pressure from contested theses, confidence shifts, affected requirements, and drift--checkflag exits non-zero for CI gates — trigger planning cycles when enough has shifted
Schema versioning
- Auto-detection on every command — warns if lattice schema is older or newer than the binary
lattice migrate(hidden) — upgrades.lattice/to v0.2.0 schema- Handles both directions: "run
lattice migrate" or "runlattice update"
What's Changed
lattice summarynow shows message counts and contested thesis counts- New
adversarial_debateworkflow inlattice help workflowsand--jsoncatalog - Message node type in
conceptsblock with prefix MSG-* - All 3 new edge types documented with semantics in catalog
Fixes
- Fixed NodeMeta untagged serde ordering — variants with required fields now tried first, preventing silent data loss on thesis metadata
- Schema version comparison properly handles major.minor (ignores patch)
lattice assessuses shared node index instead of double-loading all nodes
Full Changelog: v0.1.26...v0.2.0
Assets 8
v0.1.26
Summary
Fixes a bug where lattice list -s and -p flags were silently ignored, producing unfiltered results regardless of input.
Fixes
--status/-snow validates and filters — acceptsdraft|active|deprecated|superseded, errors on invalid values likedeferredwith a clear message pointing to valid options--priority/-pnow actually filters — was also silently ignored, now filters byP0|P1|P2- Improved help text to disambiguate workflow status (
--status) from resolution filters (--blocked,--deferred)
Example
$ lattice list requirements -s deferred
Error: Invalid status: deferred. Must be draft, active, deprecated, or superseded
$ lattice list requirements -p P0
(shows only P0 requirements)
Fixes #29
Full Changelog: v0.1.25...v0.1.26
Assets 8
v0.1.25
Summary
Unifies all help output (lattice, lattice --help, lattice help) to show the same grouped, domain-aware display. Subcommand --help (e.g. lattice drift --help) still shows clap's per-command help.
What's Changed
lattice,lattice --help, andlattice helpnow all show the same grouped output:- KNOWLEDGE GRAPH — add, get, list, search, edit, resolve, verify, refine, remove, replace
- HEALTH & ANALYSIS — summary, drift, freshness, lint, diff, plan, export
- SETUP — init, update, help
- Integration commands (
mcp,prompt,push) hidden from help display (still work) - 8 new integration tests covering all help paths, grouped output, hidden commands, topics, and subcommand help
Full Changelog: v0.1.24...v0.1.25
Assets 8
v0.1.24
Summary
Reorganizes CLI help output so the domain model is immediately visible and commands are logically grouped.
What's New
- Domain summary at the top of
--helpandlattice help: "sources → theses → requirements → implementations" - Grouped command list in
lattice help: KNOWLEDGE GRAPH, HEALTH & ANALYSIS, SETUP addsubcommands expanded in help: showsadd source,add thesis,add requirement,add implementationindividually- Integration commands hidden from
--help:mcp,prompt,pushstill work but don't clutter the display
What's Changed
- Commands reordered in
--help: graph operations first, then health/analysis, then setup - All command descriptions now teach the domain by naming the four node types explicitly
lattice helpdescriptions truncated to first sentence for scannability
Full Changelog: v0.1.23...v0.1.24
Assets 8
v0.1.23
Summary
Adds lattice freshness — a staleness detector that compares the last git commit touching .lattice/ vs code files, for use in pre-commit hooks and CI.
What's New
lattice freshness: Shows when lattice and code were last updated, flags if the gap exceeds a thresholdlattice freshness --check: Exits with code 2 if stale — use in CI or pre-commit hooks--threshold <hours>: Configurable staleness window (default: 72 hours)--format json: Machine-readable output for dashboards and automation
Example usage
# Pre-commit hook or CI job lattice freshness --check --threshold 48 # Output when stale: # STALE: Code updated 2026年03月24日 21:19 UTC but lattice last updated 2026年03月17日 00:48 UTC (188 hours ago, threshold: 48h) # exit code: 2
Fixes
- Fix 4 clippy warnings from Rust 1.93 upgrade (checked_div, redundant into_iter)
Full Changelog: v0.1.22...v0.1.23
Assets 8
v0.1.22
Summary
Adds a --compact flag for LLMs that already know the lattice domain model and just need command signatures.
What's New
lattice --json --compact: Outputs only command names and parameter specs (name, type, required, description) — no examples, descriptions, concepts, or workflows. ~50% smaller than the full catalog.- Also available via
lattice help --json --compact
What's Changed
- v0.1.21 added
lattice help conceptsandlattice help workflowsfor human-readable onboarding - v0.1.20 added the full enriched catalog (concepts, workflows, structured examples, schema hints, related commands)
Full Changelog: v0.1.21...v0.1.22