Commit Graph
54 Commits
Author SHA1 Message Date
0xnayuta d9250d76a9 fix(skills): harden plugin root resolution across install modes 2026-04-22 11:19:07 +08: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
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 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 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
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 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
Lum1104andClaude Opus 4.6 e4f7902a22 perf(understand): slim Phase 4 architecture payload — drop redundant node fields
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 14:42:58 +08:00
Lum1104andClaude Opus 4.6 2d86d339c0 perf(understand): gate LLM graph-reviewer behind --review flag, add inline deterministic validation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-27 14:41:29 +08:00
Lum1104andClaude Opus 4.6 1a16b0fdd6 fix: normalize LLM-generated type aliases before schema validation
LLMs systematically abbreviate node types (e.g. "func" instead of
"function") and edge types (e.g. "extends" instead of "inherits"),
causing dashboard validation failures. This combines two fixes:

Option A: Rename the ambiguous `func:` ID prefix to `function:` across
all prompts, source code, tests, and example data so LLMs see consistent
naming. Also fix `relates_to` ghost edge type in django.md.

Option B: Add NODE_TYPE_ALIASES and EDGE_TYPE_ALIASES normalization maps
in schema.ts that transparently correct common abbreviations before Zod
validation, as a runtime safety net.

Closes #36

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 09:25:42 +08:00
Lum1104 c7460f3189 Merge branch 'main' into feat/language-agnostic-understanding 2026-03-24 23:46:13 +08:00
Sreeram ae898a28b2 fix: address PR review feedback (C1-C4, I1-I5)
Critical fixes:
- C1: Remove unused treeSitter.nodeTypes from configs and schema — extraction
  logic is TS/JS-specific, nodeTypes gave false impression of generality
- C2+C3: Remove blocking temp dir prompt, default to .understand-anything/tmp/,
  update all 5 prompt templates to use project-local paths instead of /tmp/
- C4: Fix false-positive framework detection — use "next": (with quotes) for
  Next.js, remove cors/body-parser from Express keywords

Important fixes:
- I1: Change FrameworkConfig.language to languages[] array — React/Express/Vue
  now correctly listed under both typescript and javascript
- I2: Fix getByExtension case sensitivity — .TS now resolves same as .ts
- I3: languageKeyFromPath returns null instead of throwing for unknown extensions
- I4: Duplicate framework registration is now a no-op instead of corrupting array
- I5: SKILL.md now says "skip silently" when language/framework snippet not found

Also: getForLanguage returns a defensive copy, 3 new tests added (157 total).
2026-03-23 21:53:02 +05:30
Aditya fbe3cf4ee0 feat: add hooks for auto-update prompts and change classification logic
- Introduced hooks in `hooks.json` for PostToolUse and SessionStart events to prompt users about knowledge graph updates based on commit and session changes.
- Implemented `change-classifier.ts` to classify updates based on structural changes, including SKIP, PARTIAL_UPDATE, ARCHITECTURE_UPDATE, and FULL_UPDATE actions.
- Added comprehensive tests for change classification in `change-classifier.test.ts` to ensure correct behavior across various scenarios.
- Created `fingerprint.ts` to manage file fingerprints, including content hashing, structural analysis, and comparison of fingerprints to detect changes.
- Developed tests for fingerprint extraction and comparison in `fingerprint.test.ts` to validate functionality and ensure accurate change detection.
2026-03-23 15:20:10 +05:30
Sreeram 42074bb210 fix: ask user for temp directory and improve prompt discovery
- Add blocking step in Phase 0 asking where to write temp files
  ($PROJECT_ROOT/.understand-anything/tmp/ or /tmp/), with explicit
  STOP-and-wait language to prevent premature execution
- Make language/framework file discovery explicit in Phase 2 and
  Phase 4 with concrete path examples and ls fallback, fixing
  issue where Claude's Search tool couldn't find files in subdirs
- Clean up $TMP_DIR alongside intermediate files in Phase 7
2026-03-23 15:00:18 +05:30
Sreeram b5eb2e6041 feat: language-agnostic analysis with config-driven registry and framework detection
Replace the TypeScript/JavaScript-biased analysis pipeline with a truly
language-agnostic system. The core architecture was already language-neutral
(graph schema, dashboard, search) — the bias lived in agent prompts,
tree-sitter plugin, and language-lesson system.

