Skip to content

Add design evolution system#7

Merged
nahiyankhan merged 1 commit intomainfrom
design-evolution
Apr 6, 2026
Merged

Add design evolution system#7
nahiyankhan merged 1 commit intomainfrom
design-evolution

Conversation

@nahiyankhan
Copy link
Copy Markdown
Collaborator

Summary

  • Evolves Ghost from drift detection into a design evolution observatory where drift is neutral signal, not regression
  • Adds parent lineage system — any design system can be the parent (not just ghostui), declared via parent in config
  • Adds acknowledgment commands (ghost ack, ghost adopt, ghost diverge) for human-in-the-loop intentional drift recording
  • Adds temporal comparison (--temporal flag) with drift velocity, trajectory classification, and ack-aware bounds checking
  • Adds fleet view (ghost fleet) for N-way ecosystem comparison with pairwise distances, centroid, spread, and clustering

New commands

Command Purpose
ghost profile --emit Publish .ghost-fingerprint.json as a referenceable artifact
ghost ack Acknowledge current drift with per-dimension stance
ghost adopt <fp> Shift parent baseline to a new fingerprint
ghost diverge <dim> Declare intentional divergence on a dimension
ghost compare --temporal Compare with velocity, trajectory, and ack status
ghost fleet <fp...> Ecosystem-level N-way comparison

New modules

  • evolution/parent.ts — resolve any ParentSource to a fingerprint (URL, path, package)
  • evolution/emit.ts — publish .ghost-fingerprint.json
  • evolution/history.ts — append-only .ghost/history.jsonl
  • evolution/sync.ts — read/write .ghost-sync.json acknowledgment manifest
  • evolution/temporal.ts — drift velocity and trajectory computation
  • evolution/vector.ts — per-dimension embedding-space drift vectors
  • evolution/fleet.ts — pairwise distances, centroid, spread, clustering
  • reporters/temporal.ts + reporters/fleet.ts — CLI/JSON formatters

Also fixes pre-existing noAssignInExpressions lint error in values scanner.

Test plan

  • pnpm build compiles cleanly
  • pnpm test — all 24 existing tests pass
  • pnpm check — biome lint, typecheck, file sizes all pass
  • ghost profile --emit writes .ghost-fingerprint.json and appends to .ghost/history.jsonl
  • ghost ack with a declared parent writes .ghost-sync.json
  • ghost compare a.json b.json --temporal shows velocity and trajectory
  • ghost fleet a.json b.json c.json shows pairwise distances and centroid

🤖 Generated with Claude Code

…oral awareness, fleet view

Evolves Ghost from drift detection into a design evolution observatory where
drift is neutral signal, not regression. Four phases implemented:

- Phase 1: Publishable fingerprints (.ghost-fingerprint.json), history tracking
  (.ghost/history.jsonl), and parent declaration in config
- Phase 2: Acknowledgment system with ghost ack, adopt, and diverge commands
  that record intentional stance toward drift in .ghost-sync.json
- Phase 3: Temporal comparison with drift velocity, trajectory classification,
  and ack-aware bounds checking via --temporal flag
- Phase 4: Fleet view for N-way ecosystem comparison with pairwise distances,
  centroid, spread, and basic clustering via ghost fleet command

Also fixes pre-existing noAssignInExpressions lint error in values scanner.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@nahiyankhan nahiyankhan merged commit d3ebc63 into main Apr 6, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant