Commit Graph
277 Commits
Author SHA1 Message Date
Lum1104andClaude Opus 4.6 87cfe0d869 docs: add business domain knowledge feature to all README translations
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>
2026-04-03 00:10:01 +08:00
Lum1104andClaude Opus 4.6 6d01c449c5 chore: update pnpm-lock.yaml
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 00:05:10 +08:00
Lum1104andClaude Opus 4.6 20eb483195 fix(dashboard): address 8 audit issues across dashboard components
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>
2026-04-03 00:03:03 +08:00
Lum1104andClaude Opus 4.6 d52dd933ee fix(dashboard): show function/class nodes in layer detail view
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>
2026-04-02 23:56:34 +08:00
Lum1104andClaude Opus 4.6 fece84ac59 fix: address all 24 prompt engineering audit issues across 7 agents
knowledge-graph-guide.md (6 issues):
- Fix node types (5→16), edge types (18→29), tour schema (nodeId→nodeIds)
- Add domain graph documentation, jq examples, expand content

graph-reviewer.md (5 issues):
- Add domain node types (domain/flow/step) and edge types (contains_flow/flow_step/cross_domain)
- Relax layers/tour requirements for domain graphs
- Soften Check 8 (remove overly strict config/resource/endpoint checks)

domain-analyzer.md (6 issues):
- Add input format specification, output file path, writing results section
- Add critical constraints section with validation rules
- Fix flow_step weight scheme to stay within 0-1 range
- Change from "respond with JSON" to write-to-file pattern

file-analyzer.md (6 issues):
- Fix node type count description (13→accurate text)
- Recommend Node.js over bash for extraction scripts
- Replace "validate mentally" with actionable JSON validation instruction
- Clarify exports vs contains edge relationship
- Trim redundant tag guidance section
- Document why direction is always forward

architecture-analyzer.md (4 issues):
- Allow Python fallback for script language
- Clarify allEdges excludes sub-file edges
- Define "common prefix" algorithm for directory grouping
- Add layer count validation and empty group handling

tour-builder.md (2 issues):
- Fix BFS to start from code entry point, not README
- Allow Python fallback for script language

project-scanner.md (4 issues):
- Clarify exclusions match full directory segments, not substrings
- Stop excluding *.d.ts (may be hand-written)
- Add .env secret leak warning
- Document $PROJECT_ROOT variable, prefer Node.js

