{"id":46604580,"url":"https://github.com/supernovae-st/novanet","last_synced_at":"2026-04-01T21:52:47.486Z","repository":{"id":342313659,"uuid":"1142553614","full_name":"supernovae-st/novanet","owner":"supernovae-st","description":"🪽 NovaNet — Native content generation engine powered by Neo4j knowledge graphs (Turborepo monorepo)","archived":false,"fork":false,"pushed_at":"2026-03-30T17:04:22.000Z","size":1296870,"stargazers_count":2,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-30T19:07:36.015Z","etag":null,"topics":["ai","content-generation","knowledge-graph","localization","mcp","neo4j","nextjs","ratatui","rust","tui","turborepo","typescript"],"latest_commit_sha":null,"homepage":"https://qrcode-ai.com","language":"Cypher","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/supernovae-st.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG-LATEST.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-26T15:04:26.000Z","updated_at":"2026-03-30T17:04:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/supernovae-st/novanet","commit_stats":null,"previous_names":["supernovae-st/novanet"],"tags_count":43,"template":false,"template_full_name":null,"purl":"pkg:github/supernovae-st/novanet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supernovae-st%2Fnovanet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supernovae-st%2Fnovanet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supernovae-st%2Fnovanet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supernovae-st%2Fnovanet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/supernovae-st","download_url":"https://codeload.github.com/supernovae-st/novanet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/supernovae-st%2Fnovanet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","content-generation","knowledge-graph","localization","mcp","neo4j","nextjs","ratatui","rust","tui","turborepo","typescript"],"created_at":"2026-03-07T17:09:31.284Z","updated_at":"2026-04-01T21:52:47.473Z","avatar_url":"https://github.com/supernovae-st.png","language":"Cypher","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🪽 NovaNet\n\n**Native content generation engine powered by Neo4j knowledge graphs**\n\n\u003e **Status: Active Development** — NovaNet is the knowledge layer of the [SuperNovae](https://github.com/supernovae-st) ecosystem. Currently in stabilization while [Nika](https://github.com/supernovae-st/nika) (the runtime) prepares for its open source launch. v0.21.0 stable, 2,215 tests passing.\n\nGenerate culturally-native content across 200+ locales — not translation, but true localization from semantic concepts.\n\n[![CI](https://img.shields.io/github/actions/workflow/status/supernovae-st/novanet/ci.yml?branch=main\u0026style=flat-square\u0026label=CI)](https://github.com/supernovae-st/novanet/actions)\n[![Tests](https://img.shields.io/badge/tests-2215_passing-success?style=flat-square)](https://github.com/supernovae-st/novanet)\n[![Rust](https://img.shields.io/badge/Rust-1.86-DEA584?style=flat-square\u0026logo=rust\u0026logoColor=white)](https://rust-lang.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?style=flat-square\u0026logo=typescript\u0026logoColor=white)](https://typescriptlang.org)\n[![Neo4j](https://img.shields.io/badge/Neo4j-5.26-018bff?style=flat-square\u0026logo=neo4j\u0026logoColor=white)](https://neo4j.com)\n[![Turborepo](https://img.shields.io/badge/Turborepo-2.8-EF4444?style=flat-square\u0026logo=turborepo\u0026logoColor=white)](https://turbo.build)\n[![pnpm](https://img.shields.io/badge/pnpm-9-F69220?style=flat-square\u0026logo=pnpm\u0026logoColor=white)](https://pnpm.io)\n[![Node](https://img.shields.io/badge/Node-≥20-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white)](https://nodejs.org)\n\n\u003c/div\u003e\n\n---\n\n\u003e **Generation, NOT Translation**\n\u003e\n\u003e ```\n\u003e Source → Translate → Target                           ❌ Traditional\n\u003e Entity (defined) → Generate natively → EntityNative ✅ NovaNet\n\u003e ```\n\u003e\n\u003e Content is generated natively per locale from defined semantic entities, not translated from a source language.\n\u003e Each locale gets culturally-native content, preserving local nuances that translation would lose.\n\n---\n\n## Features\n\n|  |  |  |  |\n|:---:|:---:|:---:|:---:|\n| **Knowledge Graph** | **200+ Locales** | **Graph Studio** | **AI-Powered** |\n| 47 node types, 153 arcs | Native generation per locale | Interactive 2D visualization | Claude API for natural language queries |\n| Neo4j with APOC | Locale knowledge layer | React Flow + ELK.js layouts | Cypher generation from text |\n\n---\n\n## Architecture\n\n```mermaid\n%%{init: {'theme': 'base', 'themeVariables': {\n  'primaryColor': '#6366f1',\n  'primaryTextColor': '#fff',\n  'primaryBorderColor': '#4f46e5',\n  'lineColor': '#94a3b8',\n  'secondaryColor': '#06b6d4',\n  'tertiaryColor': '#f8fafc'\n}}}%%\nflowchart TB\n    subgraph MONO[\"NovaNet Monorepo\"]\n        direction TB\n        CORE[\"@novanet/core v0.24.0\\nTypes · Schemas · Filters\"]\n        DB[\"@novanet/db v0.24.0\\nDocker · Seeds · Migrations\"]\n        STUDIO[\"@novanet/studio v0.24.0\\nNext.js 16 · React 19\"]\n        RUST[\"novanet CLI v0.24.0\\nRust · 30 commands · TUI\"]\n    end\n\n    CORE --\u003e STUDIO\n    RUST -.-\u003e|reads YAML| CORE\n    RUST -.-\u003e|generates| DB\n\n    NEO4J[(\"Neo4j 5.26\\n~120,000 nodes\")]\n    DB -.-\u003e NEO4J\n    STUDIO --\u003e NEO4J\n    RUST --\u003e NEO4J\n\n    style CORE fill:#06b6d4,stroke:#0891b2,color:#fff\n    style DB fill:#10b981,stroke:#059669,color:#fff\n    style STUDIO fill:#8b5cf6,stroke:#7c3aed,color:#fff\n    style RUST fill:#DEA584,stroke:#B7410E,color:#fff\n    style NEO4J fill:#018bff,stroke:#0284c7,color:#fff\n```\n\n---\n\n## Quick Start\n\n**Prerequisites**\n\n![Node.js](https://img.shields.io/badge/Node.js-≥20-339933?style=flat-square\u0026logo=node.js\u0026logoColor=white)\n![pnpm](https://img.shields.io/badge/pnpm-≥9-F69220?style=flat-square\u0026logo=pnpm\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-Required-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white)\n\n```bash\n# 1. Clone the repository\ngit clone git@github.com:supernovae-st/supernovae-agi.git\ncd supernovae-agi/novanet\n\n# 2. Install dependencies\npnpm install\n\n# 3. Start Neo4j\npnpm infra:up\n\n# 4. Seed the database\npnpm infra:seed\n\n# 5. Start development server\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) — Neo4j Browser at [http://localhost:7474](http://localhost:7474)\n\n---\n\n## Monorepo Structure\n\n```\nnovanet/\n├── turbo.json                 # Turborepo pipeline config\n├── pnpm-workspace.yaml        # Workspace definitions\n├── packages/\n│   ├── core/                  # @novanet/core — types, schemas, filters\n│   │   ├── models/            # YAML schema definitions (source of truth)\n│   │   │   ├── taxonomy.yaml  # 2 realms (shared 4 + org 5), 9 layers\n│   │   │   ├── node-classes/    # node definitions by realm/layer\n│   │   │   └── arc-classes/     # arc definitions by family\n│   │   ├── data/              # YAML data files (1,269 — single source of truth)\n│   │   └── src/               # TypeScript implementation\n│   └── db/                    # @novanet/db — Neo4j infrastructure\n│       ├── docker-compose.yml # Neo4j 5.26 + APOC\n│       ├── seed/              # Cypher seed scripts\n│       └── seed.sh            # Seed runner\n├── tools/\n│   ├── novanet/               # Rust CLI + TUI binary\n│   │   ├── src/               # Rust source (30 commands, 19 generators)\n│   │   └── Cargo.toml         # 2,215 tests passing, zero clippy warnings\n│   └── novanet-mcp/           # MCP Server (7 tools)\n└── apps/\n    └── studio/                # @novanet/studio — web visualization\n        ├── src/app/           # Next.js App Router\n        ├── src/components/    # React components\n        ├── src/stores/        # Zustand state management\n        └── src/lib/           # Utilities\n```\n\n---\n\n## Packages\n\n| Package | Version | Description |\n|---------|---------|-------------|\n| **@novanet/core** | `0.24.0` | Types, Zod schemas, NovaNetFilter API, Cypher generators |\n| **@novanet/db** | `0.24.0` | Docker Compose for Neo4j, Cypher seeds, migrations |\n| **@novanet/studio** | `0.24.0` | Interactive graph visualization with AI chat |\n| **tools/novanet** | `0.24.0` | Rust CLI + TUI for schema generation, validation, queries |\n| **tools/novanet-mcp** | `0.24.0` | MCP Server for AI agent integration (7 tools) |\n\n---\n\n## Commands\n\n### Development\n\n| Command | Description |\n|---------|-------------|\n| `pnpm dev` | Start Studio dev server |\n| `pnpm build` | Build all packages |\n| `pnpm lint` | Lint all packages |\n| `pnpm type-check` | TypeScript type checking |\n| `pnpm test` | Run all tests |\n\n### Infrastructure\n\n| Command | Description |\n|---------|-------------|\n| `pnpm infra:up` | Start Neo4j container |\n| `pnpm infra:down` | Stop Neo4j container |\n| `pnpm infra:seed` | Seed database with initial data |\n| `pnpm infra:reset` | Reset database (down + up + seed) |\n\n### Rust CLI (tools/novanet)\n\n```bash\n# Schema operations (YAML → Cypher/TS/Mermaid)\ncargo run -- schema generate        # Regenerate all artifacts\ncargo run -- schema validate        # Validate YAML coherence\n\n# Navigation\ncargo run -- blueprint              # Schema-graph visualization\ncargo run -- doctor                 # System health check\n\n# Seed pipeline (YAML-first data management)\ncargo run -- seed export            # Parse Cypher seeds → YAML data files\ncargo run -- seed generate-data     # Generate Cypher from YAML data\ncargo run -- seed validate          # Validate YAML data files (CI gate)\ncargo run -- seed diff              # Compare YAML data with Neo4j\ncargo run -- seed scaffold          # Scaffold pages, blocks, instructions for entities\n\n# Data management\ncargo run -- data backup            # Save Neo4j data to YAML\ncargo run -- data status            # Compare backup vs live\ncargo run -- data promote           # Promote runtime nodes to seed\ncargo run -- data pull              # Pull Neo4j native content to YAML data\n\n# Interactive TUI\ncargo run -- tui                    # Galaxy-themed terminal UI\n```\n\n### Turborepo Filters\n\n```bash\npnpm build --filter=@novanet/core        # Build only core\npnpm test --filter=@novanet/studio       # Test only studio\npnpm build --filter=...[HEAD^1]          # Build changed packages\n```\n\n---\n\n## Neo4j Access\n\n```\nBrowser:  http://localhost:7474\nBolt:     bolt://localhost:7687\nUser:     neo4j\nPassword: (see NEO4J_PASSWORD env var)\n```\n\n---\n\n## Graph Schema\n\nNovaNet models content as a knowledge graph with **2 Realms** and **9 Layers** (v0.24.0):\n\n| Realm | Layers | Description |\n|-------|--------|-------------|\n| **Shared** | config, locale, geography, knowledge | Universal definitions + locale knowledge (READ-ONLY) — 33 nodes |\n| **Org** | foundation, structure, semantic, instruction, output | Organization-specific content — 14 nodes |\n\nArcs are classified by **6 ArcFamilies**: ownership, localization, semantic, generation, mining, schema.\n\nSee [`packages/core/models/taxonomy.yaml`](packages/core/models/taxonomy.yaml) for complete schema.\n\n---\n\n## TUI (Terminal UI)\n\n**NovaNet TUI** is an interactive terminal explorer for the knowledge graph:\n\n```\n╭─ ● Data │ Org → Foundation → Entity (12) ──────────────────╮╭─ Identity ──────╮\n│ ▶ Node Classes (47)                                    │◉│  │ ◇ Entity        │\n│   ├─▶ ◉ Shared (33)                                   │ │  │ realm: org      │\n│   │  ├─▶ ⚙ config (2)                                 │◉│  │ layer: found.   │\n│   │  ├─▶ 🌐 locale (3)                                │ │  │                 │\n│   │  ├─▶ 🗺 geography (7)                              │◉│  │ ▰▰▰▰▰▰▰▰▱▱ 80%│\n│   │  └─▶ 🧠 knowledge (21)                            │ │  ╰─────────────────╯\n│   └─▶ ◎ Org (14)                                      │◎│  ╭─ Properties ────╮\n│      ├─▶ 🏛 foundation (6)                             │ │  │ key    qr-code  │\n│      │  ├─ Entity (12)                                 │ │  │ name   QR Code  │\n│      │  │  \u003e qr-code ···················· ▰▰▰▰▰▰▰▰▱▱  │ │  │ desc   Quick... │\n│      │  │    barcode ···················· ▰▰▰▰▰▰▱▱▱▱  │ │  │ slug   qr-code  │\n│      │  │    nfc-tag ···················· ▰▰▰▱▱▱▱▱▱▱  │ │  ╰─────────────────╯\n╰────────────────────────────────────────────────────────╯╰╯\n```\n*Galaxy-themed terminal UI with 40+ keybindings, fuzzy search, and live Neo4j data*\n\n- **Viewport culling** — Only renders visible lines (O(1) per frame)\n- **5 render caches** — Zero-allocation idle frames\n- **Fuzzy search** — nucleo-powered smart-case matching\n- **Panel zoom** — `z` maximizes any panel to full screen\n- **YAML preview** — Syntax-highlighted schema definitions\n- **Atom tree** — Browse knowledge atoms (Expression, Pattern, CultureRef) per class\n- **Keyword tree** — SEOKeyword locale/intent grouping with load-more\n\n---\n\n## MCP Server (AI Agent Integration)\n\n**7 tools** for AI agents to interact with the knowledge graph via [Model Context Protocol](https://modelcontextprotocol.io):\n\n| Tool | Purpose |\n|------|---------|\n| `novanet_describe` | Bootstrap — first contact with graph |\n| `novanet_search` | Find nodes + graph walk (4 modes) |\n| `novanet_introspect` | Schema info (classes, arcs) |\n| `novanet_context` | LLM context assembly (page/block/knowledge) |\n| `novanet_write` | Mutations (dry_run=true to validate first) |\n| `novanet_audit` | Quality checks + CSR metrics |\n| `novanet_batch` | Parallel operations |\n\n---\n\n## Studio Features\n\n**NovaNet Studio** is a web-based graph visualization tool:\n\n```\n┌─────────────────────────────────────────────────────────────────────────────┐\n│  NovaNet Studio                                          ⌘K  ⌘J  ?  N  F   │\n├─────────────────────────────────────────────────────────────────────────────┤\n│ ┌─ Filters ──────┐  ┌─ Graph View ─────────────────────┐  ┌─ Details ────┐ │\n│ │ Realm          │  │                                  │  │ Page         │ │\n│ │ ☑ Shared       │  │      [Locale]──┐                 │  │ key: home    │ │\n│ │ ☑ Org          │  │          │     ▼                 │  │ realm: org   │ │\n│ │                │  │   [Project]──[Page]──[Block]     │  │ layer: struc │ │\n│ │                │  │          │     │                 │  │              │ │\n│ │ Layer          │  │          ▼     ▼                 │  │ Relations:   │ │\n│ │ ☑ Foundation   │  │   [Entity]──[EntityNative]       │  │ → 3 blocks   │ │\n│ │ ☑ Structure    │  │          │                       │  │ → 1 project  │ │\n│ │ ☑ Semantic     │  │          ▼                       │  │              │ │\n│ │ ...            │  │   [BlockNative]                  │  │ [Copy JSON]  │ │\n│ └────────────────┘  └──────────────────────────────────┘  └──────────────┘ │\n├─────────────────────────────────────────────────────────────────────────────┤\n│  Mode: Graph  │  47 nodes  │  153 arcs  │  Zoom: 100%  │  Locale: fr-FR │\n└─────────────────────────────────────────────────────────────────────────────┘\n```\n*Interactive 2D graph visualization with AI-powered queries (⌘J)*\n\n- **Graph Mode** — Unified tree exploration with `[1]` key\n- **9 Filter Presets** — Quick views via `1-8, 0` keys\n- **AI Chat** — Natural language to Cypher with `⌘J`\n- **40+ Keyboard Shortcuts** — Full keyboard navigation\n- **DX-First** — Every property is copyable (JSON/TS/YAML)\n\n---\n\n## Tech Stack\n\n**Runtime**\n\n![React](https://img.shields.io/badge/React-19-61DAFB?style=flat-square\u0026logo=react\u0026logoColor=white)\n![Next.js](https://img.shields.io/badge/Next.js-16-000000?style=flat-square\u0026logo=next.js\u0026logoColor=white)\n![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?style=flat-square\u0026logo=typescript\u0026logoColor=white)\n![Tailwind](https://img.shields.io/badge/Tailwind-3.4-06B6D4?style=flat-square\u0026logo=tailwindcss\u0026logoColor=white)\n\n**Data**\n\n![Neo4j](https://img.shields.io/badge/Neo4j-5.26-018bff?style=flat-square\u0026logo=neo4j\u0026logoColor=white)\n![Zustand](https://img.shields.io/badge/Zustand-5-764ABC?style=flat-square)\n![Zod](https://img.shields.io/badge/Zod-3.24-3E67B1?style=flat-square)\n\n**Tools**\n\n![Turborepo](https://img.shields.io/badge/Turborepo-2.8-EF4444?style=flat-square\u0026logo=turborepo\u0026logoColor=white)\n![pnpm](https://img.shields.io/badge/pnpm-9-F69220?style=flat-square\u0026logo=pnpm\u0026logoColor=white)\n![Docker](https://img.shields.io/badge/Docker-Compose-2496ED?style=flat-square\u0026logo=docker\u0026logoColor=white)\n\n---\n\n## Environment Variables\n\nCopy `.env.example` to `.env.local` in `apps/studio/`:\n\n```bash\n# Required\nNEO4J_PASSWORD=novanetpassword\n\n# Optional (for AI features)\nANTHROPIC_API_KEY=sk-ant-xxx\n```\n\n---\n\n## Target Application\n\nNovaNet powers **[QR Code AI](https://qrcode-ai.com)** — generating native content across 200+ locales for the world's most advanced QR code platform.\n\n---\n\n## License\n\nThis project is **proprietary software** owned by [SuperNovae Studio](https://github.com/supernovae-st). All rights reserved.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[SuperNovae Studio](https://github.com/supernovae-st)**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupernovae-st%2Fnovanet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsupernovae-st%2Fnovanet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsupernovae-st%2Fnovanet/lists"}