Commit Graph
72 Commits
Author SHA1 Message Date
OpenClaw Ad Radar d0f77aa736 fix: change file permissions for extract-domain-context.py 2026-05-01 12:24:43 +02:00
Yuxiang LinandGitHub 1f61d9d03b Merge pull request #98 from xiaolai/fix/nlpm-gitignore-stderr-warnings
fix: log skipped invalid gitignore patterns to stderr
2026-04-25 20:55:47 +08:00
0xnayuta d9250d76a9 fix(skills): harden plugin root resolution across install modes 2026-04-22 11:19:07 +08:00
claude[bot]andClaude Code d919a0cf00 fix: log skipped invalid gitignore patterns to stderr
Silent pass on re.error hid invalid .gitignore patterns from users,
making it impossible to diagnose unexpected file-exclusion behavior.
Now logs a warning to stderr so users can see which patterns were
skipped and why.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-04-21 12:28:26 +00:00
0xnayuta 6a071b5abd chore(pi): improve plugin root error message 2026-04-20 20:20:54 +08:00
0xnayuta a2071fbf3c fix(pi): resolve understand plugin root via symlink-safe logic 2026-04-20 20:08:20 +08:00
0xnayuta aef6f88e90 fix(skill): quote understand argument-hint yaml 2026-04-18 22:21:09 +08:00
Lum1104 aebd6dcb3c fix(understand): preflight build of core package on first run 2026-04-17 14:33:23 +08:00
Lum1104andClaude Opus 4.6 45e56a4624 fix: allow /understand to target an arbitrary directory path
Previously, PROJECT_ROOT was always set to CWD, which broke on
alternative CLIs (e.g. OpenClaw) that set CWD to their own workspace
directory. Now Phase 0 parses $ARGUMENTS for a non-flag directory path
and uses it as PROJECT_ROOT, falling back to CWD when omitted.

Closes #90

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 18:56:53 +08:00
Lum1104andClaude Opus 4.6 20c1567143 feat: file-analyzer uses bundled tree-sitter script instead of LLM-generated regex
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 19:26:39 +08:00
Lum1104andClaude Opus 4.6 f4b79e1d92 feat: add bundled tree-sitter extraction script for file-analyzer agent
Replaces the LLM-generated throwaway regex scripts in Phase 1 of the
file-analyzer with a deterministic script that uses PluginRegistry
(TreeSitterPlugin + all non-code parsers) from @understand-anything/core.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 19:23:49 +08:00
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 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
Lum1104 bc311c80ad Merge branch 'main' into feat/understandignore 2026-04-12 11:34:10 +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 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 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 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 660f766783 fix: coerce edge weights to float before comparison in merge scripts
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>
2026-04-04 12:50:04 +08:00
Lum1104andClaude Opus 4.6 52050e40cb fix: address PR #71 review findings and bump version to 2.2.0
Fix all actionable code review items: add missing domain/flow/step node
types, fix batch numeric sorting, align gate thresholds, merge duplicate
tour steps instead of dropping, add Writing Results section to
assemble-reviewer, use skill-relative script paths, and add func→function
type mapping.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 12:28:20 +08:00
Lum1104andClaude Opus 4.6 b3683d62e2 feat: add graph merge scripts and improve agent pipeline reliability
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>
2026-04-04 11:56:58 +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
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
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
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
Lum1104andClaude Opus 4.6 4d2cb32232 fix: address comprehensive code review findings for PR #51
Fix all issues from the 5-agent parallel code review of universal file
type support:

- Parser error handling: add console.warn in JSON/YAML catch blocks,
  warn on unbalanced braces in Protobuf/Terraform parsers
- Parser correctness: filter .PHONY special targets in Makefile parser,
  handle opening brace on next line in Shell parser, fix per-stage
  EXPOSE port assignment in Dockerfile parser
- Graph builder: use nodeType-based ID prefix instead of hardcoded
  "file:", warn on unknown definition kinds, detect duplicate node IDs
- Type safety: export NodeType alias, add ServiceInfo.lineRange, type
  dashboard color maps as Record<NodeType,...>, refactor
  getDirectionalLabel to Record<EdgeType,...>, consolidate NodeCategory
- Schema: add StrictLanguageConfigSchema with extensions/filenames
  refinement, fix Infrastructure/Schema-Data category comments
