Commit Graph
341 Commits
Author SHA1 Message Date
JohnWongandClaude Opus 4.6 61a28c7d6c fix: include access token in auto-opened dashboard URL
CLI --open overrides server.open config, stripping the token. Remove
--open from CLI and set server.open to /?token= so the browser opens
with the access token already included.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 23:22:05 +08:00
Lum1104andClaude Opus 4.6 16868f200d redesign: full homepage refresh with gradient keywords, new problem section, and improved visual hierarchy
- Hero: gradient "Understand" headline, badge pill, staggered entrance animations, star icon for GitHub
- New Problem section: structure vs meaning comparison with hairball SVG and domain preview cards
- Showcase: split into structural (table stakes) and business knowledge (star) with pill labels and feature tags
- Features: 2-column layout with gradient icons and tighter copy
- Install: copy-to-clipboard button
- Footer: expanded with Live Demo link and updated tagline
- Global: rose-gold-to-gold gradient tokens, .grad text utility

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 21:30:57 +08:00
Yuxiang LinandGitHub a38dea9824 Merge pull request #85 from avenue9977/refactor/Improve-graph-builder
Refactor/improve graph builder
2026-04-13 16:59:38 +08:00
Nikola Chetelyazov d11a9bb1c9 refactor: extract addChildNode helper to remove repeated boilerplate
All five child-node loops in addNonCodeFileWithAnalysis shared the same four-line pattern: dedup check, nodeIds.add, nodes.push, and a contains edge push. A private addChildNode helper centralises this so each loop only constructs the node object specific to its type.
2026-04-13 09:56:12 +03:00
Nikola Chetelyazov 45b98716ec fix: use localeCompare in languages sort for reliable alphabetical order
Default sort() uses Unicode code point ordering which can produce unexpected results for non-ASCII strings. localeCompare guarantees correct alphabetical ordering regardless of character set.
2026-04-13 09:52:13 +03:00
Nikola Chetelyazov e82235e1df refactor: return shallow copies of nodes and edges from build()
build() was returning direct references to the builder's internal arrays, allowing callers to mutate graph.nodes or graph.edges and corrupt the builder's state. Spreading into new arrays at build time prevents this at negligible cost.
2026-04-13 09:49:47 +03:00
Nikola Chetelyazov ef0c65aa17 refactor: deduplicate import and call edges via edgeKeys set
addImportEdge and addCallEdge previously pushed edges unconditionally, allowing duplicate relationships if multiple agents reported the same import or call. A shared edgeKeys set keyed on type|source|target silently skips any edge that has already been recorded.
2026-04-13 09:47:16 +03:00
Nikola Chetelyazov 5593af76ca refactor: extract endpoint label into variable to avoid duplicated template
The endpoint name template was evaluated twice — once for name and once for summary. A single const removes the duplication and resolves the nested template literal lint warning.
2026-04-13 09:44:17 +03:00
Nikola Chetelyazov 6c55ee303a refactor: return fileId from addNonCodeFile instead of recomputing it
addNonCodeFileWithAnalysis was reconstructing the fileId string independently of addNonCodeFile, creating a silent correctness risk if the ID construction logic ever changed. addNonCodeFile now returns the ID it used so the caller cannot go out of sync.
2026-04-13 09:41:12 +03:00
Nikola Chetelyazov 82b1d06777 refactor: extract basename helper to replace repeated split/pop pattern
The same filePath.split("/").pop() ?? filePath expression appeared three times across addFile, addFileWithAnalysis, and addNonCodeFile. A private static helper centralises the logic and makes call sites easier to read.
2026-04-13 09:35:55 +03:00
Nikola Chetelyazov a89555d369 refactor: promote nodeIds to class field to avoid O(n²) set rebuild
Previously addNonCodeFileWithAnalysis rebuilt a full Set from this.nodes on every call, making duplicate checks O(n) per file and O(n²) overall. Moving nodeIds to a class field and updating it incrementally at each insertion reduces duplicate detection to O(1) per check.
2026-04-13 09:33:18 +03:00
Nikola Chetelyazov c96a14c541 refactor: extract KIND_TO_NODE_TYPE as module-level constant in GraphBuilder
Previously the mapping object was recreated on every mapKindToNodeType call. Moving it to module level means it is allocated once at load time instead of once per definition node processed.
2026-04-13 09:28:02 +03:00
Lum1104andClaude Opus 4.6 ba461006ce docs: add "graphs that teach > graphs that impress" tagline to all READMEs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 00:34:37 +08:00
Lum1104andClaude Opus 4.6 569ed2a1c7 docs: add Copilot CLI installation instructions to all README translations
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 19:57:00 +08:00
Yuxiang LinandGitHub d16b27eb20 Merge pull request #84 from yujiachen-y/main
fix: add plugin manifest at marketplace-declared source path
2026-04-12 19:22:26 +08:00
jiachenandClaude Opus 4.6 72953254d2 fix: add plugin manifest under understand-anything-plugin/.claude-plugin
marketplace.json declares plugins[0].source as ./understand-anything-plugin,
so Claude Code resolves the plugin manifest at
./understand-anything-plugin/.claude-plugin/plugin.json. That file did not
exist — only .claude-plugin/plugin.json at the repo root — causing
"Marketplace sync failed. Some plugins in this marketplace have validation
errors." when adding the marketplace via /plugin marketplace add.

