v0.4.0 — AI-Assisted Spec Authoring

Spec-driven dependency graphs

Define project specs in markdown. Declare dependencies and feature contracts with YAML frontmatter. Create new specs with an AI assistant. Visualize everything as a live, interactive graph.

Get started See how it works
$ npx @moejay/modspec ./spec/
Features

Everything you need

Interactive graph

D3-powered force-directed visualization with zoom, pan, and drag. Click any node to explore its details.

Multiple layouts

Switch between Force, Tree (top-down hierarchy), and Manual (free positioning) modes with one click.

Inline editing

Edit spec bodies and feature files directly in the browser. Changes save back to disk instantly.

Live reload

Dev server watches your files and pushes changes via SSE. Edit in your editor, see it update in real time.

Feature tracking

Declare which features each module uses from its dependencies. Gherkin feature files define the interface — uses tracks the contracts.

Group clustering

Organize specs into groups. Modules in the same group are visually clustered with colored hulls in the graph.

AI spec assistant

Create new specs from the UI with an AI chat assistant powered by Claude Code. Describe what you need, review the output, and save — the graph updates instantly.

Configurable permissions

Fine-tune which tools the AI can use, set permission modes, and toggle dangerous-skip for sandboxed environments. Settings persist in localStorage.

How it works

Three steps to a living spec graph

Write specs

Create .md files with YAML frontmatter declaring name, depends_on with uses, group, tags, and a features path.

Add features

Write standard Gherkin .feature files with Scenarios and Given/When/Then steps. Link them from your spec.

Visualize

Run modspec ./spec/ and open the browser. Explore your dependency graph, click nodes, switch layouts.

---
name: persistence
description: SQLite database layer
group: infrastructure
tags: [database, storage]
depends_on:
  - name: bootstrap
    uses: [project-scaffolding]
features: features/persistence/
---

# Persistence

Handles the database abstraction layer.
Uses SQLite for local-first storage.