Cross-agent (3 issues):
- Consistent "prefer Node.js; fall back to Python" across all agents
- Schema type/count consistency across all agents
- Domain graph compatibility with graph-reviewer

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 23:14:29 +08:00
Lum1104andClaude Opus 4.6 2387649c1b fix: tone down function/class extraction constraint to avoid false mandate
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>
2026-04-02 22:54:31 +08:00
Lum1104andClaude Opus 4.6 0c08a7853b chore: remove old prompt templates and update hook references
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>
2026-04-02 22:24:25 +08:00
Lum1104andClaude Opus 4.6 52a68e5bd4 refactor: move prompt templates to agent definitions for prompt integrity
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>
2026-04-02 22:21:55 +08:00
Lum1104andClaude Opus 4.6 9d1abd0a30 fix: address code review issues across domain feature
- 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>
2026-04-02 21:20:33 +08:00
Lum1104andClaude Opus 4.6 e682ec1829 feat(skills): add extract-domain-context.py for lightweight codebase scanning
Python preprocessing script for /understand-domain Phase 2 (standalone path).
Scans a project and produces a structured JSON context file containing:
- File tree (respects .gitignore)
- Entry points (HTTP routes, CLI commands, events, cron, handlers)
- File signatures (exports, imports, previews) prioritized by business logic
- Project metadata (package.json, README, etc.)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 15:24:30 +08:00
Lum1104andClaude Opus 4.6 7d3c049422 fix: address all code review issues from both reviewers
- 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>
2026-04-02 14:52:34 +08:00
Lum1104 9e8b99bc9e feat(dashboard): serve domain-graph.json via Vite dev server 2026-04-02 14:28:53 +08:00
Lum1104andClaude Opus 4.6 a4daccc54b feat(skills): add /understand-domain skill for business domain knowledge extraction
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:26:39 +08:00
Lum1104andClaude Opus 4.6 c97096dd96 feat(agents): add domain-analyzer agent for business domain extraction
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:26:06 +08:00
Lum1104andClaude Opus 4.6 b96a8c7338 fix(dashboard): improve type safety and graph resolution in domain-aware NodeInfo
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>
2026-04-02 14:24:44 +08:00
Lum1104andClaude Opus 4.6 53d507c2b7 feat(dashboard): add domain-aware NodeInfo sidebar for domain/flow/step nodes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 14:19:30 +08:00
Lum1104andClaude Opus 4.6 5ea7866c00 fix(dashboard): fix mutable state, theme API, store pattern, and type imports in DomainGraphView
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:57:46 +08:00
Lum1104andClaude Opus 4.6 0674ba3f39 feat(dashboard): add DomainGraphView with domain overview and detail views
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:34:06 +08:00
Lum1104andClaude Opus 4.6 c6433c0352 feat(dashboard): add FlowNode and StepNode components for domain view
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:27:32 +08:00
Lum1104andClaude Opus 4.6 1f2607e83f feat(dashboard): add DomainClusterNode component for domain view
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:27:27 +08:00
Lum1104andClaude Opus 4.6 3fba6bf478 fix(dashboard): add button types, validation warning, and title attributes to view toggle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:20:36 +08:00
Lum1104andClaude Opus 4.6 4cb38ea360 feat(dashboard): add domain graph loading and view mode toggle pill
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:17:23 +08:00
Lum1104andClaude Opus 4.6 16f89c05b8 fix(dashboard): add const assertion, reset domain state in setGraph, add category comment
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:15:00 +08:00
Lum1104andClaude Opus 4.6 22fd49a821 feat(dashboard): add domain view state to store (viewMode, domainGraph, activeDomainId)
Add ViewMode type, DOMAIN_EDGE_TYPES, and domain/flow/step entries to
dashboard store, CustomNode, GraphView, and NodeInfo Record maps so the
dashboard compiles with the new core domain node and edge types.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:07:05 +08:00
Lum1104andClaude Opus 4.6 005758b922 fix(core): improve step ID normalization and add missing test coverage
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:51:12 +08:00
Lum1104andClaude Opus 4.6 9693e1efee fix(core): remove dead import and unnecessary type cast in domain persistence test
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:43:23 +08:00
Lum1104andClaude Opus 4.6 d89d7f6e93 feat(core): add domain/flow/step prefixes to node ID normalization
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:40:36 +08:00
Lum1104andClaude Opus 4.6 fe01ee0f85 feat(core): add saveDomainGraph/loadDomainGraph persistence functions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:29:26 +08:00
Lum1104andClaude Opus 4.6 37e56d62b3 feat(core): add domain/flow/step node types and domain edge types for business domain knowledge
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 11:08:52 +08:00
Lum1104andClaude Opus 4.6 ae00f58824 docs: add business domain knowledge design spec and implementation plan (issue #61)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 21:54:13 +08:00
Yuxiang LinandGitHub efd4c483ec Merge pull request #65 from fishinakleinbottle/fix/normalization-for-generated-graph
fix(core): deterministic node ID normalization for parallel batch output
2026-04-01 21:12:45 +08:00
Lum1104andClaude Opus 4.6 6f443fbc14 fix(core): handle all 13 node types, edge cross-variant resolution, and dropped edge traceability
- Add all 13 node types (including non-code) to VALID_PREFIXES and TYPE_TO_PREFIX
  to prevent valid IDs like config:tsconfig.json from being stripped
- Add fallback normalizeNodeId on edge endpoints not found in idMap, fixing
  silent relationship loss when edges use different malformed variants than nodes
- Add DroppedEdge interface with source, target, type, and reason fields so
  callers can surface exactly which edges were lost and why
- Use honest Record<string, unknown>[] return types instead of unsafe type casts
- Align SKILL.md complexity aliases with COMPLEXITY_STRING_MAP
- Add 5 new tests for non-code types, cross-variant edges, dropped edge detail,
  and validateGraph integration

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 21:10:43 +08:00
Yuxiang LinandGitHub 89b5000624 Merge pull request #64 from pablospe/fix/posix-compatible-hooks
fix: use POSIX-compatible pipe instead of bash herestring in hooks
2026-04-01 10:35:51 +08:00
Sreeram 60c2ead398 fix(core): add deterministic normalization for parallel batch analyzer output
Parallel file-analyzer subagents can produce inconsistent node IDs
(project-name prefixed, double-prefixed, bare paths) and invalid
complexity values. Phase 3 ASSEMBLE now normalizes these deterministically
before merging, preventing cascading edge drops and dashboard load failures.

- Add normalize-graph.ts with normalizeNodeId, normalizeComplexity,
  and normalizeBatchOutput utilities
- Rewrite SKILL.md Phase 3 with 6-step normalization sequence
- Strengthen file-analyzer prompt with ID format warnings
- Add 32 normalization tests and 2 schema boundary tests
2026-03-31 16:34:04 +05:30
Pablo Speciale ee2c9c8dd7 fix: use POSIX-compatible pipe instead of bash herestring in hooks
The PostToolUse hook used `<<<` (bash herestring) which fails when
Claude Code runs hooks under `/bin/sh`. Replace with `echo | grep`
for POSIX compatibility.
2026-03-31 12:12:02 +02:00
Lum1104andClaude Sonnet 4.6 a7eea05694 ci: add PR workflow for build, test, and type-check
Runs on every pull_request: builds core and skill packages (which also
serves as TypeScript type-check), then runs all Vitest tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 11:16:57 +08:00
Sreeram N RandGitHub ca044fe730 Merge pull request #56 from Lum1104/copilot/fix-hide-bottom-bar-issue-55
fix: remove redundant CodeViewer bottom bar on node selection
2026-03-30 00:26:53 +05:30
43ab4fb893 fix: hide redundant bottom bar (CodeViewer) on node click, closes #55
Agent-Logs-Url: https://github.com/Lum1104/Understand-Anything/sessions/f2065131-263d-42f8-957c-4006b0954284

Co-authored-by: fishinakleinbottle <11816323+fishinakleinbottle@users.noreply.github.com>
2026-03-29 15:09:15 +00:00
copilot-swe-agent[bot]andGitHub 6bc16e7232 Initial plan 2026-03-29 15:05:34 +00:00
Yuxiang LinandGitHub f99f2e1941 Merge pull request #52 from GarfieldHuang/feat/vscode-copilot-plugin
feat: add VS Code + GitHub Copilot agent skills support
2026-03-29 20:52:13 +08:00
GarfieldandClaude Sonnet 4.6 631dc588f8 docs: add Traditional Chinese README and update language links
- Add README.zh-TW.md (Traditional Chinese translation)
- Update language nav links in all READMEs to include 繁體中文

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 20:42:25 +08:00
GarfieldandClaude Sonnet 4.6 179757ff7a docs: update Japanese and Turkish READMEs with VS Code + GitHub Copilot support
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 20:40:14 +08:00
GarfieldandClaude Sonnet 4.6 6beba0975b fix: address Copilot review comments
- Remove displayName from plugin.json (not in Copilot manifest schema)
- Use ln -sf for idempotent skill symlinks
- Use rm -f for safer uninstall

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 13:35:23 +08:00
GarfieldandClaude Sonnet 4.6 b8a069a65b fix: correct symlink instructions in VS Code INSTALL.md
Each skill must be symlinked individually into ~/.copilot/skills/,
not the entire skills directory as a single entry.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 13:25:38 +08:00
GarfieldandClaude Sonnet 4.6 ea3e42a836 feat: add VS Code + GitHub Copilot agent skills support
- Add `.copilot-plugin/plugin.json` for auto-discovery in VS Code (mirrors `.cursor-plugin/` format)
- Add `.vscode/INSTALL.md` with two install options: auto-discovery and personal skills via symlink
- Update README.md and README.zh-CN.md with VS Code section and compatibility table row

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 13:09:00 +08:00
Lum1104andClaude Opus 4.6 364a7ee114 chore: update lockfile for new core dependencies
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 11:36:12 +08:00
Lum1104andClaude Opus 4.6 5bd8eb7c8d feat(homepage): update features, install, and footer for v2.0.0
Expand feature cards from 3 to 6 covering new capabilities across
v1.2.0–v2.0.0 releases. Update install note and footer tagline to
reflect multi-platform support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 11:34:18 +08:00
Lum1104andClaude Opus 4.6 f9fada25f6 docs: add homepage update implementation plan
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 11:32:29 +08:00
Lum1104andClaude Opus 4.6 c190f9ca96 docs: add homepage update design for v2.0.0 features
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 11:31:48 +08:00
Yuxiang LinandGitHub 3bcd7f6fec Merge pull request #50 from berkcangumusisik/feat/dashboard-export-filtering
Add filters, export, path finder & tooltips
2026-03-29 11:18:44 +08:00