Adds the manifest at the path the marketplace source expects, so marketplace
sync validates and the plugin can be installed. Version matches the current
root plugin.json (2.3.1).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 17:22:30 +08:00
Lum1104andClaude Opus 4.6 ca5e3b8e21 chore: bump version to 2.3.1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v2.3.1
2026-04-12 15:23:50 +08:00
Yuxiang LinandGitHub 2162e6d5eb feat: add .understandignore support for user-configurable file exclusion 2026-04-12 12:49:32 +08:00
Lum1104andClaude Opus 4.6 55fc2ac848 fix: sync Phase 0.5 inline script with .gitignore integration and header fix
The skill's inline Node.js generator was duplicated from core and missed
the .gitignore seeding and bin/ header fix. Updated the one-liner to read
.gitignore patterns, deduplicate against defaults with trailing-slash
normalization, and remove bin/ from the built-in defaults header comment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:47:55 +08:00
Lum1104andClaude Opus 4.6 6ef1a21315 feat: seed .understandignore with .gitignore patterns on first generation
Read the project's .gitignore at starter-file generation time and include
non-default patterns as commented suggestions in .understandignore. Patterns
already covered by hardcoded defaults are deduplicated (with trailing-slash
normalization). This is a one-time inclusion — users can later remove patterns
for files they want analyzed without the filter re-reading .gitignore.

Also fixes the starter header listing bin/ as a built-in default when it is
intentionally excluded from DEFAULT_IGNORE_PATTERNS (bin/ is used by Node/Ruby
CLI launchers).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:39:31 +08:00
Lum1104 bc311c80ad Merge branch 'main' into feat/understandignore 2026-04-12 11:34:10 +08:00
Lum1104andClaude Opus 4.6 c2f5b02b2d docs: add Korean and Spanish README translations
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:31:46 +08:00
Yuxiang LinandGitHub 78c8859d2a feat: /understand-knowledge for Karpathy LLM wiki format 2026-04-12 11:24:38 +08:00
Lum1104andClaude Opus 4.6 1d15851905 fix: highlight connected edges on node selection in knowledge view
Connected edges now highlight (thicker, full opacity) when a node is
selected/focused. Unconnected edges dim to near-invisible. Edge labels
only show on connected edges to reduce visual noise.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:24:17 +08:00
Lum1104andClaude Opus 4.6 7e41ba7a68 fix: address Codex review — stable layout, scoped infra filter, basename dedup
P1: Separate force layout computation from visual state updates so
clicking/searching/touring doesn't re-randomize node positions. Layout
only recomputes when the graph data or filters change.