- Agent prompts: fix Jenkinsfile language ID (groovy → jenkinsfile),
  fix css.md edge type (configures → related), remove shell.md
  Makefile cross-reference
- Tests: 20+ new edge case tests across parsers, graph builder,
  language registry, and plugin registry
- Documentation: add JSDoc to all 12 parser classes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 21:55:20 +08:00
Lum1104andClaude Opus 4.6 71468e8082 fix: address code review findings for universal file type support
- Expand persona filter in GraphView.tsx to show all 9 file-level node
  types (file, config, document, service, table, endpoint, pipeline,
  schema, resource) instead of only "file", fixing invisible nodes
- Add serves, provisions, and routes edge types with creation criteria
  to file-analyzer-prompt.md
- Fix related edge weight from 0.3 to 0.5 to match SKILL.md default
- Add filenames to openapiConfig for proper filename-based detection
- Add TODO comments to kubernetesConfig and jsonSchemaConfig explaining
  content-based detection limitations
- Clarify that module/concept types are reserved for higher-level agents
- Update language-registry tests for 38 built-in configs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 19:14:00 +08:00
Lum1104andClaude Opus 4.6 376c235d5e feat(pipeline): update main skill pipeline for non-code file analysis
Phase 1 (SCAN): Include non-code files in scan, add fileCategory to
batch metadata. Phase 2 (ANALYZE): Add batching strategy for non-code
files, group related infra/data/doc files together, pass fileCategory
per file. Phase 4 (ARCHITECTURE): Inject non-code language snippets
(markdown, yaml, dockerfile, sql, etc.), pass all node types and all
edge types to architecture analyzer. Phase 5 (TOUR): Include non-code
nodes in tour candidate pool, pass all edge types for topology analysis.
Update node type reference table (5 -> 13 types), edge type reference
table (18 -> 26 types), edge weight conventions, and inline validation
script to handle file-level non-code node types for layer coverage.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:59:08 +08:00
Lum1104andClaude Opus 4.6 e7ebc600aa feat(agents): add language context snippets for 11 non-code file types
Add language context snippets for markdown, yaml, json, sql, dockerfile,
terraform, graphql, protobuf, shell, html, and css. Each snippet follows
the existing typescript.md/python.md pattern with Key Concepts, Notable
File Patterns, Edge Patterns, and Summary Style sections. These snippets
are injected into the architecture analyzer prompt to improve layer
assignments for non-code files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:56:14 +08:00
Lum1104andClaude Opus 4.6 8ac3a2096a feat(agents): update graph reviewer for new node/edge types
Add 8 new node types (config, document, service, table, endpoint,
pipeline, schema, resource) to valid type list, bringing total to 13.
Add 8 new edge types (deploys, serves, migrates, documents, provisions,
routes, defines_schema, triggers) to valid type list, bringing total to
26. Add quality checks: config nodes should have configures edges, doc
nodes should have documents edges, service nodes should have deploys
edges, etc. Add node type / ID prefix consistency check. Update layer
coverage to include all file-level node types.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:53:56 +08:00
Lum1104andClaude Opus 4.6 83040be895 feat(agents): extend tour builder for non-code file stops
Allow non-code files as tour stops: README.md as step 1, Dockerfile,
SQL migrations, CI configs, and other infrastructure files. Add non-code
file inventory computation to the topology script. Add languageLesson
concepts for Dockerfile (multi-stage builds), SQL (normalization), YAML
(CI/CD triggers), Terraform (state management), GraphQL (type system),
Protobuf (backward compatibility), and Kubernetes (deployments). Update
pedagogical flow to weave non-code stops into the narrative naturally.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:52:36 +08:00
Lum1104andClaude Opus 4.6 7c8f056447 feat(agents): add non-code pattern detection to architecture analyzer
Add deployment topology detection (Dockerfile -> compose -> K8s), data
pipeline detection (schema -> migration -> API -> client), documentation
coverage analysis, and cross-category dependency analysis. Update layer
hints for infrastructure, documentation, data, ci-cd, and configuration
layers. Expand directory pattern matching with non-code patterns. Increase
max layer count from 7 to 10 to accommodate non-code layers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:50:29 +08:00
Lum1104andClaude Opus 4.6 c1eda8395f feat(agents): add type-aware analysis prompts for non-code files
Update file-analyzer-prompt.md with category-specific extraction guidance
for config, docs, infra, data, script, and markup files. Add new output
fields (sections, definitions, services, endpoints, steps, resources) and
nodeType mapping from fileCategory to graph node types. Add edge generation
guidance for non-code relationships (configures, documents, deploys,
migrates, triggers, defines_schema). Expand tagging vocabulary with
infrastructure, database, ci-cd, deployment, and migration tags.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:48:21 +08:00
Lum1104andClaude Opus 4.6 231ef484a0 feat(agents): update project-scanner to discover all file types
Remove the code-only file filter so the scanner discovers non-code files
(.md, .yaml, .json, .sql, .tf, Dockerfile, etc.). Add fileCategory field
to each discovered file (code/config/docs/infra/data/script/markup) with
extension-based category detection logic. Expand language detection table
to cover 26+ file types. Infrastructure tooling detection added to
framework detection step.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 18:45:20 +08:00
Lum1104andClaude Opus 4.6 3fad7207fb merge: resolve conflict with main and fix token auth in dashboard
- Resolve import conflict in persistence/index.ts (keep both PR's path
  utilities and main's ProjectConfig/FingerprintStore imports)
- Fix critical bug: App.tsx fetches were missing the ?token= param,
  causing 403 on all data endpoints. Extract token from URL and forward
  it via tokenUrl() helper.
- Protect /meta.json endpoint with same token auth
- Revert unnecessary saveMeta whitespace reformatting

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 13:17:59 +08:00
Lum1104andClaude Opus 4.6 39ee76f492 fix: address remaining Copilot review findings
- SKILL.md Phase 7: use core buildFingerprintStore instead of ad-hoc regex script
- change-classifier: accurate FULL_UPDATE reason message (count vs percentage)
- persistence: add saveConfig/loadConfig tests (round-trip, missing, corrupted)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 12:13:22 +08:00
Lum1104andClaude Opus 4.6 8c525839b2 merge: resolve SKILL.md conflict — keep both --auto-update and --review flags
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 12:01:57 +08:00
Lum1104andClaude Opus 4.6 867293ebab feat(understand): add review-only path and clarifying prompt for up-to-date graphs
- --review at same commit hash skips to Phase 6, reuses existing graph
- Same commit hash without flags now asks user what they'd like to do
  instead of silently stopping

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 11:55:26 +08:00
Lum1104andClaude Opus 4.6 36e7ad8c6e fix(understand): address PR #47 review — edge types, validator guards, prompt accuracy
- Map Quick Reference edge signals to allowed types (publishes→exports,
  subscribes→depends_on) to resolve contradiction with edge type table
- Restore `name` in Phase 4 payload (architecture-analyzer expects it)
- Add Array.isArray guards for layers/tour in inline validator
- Fix Python import syntax: `import .x` → `from . import x`
- Update Critical Constraints to reference batchFiles/batchImportData

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 11:15:16 +08:00
Lum1104andClaude Opus 4.6 3fb12033d6 fix(understand): address review findings — importCount metric source and plan typo
- Update importCount metric description to reference batchImportData[file.path].length
  instead of "number of import statements" (contradicted "do NOT extract imports" rule)
- Fix duplicate /index.js → /index.jsx in impl plan Task 5 extension variants

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 11:11:49 +08:00
Lum1104andClaude Opus 4.6 33d4e73e32 perf(understand): wire importMap into batchImportData per batch, increase batch size 5-10→20-30, concurrency 3→5
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 17:09:00 +08:00
Lum1104andClaude Opus 4.6 7dbd89a44b perf(understand): replace allProjectFiles with batchImportData in file-analyzer — import resolution now done by scanner
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 17:08:48 +08:00
Lum1104andClaude Opus 4.6 c8261ff28b perf(understand): extend scanner to pre-resolve imports, output importMap in scan-result.json
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 15:42:36 +08:00
Lum1104andClaude Opus 4.6 67d146033d perf(understand): remove language/framework addendums from Phase 2 batches
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 15:28:55 +08:00
Lum1104andClaude Opus 4.6 1fa84c5959 perf(understand): slim Phase 5 tour payload — file nodes only, imports+calls edges, slim layers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 15:17:55 +08:00