codebeacon 0.5.0__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- codebeacon-0.5.0/README.md → codebeacon-0.6.0/PKG-INFO +123 -2
- {codebeacon-0.5.0 → codebeacon-0.6.0}/README.de.md +30 -2
- {codebeacon-0.5.0 → codebeacon-0.6.0}/README.es.md +30 -2
- {codebeacon-0.5.0 → codebeacon-0.6.0}/README.fr.md +30 -2
- {codebeacon-0.5.0 → codebeacon-0.6.0}/README.ja.md +30 -2
- {codebeacon-0.5.0 → codebeacon-0.6.0}/README.ko.md +30 -2
- codebeacon-0.5.0/PKG-INFO → codebeacon-0.6.0/README.md +30 -45
- {codebeacon-0.5.0 → codebeacon-0.6.0}/README.pt-BR.md +30 -2
- {codebeacon-0.5.0 → codebeacon-0.6.0}/README.zh-CN.md +30 -2
- codebeacon-0.6.0/codebeacon/__init__.py +1 -0
- codebeacon-0.6.0/codebeacon/affected.py +190 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/cache.py +57 -6
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/cli.py +187 -486
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/common/safety.py +5 -0
- codebeacon-0.6.0/codebeacon/diagnostics.py +131 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/discover/ignore.py +41 -12
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/discover/scanner.py +45 -15
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/export/hooks.py +48 -4
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/export/mcp.py +93 -5
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/dependencies.py +97 -8
- codebeacon-0.6.0/codebeacon/extract/dotnet.py +161 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/graph/build.py +147 -14
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/graph/write.py +6 -1
- codebeacon-0.6.0/codebeacon/pipeline.py +577 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/semantic_pipeline.py +141 -5
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/skill/SKILL.md +13 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/wave.py +56 -12
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/wiki/generator.py +106 -0
- codebeacon-0.6.0/pyproject.toml +120 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/skill/install.py +31 -9
- codebeacon-0.6.0/tests/fixtures/integration_workspace/api-python/pyproject.toml +4 -0
- codebeacon-0.6.0/tests/fixtures/integration_workspace/api-python/src/__init__.py +0 -0
- codebeacon-0.6.0/tests/fixtures/integration_workspace/api-python/src/main.py +17 -0
- codebeacon-0.6.0/tests/fixtures/integration_workspace/api-python/src/services.py +11 -0
- codebeacon-0.6.0/tests/fixtures/integration_workspace/web/package.json +7 -0
- codebeacon-0.6.0/tests/fixtures/integration_workspace/web/src/UserPage.tsx +14 -0
- codebeacon-0.6.0/tests/integration/__init__.py +0 -0
- codebeacon-0.6.0/tests/integration/test_full_pipeline.py +230 -0
- codebeacon-0.6.0/tests/test_affected.py +113 -0
- codebeacon-0.6.0/tests/test_affected_wiki.py +182 -0
- codebeacon-0.6.0/tests/test_dependencies.py +93 -0
- codebeacon-0.6.0/tests/test_diagnostics.py +169 -0
- codebeacon-0.6.0/tests/test_discover.py +293 -0
- codebeacon-0.6.0/tests/test_dotnet.py +164 -0
- codebeacon-0.6.0/tests/test_graph.py +334 -0
- codebeacon-0.6.0/tests/test_known_bugs.py +340 -0
- codebeacon-0.6.0/tests/test_mcp_and_semantic.py +134 -0
- codebeacon-0.6.0/tests/test_optional_grammars.py +132 -0
- codebeacon-0.6.0/tests/test_pipeline_module.py +125 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_safety_and_writes.py +35 -0
- codebeacon-0.6.0/tests/test_semantic_stats.py +210 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_wiki.py +55 -0
- codebeacon-0.5.0/codebeacon/__init__.py +0 -1
- codebeacon-0.5.0/pyproject.toml +0 -63
- codebeacon-0.5.0/tests/test_discover.py +0 -147
- codebeacon-0.5.0/tests/test_graph.py +0 -167
- {codebeacon-0.5.0 → codebeacon-0.6.0}/.cursorrules +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/.github/CODEOWNERS +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/.github/dependabot.yml +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/.github/workflows/ci.yml +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/.github/workflows/release.yml +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/.gitignore +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/AGENTS.md +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/CLAUDE.md +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/LICENSE +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/__main__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/common/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/common/filters.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/common/symbols.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/common/types.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/config.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/contextmap/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/contextmap/generator.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/discover/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/discover/detector.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/export/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/export/callflow_html.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/export/merge.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/export/obsidian.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/export/tree_html.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/base.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/components.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/entities.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/README.md +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/actix.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/angular.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/aspnet.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/django.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/express.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/fastapi.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/flask.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/gin.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/ktor.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/laravel.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/nestjs.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/rails.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/react.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/spring_boot.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/svelte.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/tauri.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/vapor.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/queries/vue.scm +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/routes.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/semantic.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/extract/services.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/graph/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/graph/analyze.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/graph/cluster.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/graph/enrich.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/knowledge/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/knowledge/generator.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/plugins/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/plugins/githooks.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/plugins/skills.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/wiki/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/wiki/index.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon/wiki/templates.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/codebeacon.yaml.example +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/docs/TRANSLATION_STATUS.md +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/public-plan.md +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/__init__.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/conftest.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/actix/main.rs +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/angular/app.component.ts +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/aspnet/UserController.cs +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/django/views.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/express/userRouter.js +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/fastapi/main.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/flask/app.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/gin/main.go +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/ktor/UserRoutes.kt +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/laravel/UserController.php +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/nestjs/user.controller.ts +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/rails/users_controller.rb +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/react/UserPage.tsx +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/spring_boot/UserController.java +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/sveltekit/+page.svelte +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/vapor/routes.swift +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/fixtures/vue/UserList.vue +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_cli_dispatch.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_entities.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_filters.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_knowledge.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_plugins.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_resolve.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_routes.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_scanner_sensitive.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_semantic.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_semantic_hardening.py +0 -0
- {codebeacon-0.5.0 → codebeacon-0.6.0}/tests/test_services.py +0 -0
|
@@ -1,3 +1,96 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codebeacon
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Summary: Source code AST analysis tool for AI context generation — unified multi-framework knowledge graph
|
|
5
|
+
Project-URL: Homepage, https://github.com/codebeacon/codebeacon
|
|
6
|
+
Project-URL: Repository, https://github.com/codebeacon/codebeacon
|
|
7
|
+
Project-URL: Issues, https://github.com/codebeacon/codebeacon/issues
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: ai-context,ast,claude,codebase,knowledge-graph,mcp
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Requires-Dist: networkx>=3.0
|
|
22
|
+
Requires-Dist: pyyaml>=6.0
|
|
23
|
+
Requires-Dist: tree-sitter-javascript>=0.23
|
|
24
|
+
Requires-Dist: tree-sitter-python>=0.23
|
|
25
|
+
Requires-Dist: tree-sitter-typescript>=0.23
|
|
26
|
+
Requires-Dist: tree-sitter>=0.23
|
|
27
|
+
Provides-Extra: backend
|
|
28
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23; extra == 'backend'
|
|
29
|
+
Requires-Dist: tree-sitter-go>=0.23; extra == 'backend'
|
|
30
|
+
Requires-Dist: tree-sitter-java>=0.23; extra == 'backend'
|
|
31
|
+
Requires-Dist: tree-sitter-kotlin>=0.23; extra == 'backend'
|
|
32
|
+
Requires-Dist: tree-sitter-php>=0.23; extra == 'backend'
|
|
33
|
+
Requires-Dist: tree-sitter-ruby>=0.23; extra == 'backend'
|
|
34
|
+
Requires-Dist: tree-sitter-rust>=0.23; extra == 'backend'
|
|
35
|
+
Provides-Extra: cluster
|
|
36
|
+
Requires-Dist: graspologic>=1.0; extra == 'cluster'
|
|
37
|
+
Provides-Extra: csharp
|
|
38
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23; extra == 'csharp'
|
|
39
|
+
Provides-Extra: dev
|
|
40
|
+
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
|
|
41
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
42
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23; extra == 'dev'
|
|
43
|
+
Requires-Dist: tree-sitter-go>=0.23; extra == 'dev'
|
|
44
|
+
Requires-Dist: tree-sitter-html>=0.23; extra == 'dev'
|
|
45
|
+
Requires-Dist: tree-sitter-java>=0.23; extra == 'dev'
|
|
46
|
+
Requires-Dist: tree-sitter-kotlin>=0.23; extra == 'dev'
|
|
47
|
+
Requires-Dist: tree-sitter-php>=0.23; extra == 'dev'
|
|
48
|
+
Requires-Dist: tree-sitter-ruby>=0.23; extra == 'dev'
|
|
49
|
+
Requires-Dist: tree-sitter-rust>=0.23; extra == 'dev'
|
|
50
|
+
Requires-Dist: tree-sitter-svelte>=0.23; extra == 'dev'
|
|
51
|
+
Requires-Dist: tree-sitter-swift>=0.0.1; extra == 'dev'
|
|
52
|
+
Provides-Extra: dotnet
|
|
53
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23; extra == 'dotnet'
|
|
54
|
+
Provides-Extra: full
|
|
55
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23; extra == 'full'
|
|
56
|
+
Requires-Dist: tree-sitter-go>=0.23; extra == 'full'
|
|
57
|
+
Requires-Dist: tree-sitter-html>=0.23; extra == 'full'
|
|
58
|
+
Requires-Dist: tree-sitter-java>=0.23; extra == 'full'
|
|
59
|
+
Requires-Dist: tree-sitter-kotlin>=0.23; extra == 'full'
|
|
60
|
+
Requires-Dist: tree-sitter-php>=0.23; extra == 'full'
|
|
61
|
+
Requires-Dist: tree-sitter-ruby>=0.23; extra == 'full'
|
|
62
|
+
Requires-Dist: tree-sitter-rust>=0.23; extra == 'full'
|
|
63
|
+
Requires-Dist: tree-sitter-svelte>=0.23; extra == 'full'
|
|
64
|
+
Requires-Dist: tree-sitter-swift>=0.0.1; extra == 'full'
|
|
65
|
+
Provides-Extra: go
|
|
66
|
+
Requires-Dist: tree-sitter-go>=0.23; extra == 'go'
|
|
67
|
+
Provides-Extra: html
|
|
68
|
+
Requires-Dist: tree-sitter-html>=0.23; extra == 'html'
|
|
69
|
+
Provides-Extra: java
|
|
70
|
+
Requires-Dist: tree-sitter-java>=0.23; extra == 'java'
|
|
71
|
+
Provides-Extra: jvm
|
|
72
|
+
Requires-Dist: tree-sitter-java>=0.23; extra == 'jvm'
|
|
73
|
+
Requires-Dist: tree-sitter-kotlin>=0.23; extra == 'jvm'
|
|
74
|
+
Provides-Extra: kotlin
|
|
75
|
+
Requires-Dist: tree-sitter-kotlin>=0.23; extra == 'kotlin'
|
|
76
|
+
Provides-Extra: mobile
|
|
77
|
+
Requires-Dist: tree-sitter-kotlin>=0.23; extra == 'mobile'
|
|
78
|
+
Requires-Dist: tree-sitter-swift>=0.0.1; extra == 'mobile'
|
|
79
|
+
Provides-Extra: php
|
|
80
|
+
Requires-Dist: tree-sitter-php>=0.23; extra == 'php'
|
|
81
|
+
Provides-Extra: ruby
|
|
82
|
+
Requires-Dist: tree-sitter-ruby>=0.23; extra == 'ruby'
|
|
83
|
+
Provides-Extra: rust
|
|
84
|
+
Requires-Dist: tree-sitter-rust>=0.23; extra == 'rust'
|
|
85
|
+
Provides-Extra: svelte
|
|
86
|
+
Requires-Dist: tree-sitter-svelte>=0.23; extra == 'svelte'
|
|
87
|
+
Provides-Extra: swift
|
|
88
|
+
Requires-Dist: tree-sitter-swift>=0.0.1; extra == 'swift'
|
|
89
|
+
Provides-Extra: web
|
|
90
|
+
Requires-Dist: tree-sitter-html>=0.23; extra == 'web'
|
|
91
|
+
Requires-Dist: tree-sitter-svelte>=0.23; extra == 'web'
|
|
92
|
+
Description-Content-Type: text/markdown
|
|
93
|
+
|
|
1
94
|
<p align="center">
|
|
2
95
|
<a href="https://github.com/Wandererer/codebeacon/blob/main/README.md"><img src="https://img.shields.io/badge/lang-English-blue" alt="English"></a>
|
|
3
96
|
<a href="https://github.com/Wandererer/codebeacon/blob/main/README.ko.md"><img src="https://img.shields.io/badge/lang-한국어-red" alt="Korean"></a>
|
|
@@ -25,6 +118,23 @@
|
|
|
25
118
|
|
|
26
119
|
---
|
|
27
120
|
|
|
121
|
+
## What's new in 0.6.0
|
|
122
|
+
|
|
123
|
+
- **`codebeacon affected`** — given a list of changed files (or a `--base <ref>` git diff), prints every graph node downstream of the change. Built for CI risk-scoring and PR review.
|
|
124
|
+
- **`.NET` project files** — `.sln`, `.csproj`, `.fsproj`, `.vbproj`, `.razor`, `.cshtml` are now parsed: `<ProjectReference>` / `<PackageReference>` become graph edges, Razor `@inherits` / `@inject` / `@using` link Blazor pages to their backing types.
|
|
125
|
+
- **JS/TS barrel re-exports** — `export { X } from './mod'` and `export * from './mod'` now produce explicit `re_exports` edges so Next.js / monorepo barrels stop showing zero imports.
|
|
126
|
+
- **`--exclude PATTERN` flag** for `scan` / `sync`, plus automatic fallback to `.gitignore` when `.codebeaconignore` is absent.
|
|
127
|
+
- **`codebeacon install --project [PATH]`** — install the `/codebeacon` skill into `<PATH>/.claude/` instead of `~/.claude/`, so teams can pin a SKILL.md version per repo.
|
|
128
|
+
- **Wiki self-heals** — `--update` runs now prune `wiki/<project>/{controllers,services,entities,components}/*.md` files whose graph node no longer exists.
|
|
129
|
+
- **Shrink-guard relaxed for explicit deletions** — `--update` mode no longer refuses to write a smaller `beacon.json` when the cache already accounted for deleted files; the guard still fires on silent corruption.
|
|
130
|
+
- **Cross-file declaration merge** — Swift `extension Foo`, C# partial classes, Ruby reopened classes union their `fields` / `methods` into one canonical node instead of the last writer winning.
|
|
131
|
+
- **Hardened query** — `BeaconIndex` uses `casefold()` so German `ß`, Turkish `i/İ`, Greek `σ/ς`, and CJK labels round-trip correctly.
|
|
132
|
+
- **Richer semantic context** — each task chunk now ships graph callers + callees as `neighbors` so the LLM stays grounded in real node labels; `SKILL.md` adds **Step 0 — Constrained query expansion** so `/codebeacon query` flows can't invent phantom tokens.
|
|
133
|
+
- **`semantic-apply` zero-yield guard** — if every chunk archived 0 edges, the CLI exits 1 so CI catches silent LLM failures.
|
|
134
|
+
- **ArkTS (`.ets`) and worktree-safety** — `.ets` is collected; nested `worktrees/` dirs are skipped to stop double-counting linked worktrees.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
28
138
|
## Why codebeacon?
|
|
29
139
|
|
|
30
140
|
Every time you open a new AI coding session, your assistant starts blind. It doesn't know your routes, your service layer, your entity model, or how your microservices call each other. You spend the first chunk of every session just getting the AI back up to speed — pasting files, explaining structure, re-establishing context.
|
|
@@ -92,8 +202,9 @@ codebeacon sync # subsequent runs via config
|
|
|
92
202
|
| Ruby | Rails |
|
|
93
203
|
| PHP | Laravel |
|
|
94
204
|
| Rust | Actix-Web, Axum, Tauri, Rocket, Warp |
|
|
95
|
-
| C# | ASP.NET Core |
|
|
205
|
+
| C# | ASP.NET Core, Blazor (`.razor`, `.cshtml`); `.sln` / `.csproj` / `.fsproj` / `.vbproj` parsed for `ProjectReference` + `PackageReference` |
|
|
96
206
|
| Swift | Vapor |
|
|
207
|
+
| ArkTS | `.ets` (HarmonyOS) collected — extractors framework-agnostic |
|
|
97
208
|
|
|
98
209
|
---
|
|
99
210
|
|
|
@@ -313,12 +424,21 @@ codebeacon scan . --obsidian-dir <path> # write Obsidian vault to custom locat
|
|
|
313
424
|
codebeacon scan . --semantic # enable structured-comment semantic extraction (Javadoc/JSDoc/docstring refs)
|
|
314
425
|
codebeacon scan . --list-only # detect frameworks only, don't extract
|
|
315
426
|
codebeacon scan /workspace --deep-dive # per-project + combined workspace outputs
|
|
427
|
+
codebeacon scan . --exclude 'docs/**' --exclude '*.gen.ts'
|
|
428
|
+
# repeatable gitignore-style patterns merged with
|
|
429
|
+
# .codebeaconignore / .gitignore
|
|
316
430
|
|
|
317
431
|
# Config-driven mode
|
|
318
432
|
codebeacon init [path] # auto-generate codebeacon.yaml
|
|
319
433
|
codebeacon sync # run from codebeacon.yaml (auto-appends new workspace projects)
|
|
320
434
|
codebeacon sync --config <file> # use a specific config file
|
|
321
435
|
codebeacon sync --no-rediscover # don't auto-append newly added projects (hand-curated yaml mode)
|
|
436
|
+
codebeacon sync --exclude PATTERN # same flag, same semantics
|
|
437
|
+
|
|
438
|
+
# PR / CI: what does this diff actually break?
|
|
439
|
+
codebeacon affected --base main # walk upstream callers of every changed file
|
|
440
|
+
codebeacon affected --base origin/main --head HEAD --depth 4 --limit 200
|
|
441
|
+
codebeacon affected src/foo.py src/bar.py # explicit paths, no git needed
|
|
322
442
|
|
|
323
443
|
# AI-semantic enrichment (the agent does the LLM work, codebeacon does the bookkeeping)
|
|
324
444
|
codebeacon semantic-prepare [--dir .codebeacon] [--max-tasks N] [--chunk-size N]
|
|
@@ -347,7 +467,8 @@ codebeacon merge-driver <base> <cur> <other> # invoked by git after `hook insta
|
|
|
347
467
|
|
|
348
468
|
# Integrations
|
|
349
469
|
codebeacon serve [--dir .codebeacon] # start MCP server (stdio)
|
|
350
|
-
codebeacon install # install Claude Code skill
|
|
470
|
+
codebeacon install # install Claude Code skill (user scope: ~/.claude/)
|
|
471
|
+
codebeacon install --project [PATH] # install into <PATH>/.claude/ (team-shared, repo-pinned)
|
|
351
472
|
codebeacon upgrade # pip install --upgrade + refresh ~/.claude/skills/codebeacon/SKILL.md
|
|
352
473
|
# (`--force` to upgrade even when installed in editable mode)
|
|
353
474
|
```
|
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
## Neu in 0.6.0
|
|
31
|
+
|
|
32
|
+
- **`codebeacon affected`** — nimmt eine Liste geänderter Dateien (oder via `--base <ref>` ein git diff) und gibt jeden nachgelagerten Graphknoten aus. Für CI-Risikoeinstufung und PR-Reviews.
|
|
33
|
+
- **`.NET`-Projektdateien** — `.sln`, `.csproj`, `.fsproj`, `.vbproj`, `.razor`, `.cshtml` werden jetzt geparst: `<ProjectReference>` / `<PackageReference>` werden zu Graphkanten, Razor-Direktiven `@inherits` / `@inject` / `@using` verbinden Blazor-Seiten mit ihren Backing-Typen.
|
|
34
|
+
- **JS/TS Barrel-Reexports** — `export { X } from './mod'` und `export * from './mod'` erzeugen jetzt explizite `re_exports`-Kanten, sodass Next.js-/Monorepo-Barrels nicht mehr mit 0 Imports erscheinen.
|
|
35
|
+
- **`--exclude PATTERN`-Flag** für `scan` / `sync`, plus automatischer Fallback auf `.gitignore`, wenn `.codebeaconignore` fehlt.
|
|
36
|
+
- **`codebeacon install --project [PATH]`** — installiert den `/codebeacon`-Skill nach `<PATH>/.claude/` statt `~/.claude/`, damit Teams eine SKILL.md-Version pro Repo festpinnen können.
|
|
37
|
+
- **Wiki repariert sich selbst** — `--update`-Läufe entfernen jetzt `wiki/<project>/{controllers,services,entities,components}/*.md`-Dateien, deren Graphknoten nicht mehr existieren.
|
|
38
|
+
- **Shrink-Guard bei expliziten Löschungen gelockert** — im `--update`-Modus wird ein kleineres `beacon.json` nicht mehr abgelehnt, wenn der Cache die Löschungen bereits berücksichtigt hat; bei stiller Korruption greift die Sperre weiterhin.
|
|
39
|
+
- **Datei-übergreifende Deklarations-Union** — Swift `extension Foo`, C# partial classes, Ruby reopened classes vereinen ihre `fields` / `methods` zu einem kanonischen Knoten, statt vom letzten Schreiber überschrieben zu werden.
|
|
40
|
+
- **Härtere Suche** — `BeaconIndex` nutzt `casefold()`, sodass deutsches `ß`, türkisches `i/İ`, griechisches `σ/ς` und CJK-Labels korrekt matchen.
|
|
41
|
+
- **Reichhaltigerer Semantik-Kontext** — jeder Task-Chunk bringt jetzt Graph-Caller und -Callees als `neighbors` mit, damit das LLM bei echten Knotenlabels bleibt; `SKILL.md` ergänzt **Step 0 — Constrained query expansion**, sodass `/codebeacon query`-Flows keine Phantom-Tokens erfinden können.
|
|
42
|
+
- **`semantic-apply` Zero-Yield-Guard** — wenn jeder Chunk mit 0 Kanten archiviert wurde, beendet die CLI mit Exit 1, sodass CI stille LLM-Fehler bemerkt.
|
|
43
|
+
- **ArkTS (`.ets`) und Worktree-Sicherheit** — `.ets` wird eingesammelt; verschachtelte `worktrees/`-Verzeichnisse werden übersprungen, damit verlinkte Worktrees nicht doppelt indexiert werden.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
30
47
|
## Warum codebeacon?
|
|
31
48
|
|
|
32
49
|
Jedes Mal, wenn Sie eine neue KI-Codiersitzung öffnen, beginnt der Assistent bei null. Er kennt weder Ihre Routes, noch Ihre Service-Schicht, noch Ihr Entitätsmodell, noch die Kommunikationswege zwischen Ihren Microservices. Sie verbringen den Beginn jeder Sitzung damit, Dateien einzufügen, die Struktur zu erklären und den Kontext wiederherzustellen.
|
|
@@ -94,8 +111,9 @@ codebeacon sync # Folgeläufe über Konfiguration
|
|
|
94
111
|
| Ruby | Rails |
|
|
95
112
|
| PHP | Laravel |
|
|
96
113
|
| Rust | Actix-Web, Axum |
|
|
97
|
-
| C# | ASP.NET Core |
|
|
114
|
+
| C# | ASP.NET Core, Blazor (`.razor`, `.cshtml`); `.sln` / `.csproj` / `.fsproj` / `.vbproj` für `ProjectReference` + `PackageReference` geparst |
|
|
98
115
|
| Swift | Vapor |
|
|
116
|
+
| ArkTS | `.ets` (HarmonyOS) eingesammelt — Extraktoren framework-agnostisch |
|
|
99
117
|
|
|
100
118
|
---
|
|
101
119
|
|
|
@@ -370,10 +388,19 @@ codebeacon scan . --wiki-only # Extraktion überspringen, Wiki/Obsid
|
|
|
370
388
|
codebeacon scan . --semantic # Extraktion strukturierter Kommentar-Referenzen (Javadoc/JSDoc/docstring)
|
|
371
389
|
codebeacon scan . --list-only # nur Frameworks erkennen
|
|
372
390
|
codebeacon scan /workspace --deep-dive # Pro-Projekt- + kombinierte Workspace-Ausgabe
|
|
391
|
+
codebeacon scan . --exclude 'docs/**' --exclude '*.gen.ts'
|
|
392
|
+
# wiederholbare gitignore-Stil-Patterns
|
|
393
|
+
# mit .codebeaconignore / .gitignore vereint
|
|
373
394
|
|
|
374
395
|
codebeacon init [pfad] # codebeacon.yaml generieren
|
|
375
396
|
codebeacon sync # von codebeacon.yaml ausführen (hängt neue Workspace-Projekte automatisch an)
|
|
376
397
|
codebeacon sync --no-rediscover # neue Projekte nicht automatisch anhängen (handgepflegter yaml-Modus)
|
|
398
|
+
codebeacon sync --exclude PATTERN # gleiches Flag, gleiche Semantik
|
|
399
|
+
|
|
400
|
+
# PR / CI: was bricht dieser Diff wirklich?
|
|
401
|
+
codebeacon affected --base main # die Aufrufer der geänderten Dateien stromaufwärts begehen
|
|
402
|
+
codebeacon affected --base origin/main --head HEAD --depth 4 --limit 200
|
|
403
|
+
codebeacon affected src/foo.py src/bar.py # explizite Pfade — kein git nötig
|
|
377
404
|
|
|
378
405
|
codebeacon query <Begriff> [--dir .codebeacon] [--limit N] # Knoten per Label-Substring suchen
|
|
379
406
|
codebeacon path <Quelle> <Ziel> [--dir .codebeacon] # kürzester Abhängigkeitspfad
|
|
@@ -398,7 +425,8 @@ codebeacon semantic-apply [--dir .codebeacon]
|
|
|
398
425
|
# (dauerhaftes Archiv). Results löschen, alles regenerieren.
|
|
399
426
|
|
|
400
427
|
codebeacon serve [--dir .codebeacon] # MCP-Server starten (stdio)
|
|
401
|
-
codebeacon install # Claude-Code-Skill installieren
|
|
428
|
+
codebeacon install # Claude-Code-Skill installieren (User-Scope: ~/.claude/)
|
|
429
|
+
codebeacon install --project [PATH] # nach <PATH>/.claude/ installieren (team-geteilt, repo-gepinnt)
|
|
402
430
|
codebeacon upgrade # pip-Upgrade + ~/.claude/skills/codebeacon/SKILL.md aktualisieren
|
|
403
431
|
# (`--force` falls editable-Installation)
|
|
404
432
|
```
|
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
## Novedades en 0.6.0
|
|
31
|
+
|
|
32
|
+
- **`codebeacon affected`** — recibe una lista de archivos cambiados (o vía `--base <ref>` un git diff) e imprime todos los nodos del grafo aguas abajo. Pensado para puntuación de riesgo en CI y revisión de PR.
|
|
33
|
+
- **Archivos de proyecto `.NET`** — ahora se analizan `.sln`, `.csproj`, `.fsproj`, `.vbproj`, `.razor`, `.cshtml`: `<ProjectReference>` / `<PackageReference>` se convierten en aristas del grafo, y las directivas Razor `@inherits` / `@inject` / `@using` vinculan las páginas Blazor con sus tipos de respaldo.
|
|
34
|
+
- **Re-exports barrel JS/TS** — `export { X } from './mod'` y `export * from './mod'` producen aristas explícitas `re_exports`, para que los barrels de Next.js / monorepo dejen de mostrar 0 imports.
|
|
35
|
+
- **Flag `--exclude PATTERN`** para `scan` / `sync`, más respaldo automático a `.gitignore` cuando falta `.codebeaconignore`.
|
|
36
|
+
- **`codebeacon install --project [PATH]`** — instala el skill `/codebeacon` en `<PATH>/.claude/` en vez de `~/.claude/`, para que los equipos fijen una versión de SKILL.md por repositorio.
|
|
37
|
+
- **El wiki se auto-repara** — las ejecuciones con `--update` ahora eliminan los archivos `wiki/<project>/{controllers,services,entities,components}/*.md` cuyo nodo del grafo ya no existe.
|
|
38
|
+
- **Guarda anti-encogimiento relajada para borrados explícitos** — en modo `--update`, ya no se rechaza escribir un `beacon.json` más pequeño si la caché ya contabilizó los archivos eliminados; la guarda sigue activa frente a corrupción silenciosa.
|
|
39
|
+
- **Unión de declaraciones cross-file** — `extension Foo` de Swift, `partial class` de C# y clases reabiertas de Ruby unen sus `fields` / `methods` en un único nodo canónico en lugar de que gane el último que escribe.
|
|
40
|
+
- **Consulta endurecida** — `BeaconIndex` usa `casefold()`, por lo que `ß` alemán, `i/İ` turco, `σ/ς` griego y etiquetas CJK hacen match correctamente.
|
|
41
|
+
- **Contexto semántico más rico** — cada chunk de tarea ahora lleva los llamadores y llamados del grafo en `neighbors`, manteniendo al LLM anclado en etiquetas reales. `SKILL.md` añade **Step 0 — Constrained query expansion** para que los flujos `/codebeacon query` no inventen tokens fantasma.
|
|
42
|
+
- **Guarda «cero rendimiento» de `semantic-apply`** — si todos los chunks archivaron 0 aristas, la CLI termina con exit 1, para que CI detecte fallos silenciosos del LLM.
|
|
43
|
+
- **ArkTS (`.ets`) y seguridad de worktree** — `.ets` se recoge; los directorios `worktrees/` anidados se omiten para evitar la indexación duplicada de worktrees enlazadas.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
30
47
|
## ¿Por qué codebeacon?
|
|
31
48
|
|
|
32
49
|
Cada vez que se abre una nueva sesión de codificación con IA, el asistente comienza desde cero. No conoce sus rutas, su capa de servicios, su modelo de entidades ni cómo se comunican sus microservicios. Se pasa el inicio de cada sesión pegando archivos, explicando la estructura y restableciendo el contexto.
|
|
@@ -94,8 +111,9 @@ codebeacon sync # ejecuciones posteriores vía configuraci
|
|
|
94
111
|
| Ruby | Rails |
|
|
95
112
|
| PHP | Laravel |
|
|
96
113
|
| Rust | Actix-Web, Axum, Tauri, Rocket, Warp |
|
|
97
|
-
| C# | ASP.NET Core |
|
|
114
|
+
| C# | ASP.NET Core, Blazor (`.razor`, `.cshtml`); `.sln` / `.csproj` / `.fsproj` / `.vbproj` analizados para `ProjectReference` + `PackageReference` |
|
|
98
115
|
| Swift | Vapor |
|
|
116
|
+
| ArkTS | `.ets` (HarmonyOS) recogido — los extractores son agnósticos al framework |
|
|
99
117
|
|
|
100
118
|
---
|
|
101
119
|
|
|
@@ -368,10 +386,19 @@ codebeacon scan . --wiki-only # saltar extracción, regenerar wiki/o
|
|
|
368
386
|
codebeacon scan . --semantic # extracción de referencias de comentarios estructurados (Javadoc/JSDoc/docstring)
|
|
369
387
|
codebeacon scan . --list-only # solo detectar frameworks
|
|
370
388
|
codebeacon scan /workspace --deep-dive # salida por proyecto + workspace combinado
|
|
389
|
+
codebeacon scan . --exclude 'docs/**' --exclude '*.gen.ts'
|
|
390
|
+
# patrones tipo gitignore repetibles
|
|
391
|
+
# fusionados con .codebeaconignore / .gitignore
|
|
371
392
|
|
|
372
393
|
codebeacon init [ruta] # generar codebeacon.yaml
|
|
373
394
|
codebeacon sync # ejecutar desde codebeacon.yaml (añade nuevos proyectos del workspace automáticamente)
|
|
374
395
|
codebeacon sync --no-rediscover # no añadir automáticamente nuevos proyectos (modo yaml curado a mano)
|
|
396
|
+
codebeacon sync --exclude PATTERN # mismo flag, misma semántica
|
|
397
|
+
|
|
398
|
+
# PR / CI: ¿qué rompe realmente este diff?
|
|
399
|
+
codebeacon affected --base main # recorrer aguas arriba los llamadores de los archivos cambiados
|
|
400
|
+
codebeacon affected --base origin/main --head HEAD --depth 4 --limit 200
|
|
401
|
+
codebeacon affected src/foo.py src/bar.py # rutas explícitas — sin git
|
|
375
402
|
|
|
376
403
|
codebeacon query <término> [--dir .codebeacon] [--limit N] # buscar nodos por substring de etiqueta
|
|
377
404
|
codebeacon path <origen> <destino> [--dir .codebeacon] # ruta más corta de dependencias
|
|
@@ -396,7 +423,8 @@ codebeacon semantic-apply [--dir .codebeacon]
|
|
|
396
423
|
# durable). Borra los resultados y regenera todo.
|
|
397
424
|
|
|
398
425
|
codebeacon serve [--dir .codebeacon] # servidor MCP (stdio)
|
|
399
|
-
codebeacon install # instalar skill de Claude Code
|
|
426
|
+
codebeacon install # instalar skill de Claude Code (ámbito usuario: ~/.claude/)
|
|
427
|
+
codebeacon install --project [PATH] # instalar en <PATH>/.claude/ (compartido por el equipo, fijado al repo)
|
|
400
428
|
codebeacon upgrade # pip upgrade + refrescar ~/.claude/skills/codebeacon/SKILL.md
|
|
401
429
|
# (use `--force` si está instalado en modo editable)
|
|
402
430
|
```
|
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
## Nouveautés en 0.6.0
|
|
31
|
+
|
|
32
|
+
- **`codebeacon affected`** — prend une liste de fichiers modifiés (ou via `--base <ref>` un git diff) et imprime tous les nœuds du graphe en aval. Pensé pour le scoring de risque en CI et la revue de PR.
|
|
33
|
+
- **Fichiers projet `.NET`** — `.sln`, `.csproj`, `.fsproj`, `.vbproj`, `.razor`, `.cshtml` sont désormais analysés : les balises `<ProjectReference>` / `<PackageReference>` deviennent des arêtes du graphe, et les directives Razor `@inherits` / `@inject` / `@using` relient les pages Blazor à leurs types sous-jacents.
|
|
34
|
+
- **Re-exports barrel JS/TS** — `export { X } from './mod'` et `export * from './mod'` produisent maintenant des arêtes explicites `re_exports`, pour que les barrels Next.js / monorepo ne s'affichent plus avec 0 import.
|
|
35
|
+
- **Drapeau `--exclude PATTERN`** pour `scan` / `sync`, plus repli automatique sur `.gitignore` lorsque `.codebeaconignore` est absent.
|
|
36
|
+
- **`codebeacon install --project [PATH]`** — installe le skill `/codebeacon` dans `<PATH>/.claude/` plutôt que `~/.claude/`, pour permettre aux équipes de figer la version du SKILL.md par dépôt.
|
|
37
|
+
- **Le wiki s'auto-répare** — les exécutions `--update` suppriment maintenant les fichiers `wiki/<project>/{controllers,services,entities,components}/*.md` dont le nœud de graphe n'existe plus.
|
|
38
|
+
- **Garde anti-rétrécissement relâchée pour les suppressions explicites** — en mode `--update`, l'écriture d'un `beacon.json` plus petit n'est plus refusée si le cache a déjà tenu compte des fichiers supprimés ; la garde s'applique toujours en cas de corruption silencieuse.
|
|
39
|
+
- **Fusion union des déclarations multi-fichiers** — les `extension Foo` Swift, les `partial class` C# et les classes Ruby réouvertes voient leurs `fields` / `methods` fusionnés dans un unique nœud canonique au lieu d'être écrasés.
|
|
40
|
+
- **Recherche renforcée** — `BeaconIndex` utilise `casefold()`, ainsi l'allemand `ß`, le turc `i/İ`, le grec `σ/ς` et les libellés CJK matchent correctement.
|
|
41
|
+
- **Contexte sémantique enrichi** — chaque chunk de tâche transporte désormais les appelants / appelés du graphe via `neighbors`, ce qui garde le LLM ancré sur de vrais libellés. `SKILL.md` ajoute **Step 0 — Constrained query expansion** pour que les flux `/codebeacon query` n'inventent pas de tokens fantômes.
|
|
42
|
+
- **Garde « zéro rendement » de `semantic-apply`** — si tous les chunks ont archivé 0 arête, la CLI termine avec exit 1 pour que la CI détecte les échecs silencieux du LLM.
|
|
43
|
+
- **ArkTS (`.ets`) et sécurité worktree** — `.ets` est collecté ; les dossiers `worktrees/` imbriqués sont ignorés pour éviter l'indexation en double des worktrees liées.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
30
47
|
## Pourquoi codebeacon ?
|
|
31
48
|
|
|
32
49
|
À chaque nouvelle session de développement assisté par IA, l'assistant repart de zéro. Il ne connaît ni vos routes, ni votre couche de services, ni votre modèle d'entités, ni les relations entre vos microservices. Vous passez le début de chaque session à coller des fichiers, expliquer la structure et rétablir le contexte.
|
|
@@ -94,8 +111,9 @@ codebeacon sync # exécutions suivantes via la configuration
|
|
|
94
111
|
| Ruby | Rails |
|
|
95
112
|
| PHP | Laravel |
|
|
96
113
|
| Rust | Actix-Web, Axum, Tauri, Rocket, Warp |
|
|
97
|
-
| C# | ASP.NET Core |
|
|
114
|
+
| C# | ASP.NET Core, Blazor (`.razor`, `.cshtml`) ; `.sln` / `.csproj` / `.fsproj` / `.vbproj` analysés pour `ProjectReference` + `PackageReference` |
|
|
98
115
|
| Swift | Vapor |
|
|
116
|
+
| ArkTS | `.ets` (HarmonyOS) collecté — les extracteurs sont framework-agnostiques |
|
|
99
117
|
|
|
100
118
|
---
|
|
101
119
|
|
|
@@ -369,10 +387,19 @@ codebeacon scan . --wiki-only # ignorer la ré-extraction, régéné
|
|
|
369
387
|
codebeacon scan . --semantic # extraction des références dans commentaires structurés (Javadoc/JSDoc/docstring)
|
|
370
388
|
codebeacon scan . --list-only # détecter les frameworks uniquement
|
|
371
389
|
codebeacon scan /workspace --deep-dive # sortie par projet + workspace combiné
|
|
390
|
+
codebeacon scan . --exclude 'docs/**' --exclude '*.gen.ts'
|
|
391
|
+
# motifs gitignore répétables
|
|
392
|
+
# fusionnés avec .codebeaconignore / .gitignore
|
|
372
393
|
|
|
373
394
|
codebeacon init [chemin] # générer codebeacon.yaml
|
|
374
395
|
codebeacon sync # exécuter depuis codebeacon.yaml (ajoute automatiquement les nouveaux projets du workspace)
|
|
375
396
|
codebeacon sync --no-rediscover # ne pas ajouter automatiquement les nouveaux projets (mode yaml géré manuellement)
|
|
397
|
+
codebeacon sync --exclude PATTERN # même drapeau, même sémantique
|
|
398
|
+
|
|
399
|
+
# PR / CI : qu'est-ce que ce diff casse vraiment ?
|
|
400
|
+
codebeacon affected --base main # remonter les appelants des fichiers modifiés
|
|
401
|
+
codebeacon affected --base origin/main --head HEAD --depth 4 --limit 200
|
|
402
|
+
codebeacon affected src/foo.py src/bar.py # chemins explicites — pas besoin de git
|
|
376
403
|
|
|
377
404
|
codebeacon query <terme> [--dir .codebeacon] [--limit N] # rechercher des nœuds par sous-chaîne de label
|
|
378
405
|
codebeacon path <source> <cible> [--dir .codebeacon] # chemin de dépendances le plus court
|
|
@@ -397,7 +424,8 @@ codebeacon semantic-apply [--dir .codebeacon]
|
|
|
397
424
|
# durable). Supprime les résultats, régénère tout.
|
|
398
425
|
|
|
399
426
|
codebeacon serve [--dir .codebeacon] # serveur MCP (stdio)
|
|
400
|
-
codebeacon install # installer le skill Claude Code
|
|
427
|
+
codebeacon install # installer le skill Claude Code (portée utilisateur : ~/.claude/)
|
|
428
|
+
codebeacon install --project [PATH] # installer dans <PATH>/.claude/ (partagé en équipe, épinglé au dépôt)
|
|
401
429
|
codebeacon upgrade # pip upgrade + rafraîchir ~/.claude/skills/codebeacon/SKILL.md
|
|
402
430
|
# (`--force` si installé en mode éditable)
|
|
403
431
|
```
|
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
## 0.6.0 の新機能
|
|
31
|
+
|
|
32
|
+
- **`codebeacon affected`** — 変更されたファイル一覧(または `--base <ref>` で git diff)を受け取り、その影響範囲にあるグラフノードをすべて出力。CI のリスクスコアリングや PR レビュー向け。
|
|
33
|
+
- **`.NET` プロジェクトファイル** — `.sln`, `.csproj`, `.fsproj`, `.vbproj`, `.razor`, `.cshtml` を解析。`<ProjectReference>` / `<PackageReference>` がグラフエッジとなり、Razor `@inherits` / `@inject` / `@using` が Blazor ページを背後の型に接続。
|
|
34
|
+
- **JS/TS バレル re-export** — `export { X } from './mod'`, `export * from './mod'` が明示的な `re_exports` エッジを生成。Next.js / モノレポのバレルが import 0 と表示されなくなりました。
|
|
35
|
+
- **`--exclude PATTERN` フラグ**(`scan` / `sync` 両方)+ `.codebeaconignore` がない場合は `.gitignore` を自動フォールバック。
|
|
36
|
+
- **`codebeacon install --project [PATH]`** — `~/.claude/` ではなく `<PATH>/.claude/` に `/codebeacon` スキルをインストール。チームが SKILL.md のバージョンをリポジトリに固定できます。
|
|
37
|
+
- **wiki の自動クリーンアップ** — `--update` 実行時、グラフに存在しなくなった `wiki/<project>/{controllers,services,entities,components}/*.md` を自動削除。
|
|
38
|
+
- **明示的削除時は shrink-guard をバイパス** — `--update` モードでキャッシュが既に削除を反映している場合、より小さい `beacon.json` の書き込みを拒否しなくなりました。silent corruption へのガードは維持。
|
|
39
|
+
- **Cross-file 宣言の union マージ** — Swift `extension Foo`, C# partial class, Ruby reopened class の `fields` / `methods` が最後の書き込みで上書きされず、単一の canonical ノードにマージされます。
|
|
40
|
+
- **query の強化** — `BeaconIndex` が `casefold()` を使うので、ドイツ語 `ß`、トルコ語 `i/İ`、ギリシャ語 `σ/ς`、CJK ラベルのマッチが正しく動作。
|
|
41
|
+
- **セマンティックコンテキストの強化** — 各タスクチャンクにグラフの caller / callee が `neighbors` として同梱され、LLM が実在ノードラベルから離れにくくなりました。`SKILL.md` に **Step 0 — Constrained query expansion** を追加し、`/codebeacon query` フローが phantom トークンを発明できないよう明示。
|
|
42
|
+
- **`semantic-apply` zero-yield ガード** — すべてのチャンクが 0 エッジでアーカイブされた場合、CLI が exit 1 で終了し、CI が LLM のサイレント失敗を検出できます。
|
|
43
|
+
- **ArkTS (`.ets`) と worktree 安全性** — `.ets` を収集、ネストされた `worktrees/` ディレクトリをスキップし、linked worktree の重複インデックスを防止。
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
30
47
|
## なぜ codebeacon なのか
|
|
31
48
|
|
|
32
49
|
AI コーディングセッションを新しく開くたびに、アシスタントは白紙の状態から始まります。ルート構造も、サービス層も、エンティティモデルも、マイクロサービス間の呼び出し関係も把握していません。毎回のセッションでファイルを貼り付け、構造を説明し、コンテキストを再設定するために多くの時間を費やすことになります。
|
|
@@ -94,8 +111,9 @@ codebeacon sync # 以降の実行は設定ファイルベ
|
|
|
94
111
|
| Ruby | Rails |
|
|
95
112
|
| PHP | Laravel |
|
|
96
113
|
| Rust | Actix-Web、Axum、Tauri、Rocket、Warp |
|
|
97
|
-
| C# | ASP.NET Core |
|
|
114
|
+
| C# | ASP.NET Core, Blazor (`.razor`, `.cshtml`); `.sln` / `.csproj` / `.fsproj` / `.vbproj` から `ProjectReference` + `PackageReference` を解析 |
|
|
98
115
|
| Swift | Vapor |
|
|
116
|
+
| ArkTS | `.ets` (HarmonyOS) を収集 — extractor は framework-agnostic |
|
|
99
117
|
|
|
100
118
|
---
|
|
101
119
|
|
|
@@ -274,12 +292,21 @@ codebeacon scan . --obsidian-dir <path> # Obsidian Vault をカスタム場所
|
|
|
274
292
|
codebeacon scan . --semantic # 構造化コメント参照(Javadoc/JSDoc/docstring)の抽出を有効化
|
|
275
293
|
codebeacon scan . --list-only # フレームワーク検出のみ、抽出なし
|
|
276
294
|
codebeacon scan /workspace --deep-dive # プロジェクト別 + 統合ワークスペース出力
|
|
295
|
+
codebeacon scan . --exclude 'docs/**' --exclude '*.gen.ts'
|
|
296
|
+
# 繰り返し可能な gitignore スタイルパターン
|
|
297
|
+
# .codebeaconignore / .gitignore とマージ
|
|
277
298
|
|
|
278
299
|
# 設定ベースモード
|
|
279
300
|
codebeacon init [path] # codebeacon.yaml を自動生成
|
|
280
301
|
codebeacon sync # codebeacon.yaml ベースで実行 (新規ワークスペースプロジェクトを自動追加)
|
|
281
302
|
codebeacon sync --config <file> # 特定の設定ファイルを使用
|
|
282
303
|
codebeacon sync --no-rediscover # 新規プロジェクトの自動追加を無効化 (手動キュレーションモード)
|
|
304
|
+
codebeacon sync --exclude PATTERN # 同じフラグ、同じ意味
|
|
305
|
+
|
|
306
|
+
# PR / CI: この diff は実際に何を壊すのか?
|
|
307
|
+
codebeacon affected --base main # 変更ファイルの上流呼び出し元を walk
|
|
308
|
+
codebeacon affected --base origin/main --head HEAD --depth 4 --limit 200
|
|
309
|
+
codebeacon affected src/foo.py src/bar.py # 明示パス — git なしでも動作
|
|
283
310
|
|
|
284
311
|
# ナレッジグラフのクエリ
|
|
285
312
|
codebeacon query <term> [--dir .codebeacon] [--limit N] # ラベル部分文字列でノード検索
|
|
@@ -306,7 +333,8 @@ codebeacon semantic-apply [--dir .codebeacon]
|
|
|
306
333
|
|
|
307
334
|
# インテグレーション
|
|
308
335
|
codebeacon serve [--dir .codebeacon] # MCP サーバー起動 (stdio)
|
|
309
|
-
codebeacon install # Claude Code スキルをインストール
|
|
336
|
+
codebeacon install # Claude Code スキルをインストール (user スコープ: ~/.claude/)
|
|
337
|
+
codebeacon install --project [PATH] # <PATH>/.claude/ にインストール (チーム共有・リポジトリ固定)
|
|
310
338
|
codebeacon upgrade # pip で更新 + ~/.claude/skills/codebeacon/SKILL.md を再生成
|
|
311
339
|
# (`--force` で editable インストール時も強制実行)
|
|
312
340
|
```
|
|
@@ -27,6 +27,23 @@
|
|
|
27
27
|
|
|
28
28
|
---
|
|
29
29
|
|
|
30
|
+
## 0.6.0 새 소식
|
|
31
|
+
|
|
32
|
+
- **`codebeacon affected`** — 변경된 파일 목록(또는 `--base <ref>`로 git diff)을 받아 그 영향권에 있는 그래프 노드를 모두 출력. CI 리스크 스코어링·PR 리뷰용.
|
|
33
|
+
- **`.NET` 프로젝트 파일** — `.sln`, `.csproj`, `.fsproj`, `.vbproj`, `.razor`, `.cshtml`가 이제 파싱됩니다. `<ProjectReference>` / `<PackageReference>`가 그래프 엣지로, Razor `@inherits` / `@inject` / `@using`이 Blazor 페이지를 백엔드 타입으로 연결합니다.
|
|
34
|
+
- **JS/TS 배럴 re-export** — `export { X } from './mod'`, `export * from './mod'`가 명시적 `re_exports` 엣지가 됩니다. Next.js·모노레포 배럴이 더 이상 import 0으로 표시되지 않습니다.
|
|
35
|
+
- **`--exclude PATTERN` 플래그** (`scan` / `sync`) + `.codebeaconignore`가 없을 때 자동 `.gitignore` 폴백.
|
|
36
|
+
- **`codebeacon install --project [PATH]`** — `~/.claude/` 대신 `<PATH>/.claude/`에 `/codebeacon` 스킬 설치. 팀이 SKILL.md 버전을 레포에 핀할 수 있습니다.
|
|
37
|
+
- **wiki 자동 정리** — `--update` 실행 시 더 이상 그래프에 없는 `wiki/<project>/{controllers,services,entities,components}/*.md` 파일을 자동 삭제.
|
|
38
|
+
- **명시 삭제 시 shrink-guard 우회** — `--update` 모드에서 캐시가 이미 삭제된 파일을 추적했다면 더 작은 `beacon.json` 쓰기를 거부하지 않습니다. silent corruption에 대한 가드는 그대로.
|
|
39
|
+
- **Cross-file 선언 union 머지** — Swift `extension Foo`, C# partial class, Ruby reopened class가 `fields` / `methods`를 마지막 파일에 덮어쓰지 않고 단일 canonical 노드로 합쳐집니다.
|
|
40
|
+
- **query 강화** — `BeaconIndex`가 `casefold()`를 사용해 독일어 `ß`, 터키어 `i/İ`, 그리스어 `σ/ς`, CJK 라벨 매칭이 올바르게 동작합니다.
|
|
41
|
+
- **시맨틱 컨텍스트 강화** — 각 task chunk에 그래프 caller·callee가 `neighbors`로 동봉되어 LLM이 실제 노드 라벨에서 벗어나기 어렵습니다. `SKILL.md`에 **Step 0 — Constrained query expansion** 추가로 `/codebeacon query` 흐름이 phantom 토큰을 만들지 못하도록 명시.
|
|
42
|
+
- **`semantic-apply` zero-yield 가드** — 모든 chunk가 0 엣지로 archive되면 CLI가 exit 1로 종료해 CI가 LLM의 silent 실패를 잡습니다.
|
|
43
|
+
- **ArkTS (`.ets`) + worktree 안전** — `.ets` 수집, 중첩 `worktrees/` 디렉토리는 스킵해 linked worktree가 중복 인덱싱되지 않습니다.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
30
47
|
## 왜 codebeacon인가?
|
|
31
48
|
|
|
32
49
|
AI 코딩 세션을 새로 열 때마다 어시스턴트는 백지 상태에서 시작합니다. 라우트 구조도, 서비스 레이어도, 엔티티 모델도, 마이크로서비스 간 호출 관계도 모릅니다. 결국 세션마다 파일을 붙여넣고, 구조를 설명하고, 컨텍스트를 다시 세팅하는 데 상당한 시간을 씁니다.
|
|
@@ -94,8 +111,9 @@ codebeacon sync # 이후 실행은 설정 파일 기반
|
|
|
94
111
|
| Ruby | Rails |
|
|
95
112
|
| PHP | Laravel |
|
|
96
113
|
| Rust | Actix-Web, Axum, Tauri, Rocket, Warp |
|
|
97
|
-
| C# | ASP.NET Core |
|
|
114
|
+
| C# | ASP.NET Core, Blazor (`.razor`, `.cshtml`); `.sln` / `.csproj` / `.fsproj` / `.vbproj`에서 `ProjectReference` + `PackageReference` 파싱 |
|
|
98
115
|
| Swift | Vapor |
|
|
116
|
+
| ArkTS | `.ets` (HarmonyOS) 수집 — extractor는 framework-agnostic |
|
|
99
117
|
|
|
100
118
|
---
|
|
101
119
|
|
|
@@ -314,12 +332,21 @@ codebeacon scan . --obsidian-dir <path> # Obsidian 볼트를 커스텀 위치
|
|
|
314
332
|
codebeacon scan . --semantic # 구조화 주석 시맨틱 추출 활성화 (Javadoc/JSDoc/docstring 참조)
|
|
315
333
|
codebeacon scan . --list-only # 프레임워크 감지만, 추출 제외
|
|
316
334
|
codebeacon scan /workspace --deep-dive # 프로젝트별 + 통합 워크스페이스 출력
|
|
335
|
+
codebeacon scan . --exclude 'docs/**' --exclude '*.gen.ts'
|
|
336
|
+
# gitignore-스타일 패턴, 반복 가능
|
|
337
|
+
# .codebeaconignore / .gitignore 와 병합
|
|
317
338
|
|
|
318
339
|
# 설정 기반 모드
|
|
319
340
|
codebeacon init [path] # codebeacon.yaml 자동 생성
|
|
320
341
|
codebeacon sync # codebeacon.yaml 기반 실행 (신규 워크스페이스 프로젝트 자동 추가)
|
|
321
342
|
codebeacon sync --config <file> # 특정 설정 파일 사용
|
|
322
343
|
codebeacon sync --no-rediscover # 신규 프로젝트 자동 추가 비활성화 (수동 큐레이션 모드)
|
|
344
|
+
codebeacon sync --exclude PATTERN # 동일 플래그 동일 의미
|
|
345
|
+
|
|
346
|
+
# PR / CI: 이 diff 가 실제로 무엇을 깰까?
|
|
347
|
+
codebeacon affected --base main # 변경 파일들의 업스트림 호출자 walk
|
|
348
|
+
codebeacon affected --base origin/main --head HEAD --depth 4 --limit 200
|
|
349
|
+
codebeacon affected src/foo.py src/bar.py # 명시 경로 — git 없이도 동작
|
|
323
350
|
|
|
324
351
|
# AI-시맨틱 보강 (LLM 작업은 에이전트가, 부기는 codebeacon이 담당)
|
|
325
352
|
codebeacon semantic-prepare [--dir .codebeacon] [--max-tasks N] [--chunk-size N]
|
|
@@ -347,7 +374,8 @@ codebeacon merge-driver <base> <cur> <other> # `hook install` 후 git이 자동
|
|
|
347
374
|
|
|
348
375
|
# 통합
|
|
349
376
|
codebeacon serve [--dir .codebeacon] # MCP 서버 시작 (stdio)
|
|
350
|
-
codebeacon install # Claude Code 스킬 설치
|
|
377
|
+
codebeacon install # Claude Code 스킬 설치 (user 스코프: ~/.claude/)
|
|
378
|
+
codebeacon install --project [PATH] # <PATH>/.claude/ 에 설치 (팀 공유, 레포 핀)
|
|
351
379
|
codebeacon upgrade # pip 으로 업그레이드 + ~/.claude/skills/codebeacon/SKILL.md 갱신
|
|
352
380
|
# (`--force` 로 editable 설치 환경에서도 강제 업그레이드)
|
|
353
381
|
```
|
|
@@ -1,46 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: codebeacon
|
|
3
|
-
Version: 0.5.0
|
|
4
|
-
Summary: Source code AST analysis tool for AI context generation — unified multi-framework knowledge graph
|
|
5
|
-
Project-URL: Homepage, https://github.com/codebeacon/codebeacon
|
|
6
|
-
Project-URL: Repository, https://github.com/codebeacon/codebeacon
|
|
7
|
-
Project-URL: Issues, https://github.com/codebeacon/codebeacon/issues
|
|
8
|
-
License: MIT
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Keywords: ai-context,ast,claude,codebase,knowledge-graph,mcp
|
|
11
|
-
Classifier: Development Status :: 3 - Alpha
|
|
12
|
-
Classifier: Intended Audience :: Developers
|
|
13
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
-
Classifier: Topic :: Software Development :: Build Tools
|
|
19
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
-
Requires-Python: >=3.10
|
|
21
|
-
Requires-Dist: networkx>=3.0
|
|
22
|
-
Requires-Dist: pyyaml>=6.0
|
|
23
|
-
Requires-Dist: tree-sitter-c-sharp>=0.23
|
|
24
|
-
Requires-Dist: tree-sitter-go>=0.23
|
|
25
|
-
Requires-Dist: tree-sitter-html>=0.23
|
|
26
|
-
Requires-Dist: tree-sitter-java>=0.23
|
|
27
|
-
Requires-Dist: tree-sitter-javascript>=0.23
|
|
28
|
-
Requires-Dist: tree-sitter-kotlin>=0.23
|
|
29
|
-
Requires-Dist: tree-sitter-php>=0.23
|
|
30
|
-
Requires-Dist: tree-sitter-python>=0.23
|
|
31
|
-
Requires-Dist: tree-sitter-ruby>=0.23
|
|
32
|
-
Requires-Dist: tree-sitter-rust>=0.23
|
|
33
|
-
Requires-Dist: tree-sitter-svelte>=0.23
|
|
34
|
-
Requires-Dist: tree-sitter-swift>=0.0.1
|
|
35
|
-
Requires-Dist: tree-sitter-typescript>=0.23
|
|
36
|
-
Requires-Dist: tree-sitter>=0.23
|
|
37
|
-
Provides-Extra: cluster
|
|
38
|
-
Requires-Dist: graspologic>=1.0; extra == 'cluster'
|
|
39
|
-
Provides-Extra: dev
|
|
40
|
-
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
|
|
41
|
-
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
42
|
-
Description-Content-Type: text/markdown
|
|
43
|
-
|
|
44
1
|
<p align="center">
|
|
45
2
|
<a href="https://github.com/Wandererer/codebeacon/blob/main/README.md"><img src="https://img.shields.io/badge/lang-English-blue" alt="English"></a>
|
|
46
3
|
<a href="https://github.com/Wandererer/codebeacon/blob/main/README.ko.md"><img src="https://img.shields.io/badge/lang-한국어-red" alt="Korean"></a>
|
|
@@ -68,6 +25,23 @@ Description-Content-Type: text/markdown
|
|
|
68
25
|
|
|
69
26
|
---
|
|
70
27
|
|
|
28
|
+
## What's new in 0.6.0
|
|
29
|
+
|
|
30
|
+
- **`codebeacon affected`** — given a list of changed files (or a `--base <ref>` git diff), prints every graph node downstream of the change. Built for CI risk-scoring and PR review.
|
|
31
|
+
- **`.NET` project files** — `.sln`, `.csproj`, `.fsproj`, `.vbproj`, `.razor`, `.cshtml` are now parsed: `<ProjectReference>` / `<PackageReference>` become graph edges, Razor `@inherits` / `@inject` / `@using` link Blazor pages to their backing types.
|
|
32
|
+
- **JS/TS barrel re-exports** — `export { X } from './mod'` and `export * from './mod'` now produce explicit `re_exports` edges so Next.js / monorepo barrels stop showing zero imports.
|
|
33
|
+
- **`--exclude PATTERN` flag** for `scan` / `sync`, plus automatic fallback to `.gitignore` when `.codebeaconignore` is absent.
|
|
34
|
+
- **`codebeacon install --project [PATH]`** — install the `/codebeacon` skill into `<PATH>/.claude/` instead of `~/.claude/`, so teams can pin a SKILL.md version per repo.
|
|
35
|
+
- **Wiki self-heals** — `--update` runs now prune `wiki/<project>/{controllers,services,entities,components}/*.md` files whose graph node no longer exists.
|
|
36
|
+
- **Shrink-guard relaxed for explicit deletions** — `--update` mode no longer refuses to write a smaller `beacon.json` when the cache already accounted for deleted files; the guard still fires on silent corruption.
|
|
37
|
+
- **Cross-file declaration merge** — Swift `extension Foo`, C# partial classes, Ruby reopened classes union their `fields` / `methods` into one canonical node instead of the last writer winning.
|
|
38
|
+
- **Hardened query** — `BeaconIndex` uses `casefold()` so German `ß`, Turkish `i/İ`, Greek `σ/ς`, and CJK labels round-trip correctly.
|
|
39
|
+
- **Richer semantic context** — each task chunk now ships graph callers + callees as `neighbors` so the LLM stays grounded in real node labels; `SKILL.md` adds **Step 0 — Constrained query expansion** so `/codebeacon query` flows can't invent phantom tokens.
|
|
40
|
+
- **`semantic-apply` zero-yield guard** — if every chunk archived 0 edges, the CLI exits 1 so CI catches silent LLM failures.
|
|
41
|
+
- **ArkTS (`.ets`) and worktree-safety** — `.ets` is collected; nested `worktrees/` dirs are skipped to stop double-counting linked worktrees.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
71
45
|
## Why codebeacon?
|
|
72
46
|
|
|
73
47
|
Every time you open a new AI coding session, your assistant starts blind. It doesn't know your routes, your service layer, your entity model, or how your microservices call each other. You spend the first chunk of every session just getting the AI back up to speed — pasting files, explaining structure, re-establishing context.
|
|
@@ -135,8 +109,9 @@ codebeacon sync # subsequent runs via config
|
|
|
135
109
|
| Ruby | Rails |
|
|
136
110
|
| PHP | Laravel |
|
|
137
111
|
| Rust | Actix-Web, Axum, Tauri, Rocket, Warp |
|
|
138
|
-
| C# | ASP.NET Core |
|
|
112
|
+
| C# | ASP.NET Core, Blazor (`.razor`, `.cshtml`); `.sln` / `.csproj` / `.fsproj` / `.vbproj` parsed for `ProjectReference` + `PackageReference` |
|
|
139
113
|
| Swift | Vapor |
|
|
114
|
+
| ArkTS | `.ets` (HarmonyOS) collected — extractors framework-agnostic |
|
|
140
115
|
|
|
141
116
|
---
|
|
142
117
|
|
|
@@ -356,12 +331,21 @@ codebeacon scan . --obsidian-dir <path> # write Obsidian vault to custom locat
|
|
|
356
331
|
codebeacon scan . --semantic # enable structured-comment semantic extraction (Javadoc/JSDoc/docstring refs)
|
|
357
332
|
codebeacon scan . --list-only # detect frameworks only, don't extract
|
|
358
333
|
codebeacon scan /workspace --deep-dive # per-project + combined workspace outputs
|
|
334
|
+
codebeacon scan . --exclude 'docs/**' --exclude '*.gen.ts'
|
|
335
|
+
# repeatable gitignore-style patterns merged with
|
|
336
|
+
# .codebeaconignore / .gitignore
|
|
359
337
|
|
|
360
338
|
# Config-driven mode
|
|
361
339
|
codebeacon init [path] # auto-generate codebeacon.yaml
|
|
362
340
|
codebeacon sync # run from codebeacon.yaml (auto-appends new workspace projects)
|
|
363
341
|
codebeacon sync --config <file> # use a specific config file
|
|
364
342
|
codebeacon sync --no-rediscover # don't auto-append newly added projects (hand-curated yaml mode)
|
|
343
|
+
codebeacon sync --exclude PATTERN # same flag, same semantics
|
|
344
|
+
|
|
345
|
+
# PR / CI: what does this diff actually break?
|
|
346
|
+
codebeacon affected --base main # walk upstream callers of every changed file
|
|
347
|
+
codebeacon affected --base origin/main --head HEAD --depth 4 --limit 200
|
|
348
|
+
codebeacon affected src/foo.py src/bar.py # explicit paths, no git needed
|
|
365
349
|
|
|
366
350
|
# AI-semantic enrichment (the agent does the LLM work, codebeacon does the bookkeeping)
|
|
367
351
|
codebeacon semantic-prepare [--dir .codebeacon] [--max-tasks N] [--chunk-size N]
|
|
@@ -390,7 +374,8 @@ codebeacon merge-driver <base> <cur> <other> # invoked by git after `hook insta
|
|
|
390
374
|
|
|
391
375
|
# Integrations
|
|
392
376
|
codebeacon serve [--dir .codebeacon] # start MCP server (stdio)
|
|
393
|
-
codebeacon install # install Claude Code skill
|
|
377
|
+
codebeacon install # install Claude Code skill (user scope: ~/.claude/)
|
|
378
|
+
codebeacon install --project [PATH] # install into <PATH>/.claude/ (team-shared, repo-pinned)
|
|
394
379
|
codebeacon upgrade # pip install --upgrade + refresh ~/.claude/skills/codebeacon/SKILL.md
|
|
395
380
|
# (`--force` to upgrade even when installed in editable mode)
|
|
396
381
|
```
|