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>
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>
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>
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>
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>
- 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>
The plugins array entries only support 'name' and 'source' fields.
The 'version' and 'description' keys cause schema validation failures
during the marketplace review process.
Remove root-level "version" and "description" keys that are not
recognized by the marketplace schema validator. The description
is already correctly set in the plugins array entry.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prevents TypeError crash when LLM batches emit mixed weight types
(e.g. 0.8 vs "0.7") during edge deduplication.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Python scripts to merge knowledge graphs (closes#70) and move
mechanical normalization out of LLM context into deterministic scripts
with diagnostic reporting. Convert all agent definitions from dispatch
templates to self-contained system prompts to prevent instruction loss.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a demo mode to the dashboard that fetches graph data from Supabase
Storage instead of the local Vite dev server, bypasses the token gate,
and deploys alongside the homepage at /Understand-Anything/demo/.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Instead of truncating cross_domain edge labels, compute ranksep from
the longest label length (~6px/char) so dagre spaces nodes further
apart. Also add label background for readability, and support
spacingOverrides parameter in applyDagreLayout.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add /understand-domain command, domain-analyzer agent, and two new
feature entries (Business Domain Knowledge + Structural/Domain Views)
to all 5 README versions: English, Simplified Chinese, Traditional
Chinese, Japanese, and Turkish.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. Add infrastructure edge category to EDGE_CATEGORY_MAP for 8 missing
edge types (deploys, serves, provisions, triggers, migrates, documents,
routes, defines_schema) — previously unfiltered regardless of toggles
2. navigateToDomain now switches viewMode to "domain" — previously
clicking flow buttons from structural mode was a silent no-op
3. ExportMenu JSON export for non-technical persona now keeps all
file-level types — previously dropped config/document/service/etc.
4. ProjectOverview category breakdown now includes module/concept in
Code and domain/flow/step in new Domain category
5. SearchBar type badge colors now cover all 16 node types — previously
only 5 had colors, rest fell back to file color
6. PathFinder BFS now traverses edges bidirectionally — previously
only followed forward direction, missing valid reverse paths
7. GraphView node filtering consolidated into single authoritative
type set — previously fileLevelTypes and persona conditions were
separate lists that could drift
8. SelectedNodeFitView delayed 100ms to run after layer-level fitView
on search-click navigation — previously layer fit clobbered node fit
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Function and class nodes were invisible in the graph because they
are not directly assigned to layers (only file-level nodes are).
Expand layer membership by following `contains` edges from file nodes
in the active layer to include their child function/class nodes.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous wording ("MUST have sub-nodes") implied every code file
must produce function nodes, which is wrong for files without significant
functions. Now correctly states: if significant functions exist in the
script output, you must create nodes for them.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Delete the 5 prompt template files from skills/understand/ now that
they live in agents/. Update auto-update-prompt.md hook to reference
agent definitions instead of deleted prompt files.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prompt templates (file-analyzer, project-scanner, architecture-analyzer,
tour-builder, graph-reviewer) were being compressed by the orchestrator
when dispatched as subagent prompts, causing function/class extraction
to be silently skipped. Moving them to agents/ ensures the framework
loads the full prompt without compression.
- Move 5 prompt templates from skills/understand/ to agents/
- Update SKILL.md to reference agent definitions instead of templates
- Set all agent models to `inherit` for cross-platform compatibility
- Update CLAUDE.md to reflect new agent model policy
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove direction-inverting `implemented_by` alias (same pattern as fd0df15)
- Replace ambiguous `process` alias with `business_process`
- Fix duplicate React Flow edge IDs in DomainGraphView
- Fix navigateToDomain clearing selectedNodeId and losing history
- Preserve domain viewMode when structural graph loads after domain graph
- Add domain/flow/step to fileLevelTypes in GraphView
- Add domain edge category to EDGE_CATEGORY_MAP
- Extend COMPLEXITY_STRING_MAP with trivial/basic/mid/average/advanced
- Normalize string complexity values in normalizeBatchOutput (not just numeric)
- Infer node type from ID prefix in edge fallback normalization
- Include flow discriminator in bare-path step ID normalization
- Clean up domain-context.json intermediate file in SKILL.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix race condition: setGraph no longer wipes domainGraph on parallel fetch
- Remove workflow/action aliases that conflicted with pipeline type
- Remove duplicate onNodeDoubleClick handler in DomainGraphView
- Add clearActiveDomain store action (replaces direct setState call)
- Remove auto-switch to domain viewMode in setDomainGraph
- Add DomainMetaSchema Zod validation for domainMeta fields
- Add Array.isArray guards for domainMeta collections in NodeInfo
- Remove as-any cast in getDomainMeta (use typed domainMeta directly)
- Add "domain" filter category for domain/flow/step nodes
- Keep flow discriminator in step ID normalization to prevent collisions
- Update SKILL.md Phase 2 to use tool-based scanning (no missing script)
- Update EDGE_LABELS comment to reflect 29 edge types
- Bump version to 2.1.0 in all 4 required files
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove unnecessary `as any` and `as string[]` casts by using the properly
typed DomainMeta interface. Fix historyNodes and childNodes to resolve from
activeGraph instead of graph so domain view mode works correctly. Use
type-narrowing filters to eliminate non-null assertions. Add early return
guard for step nodes with no filePath.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>