Core changes:
- LanguageConfig + FrameworkConfig types with Zod validation
- LanguageRegistry (12 languages) and FrameworkRegistry (10 frameworks)
- Config-driven TreeSitterPlugin replacing hardcoded TS/JS grammars
- PluginRegistry now delegates to LanguageRegistry for extension mapping
- Language-lesson system uses config for display names and concepts

Prompt system:
- SKILL.md generalized: dynamic injection of language snippets and
  framework addendums instead of hardcoded if/else conditionals
- 12 language prompt snippets (languages/*.md) with concepts, patterns,
  frameworks per language
- 10 framework addendums (frameworks/*.md) with canonical file roles,
  edge patterns, architectural layers — Django/FastAPI/Flask preserved
  and split, plus React/Next.js/Express/Vue/Spring/Rails/Gin added
- Extended entry points, directory patterns, and test patterns across
  all 12 language ecosystems in base prompts
2026-03-23 12:35:09 +05:30
Claude 46fb114b14 feat: extend analysis pipeline for Python codebases and frameworks
- project-scanner: detect Python frameworks from requirements.txt,
  pyproject.toml, setup.py, Pipfile (django, fastapi, flask, sqlalchemy,
  celery, pydantic, etc.); add pyproject.toml to project name extraction

- SKILL.md: expand Python entry points (manage.py, app.py, wsgi.py,
  asgi.py, run.py, __main__.py); add FastAPI and Flask framework guidance
  to Phase 2 and Phase 4 inline hints; wire addendum file injection for
  Django, FastAPI, and Flask when detected

- architecture-analyzer: add __init__.py and manage.py as entry-point
  file-level patterns; add Python directory patterns (migrations, signals,
  serializers, management, templatetags); clarify *.d.ts is TS-only

- tour-builder: add Python entry point filename patterns to +3 scoring
  (manage.py, app.py, wsgi.py, asgi.py, run.py, __main__.py)

- file-analyzer: add __init__.py barrel/entry-point detection alongside
  index.ts; show Python script execution alternative in example

- new: django-analyzer-addendum.md — canonical file roles, edge patterns
  (URL routing graph, signal wiring, ORM relationships), layer guide, and
  language lesson patterns for Django projects

- new: fastapi-analyzer-addendum.md — canonical file roles, DI tree edge
  patterns, layer guide, and language lesson patterns for FastAPI and Flask

- new: PYTHON-SUPPORT-CHANGES.md — reviewer doc covering every change,
  rationale, regression risk, and a testing checklist

https://claude.ai/code/session_015ihoTRnr7yYx3TkcadKYbn
2026-03-21 16:00:03 +00:00
Lum1104andClaude Opus 4.6 b8e605eafb fix: consolidate triple normalization into ordered Phase 4/5 steps
The original commit 9fe003a introduced normalization logic in three
separate places (Phase 4 inline, Phase 5 inline, Phase 5.5), creating
an ordering conflict where "do not use field X" rules appeared before
"convert field X to field Y" rules. An LLM following instructions
sequentially could drop legacy fields before converting them.

- Consolidate all layer normalization into Phase 4 as ordered steps
- Consolidate all tour normalization into Phase 5 as ordered steps
- Remove redundant Phase 5.5 entirely
- Fix misleading "from current prompt" comments about envelope format
- Add defensive handling for nodes-as-objects edge case
- Wrap JSON examples in arrays for visual consistency with prompts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 22:59:36 +08:00
Lum1104 9fe003a977 feat: Align understand skill outputs with dashboard graph schema better 2026-03-20 00:14:23 +08:00
Lum1104andClaude Opus 4.6 4ea55cd6fc fix: address code review feedback — terminology consistency and URL path
- Replace "agent" with "subagent" in SKILL.md dispatch references (5 locations)
- Add node_modules/.git/dist exclusions to Phase 0 find command
- Fix design doc URL to include understand-anything-plugin/ prefix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 11:18:39 +08:00
Lum1104andClaude Opus 4.6 2a01d3cc77 refactor: update SKILL.md to dispatch subagents with context injection
Replace all named agent dispatches (project-scanner, file-analyzer,
architecture-analyzer, tour-builder, graph-reviewer) with subagent
dispatches using prompt template files. Add context injection for each
phase including README content, package manifest, directory tree,
framework-specific guidance, and cross-validation data.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 10:35:38 +08:00