P1: Restrict infrastructure-file skipping (index.md, log.md, etc.) to
the wiki root level only. Nested files like concepts/index.md are now
correctly treated as content articles.

P2: Track ambiguous bare basenames in the wikilink resolution map.
Duplicate basenames (e.g., a/foo.md and b/foo.md) are removed from
the flat lookup so [[foo]] doesn't silently resolve to the wrong page.

Also fixed: edge IDs now use stable source-target-type keys instead of
array indices for proper React reconciliation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:21:24 +08:00
Lum1104andClaude Opus 4.6 d3dfbd873b docs: add /understand-knowledge to translated READMEs
Updated zh-CN, zh-TW, ja-JP, tr-TR with the same 4 changes:
tagline, knowledge base section, command example, agent table row.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:15:51 +08:00
Lum1104andClaude Opus 4.6 66a8706646 docs: add /understand-knowledge to README
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:12:38 +08:00
Lum1104andClaude Opus 4.6 2fc85e68c3 feat: add /understand-knowledge for Karpathy LLM wiki knowledge bases
Support the Karpathy LLM wiki pattern — a three-layer architecture
(raw sources + wiki markdown + schema) with wikilinks, index.md
categories, and append-only log.md.

Pipeline:
- parse-knowledge-base.py: deterministic extraction of articles,
  wikilinks, categories from index.md, source nodes from raw/
- article-analyzer agent: LLM-based entity/claim extraction and
  implicit relationship discovery (builds_on, contradicts, etc.)
- merge-knowledge-graph.py: combines scan + analysis with entity
  dedup, layer assignment from categories, tour generation

Dashboard:
- KnowledgeGraphView with d3-force layout (community clustering
  by index.md categories, degree-proportional sizing)
- 5 knowledge node types (article, entity, topic, claim, source)
- 6 knowledge edge types with visual styling
- KnowledgeNodeDetails sidebar (wikilinks, backlinks, preview)
- Auto-detect kind:"knowledge" → knowledge-only view mode

Core:
- 5 node types + 6 edge types added to NodeType/EdgeType unions
- KnowledgeMeta interface (wikilinks, backlinks, category, content)
- kind field on KnowledgeGraph for view mode detection
- Zod schemas + node/edge type aliases

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 11:09:41 +08:00
Lum1104andClaude Opus 4.6 55a03f6647 docs: add Star History rank badge to all READMEs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 09:19:13 +08:00
Lum1104andClaude Opus 4.6 b2c2934291 docs: reorganize docs/ into superpowers/specs/ and superpowers/plans/
Move all design docs to docs/superpowers/specs/ and all implementation
plans to docs/superpowers/plans/ for consistent organization.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 09:15:51 +08:00
Lum1104andClaude Opus 4.6 e58ceb856f docs: add /understand-knowledge implementation plan (14 tasks)
Detailed step-by-step plan covering core type extensions, schema validation,
dashboard changes (CSS, store, sidebar, reading panel, edge styling, layout),
agent definitions, format guides, and skill definition.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 09:15:51 +08:00
Lum1104andClaude Opus 4.6 098ad791c0 docs: add /understand-knowledge design spec for personal knowledge base plugin
New skill that takes markdown knowledge bases (Obsidian, Logseq, Dendron, Foam,
Karpathy-style, Zettelkasten, plain) and produces interactive knowledge graphs
with typed nodes/edges, auto-format detection, and dashboard visualization.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 09:15:51 +08:00
Yuxiang LinandGitHub 78b72724ed Add funding information for Patreon 2026-04-10 19:45:02 +08:00
Lum1104andClaude Opus 4.6 d3de6dc1fd fix: address code review — remove bin/ from defaults, fix negation override flow
- Remove bin/ from DEFAULT_IGNORE_PATTERNS (Node/Ruby CLI launchers use bin/)
- .NET users can add bin/ to .understandignore manually
- Fix project-scanner Step 2.5 to re-filter from original file list when
  .understandignore exists, ensuring ! negation correctly overrides defaults

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:51:59 +08:00
Lum1104 2104501bc8 fix: update pnpm-lock.yaml with ignore dependency 2026-04-10 11:45:05 +08:00
Lum1104andClaude Opus 4.6 59a6f56bfe feat(skill): add Phase 0.5 for .understandignore setup and review pause
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:39:45 +08:00
Lum1104andClaude Opus 4.6 3e27a4a8d4 feat(agent): add .understandignore support and bin/obj exclusions to project-scanner
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:38:23 +08:00
Lum1104 4201cbcb9e feat(core): export IgnoreFilter and IgnoreGenerator from core index 2026-04-10 11:36:53 +08:00
Lum1104andClaude Opus 4.6 6f8270fb37 feat(core): add IgnoreGenerator for starter .understandignore file creation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:36:23 +08:00
Lum1104andClaude Opus 4.6 5e86254b77 feat(core): add IgnoreFilter module with .understandignore parsing and tests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:33:10 +08:00
Lum1104 07b02d18ae chore(core): add ignore package for .understandignore support 2026-04-10 11:30:52 +08:00
Lum1104andClaude Opus 4.6 c077623389 docs: add .understandignore implementation plan (7 tasks)
TDD-driven plan covering IgnoreFilter module, IgnoreGenerator, core exports,
project-scanner agent update, and skill Phase 0.5 integration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:27:47 +08:00
Lum1104andClaude Opus 4.6 ce25b61e36 docs: add .understandignore design spec
User-configurable file exclusion using .gitignore syntax, with hardcoded
defaults, auto-generated starter file, and pre-analysis review pause.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 11:24:49 +08:00
Lum1104andClaude Opus 4.6 b3acd5b1d2 docs: reorganize docs/ into superpowers/specs/ and superpowers/plans/
Move all design docs to docs/superpowers/specs/ and all implementation
plans to docs/superpowers/plans/ for consistent organization.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 23:11:44 +08:00
Lum1104andClaude Opus 4.6 7c999602bf docs: add /understand-knowledge implementation plan (14 tasks)
Detailed step-by-step plan covering core type extensions, schema validation,
dashboard changes (CSS, store, sidebar, reading panel, edge styling, layout),
agent definitions, format guides, and skill definition.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 23:06:32 +08:00
Lum1104andClaude Opus 4.6 9f7931a1f9 docs: add /understand-knowledge design spec for personal knowledge base plugin
New skill that takes markdown knowledge bases (Obsidian, Logseq, Dendron, Foam,
Karpathy-style, Zettelkasten, plain) and produces interactive knowledge graphs
with typed nodes/edges, auto-format detection, and dashboard visualization.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:56:00 +08:00
Lum1104andClaude Opus 4.6 1842541a93 fix: include access token in dashboard URL reported to user
The understand-dashboard skill now instructs agents to capture and
share the full tokenized URL from the Vite server output, so users
are not blocked by the token gate.

Bump version to 2.2.1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 22:50:20 +08:00
Lum1104andClaude Opus 4.6 003339ec88 docs: add platform badges for Codex, Copilot, Gemini CLI, OpenCode
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:58:22 +08:00
Lum1104andClaude Opus 4.6 7e40b6d03a docs: add animated showcase GIFs and streamline READMEs
- Replace static overview.png with two animated GIFs (structural + domain views)
- Reorder READMEs: Features section before Quick Start
- Remove redundant sections (Why, Who is this for, duplicate feature entries)
- Move project structure/tech stack/dev commands to CONTRIBUTING.md
- Homepage: use Supabase-hosted MP4 videos via GitHub variables, GIF fallback
- Add DEMO_STRUCTURAL_VIDEO_URL and DEMO_DOMAIN_VIDEO_URL to deploy workflow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 18:42:51 +08:00
Lum1104andClaude Opus 4.6 04972b63f6 docs: update README tagline with expanded input types and multi-platform support
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 00:46:39 +08:00