sourcecode 2.0.0__tar.gz → 2.0.1__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.
Files changed (135) hide show
  1. {sourcecode-2.0.0 → sourcecode-2.0.1}/CHANGELOG.md +25 -44
  2. {sourcecode-2.0.0 → sourcecode-2.0.1}/CONTRIBUTING.md +3 -3
  3. {sourcecode-2.0.0 → sourcecode-2.0.1}/PKG-INFO +114 -117
  4. {sourcecode-2.0.0 → sourcecode-2.0.1}/README.md +113 -116
  5. {sourcecode-2.0.0 → sourcecode-2.0.1}/pyproject.toml +2 -3
  6. sourcecode-2.0.1/src/sourcecode/__init__.py +3 -0
  7. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/cli.py +196 -199
  8. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/license.py +13 -31
  9. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/onboarding/applier.py +6 -14
  10. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/registry.py +22 -22
  11. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/runner.py +2 -2
  12. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/server.py +24 -24
  13. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp_nudge.py +1 -1
  14. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/migrate_check.py +64 -0
  15. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/repository_ir.py +1 -1
  16. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/ris.py +1 -1
  17. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/serializer.py +1 -1
  18. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/summarizer.py +33 -2
  19. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/telemetry/consent.py +1 -1
  20. {sourcecode-2.0.0 → sourcecode-2.0.1}/supabase/functions/README.md +1 -1
  21. sourcecode-2.0.0/src/sourcecode/__init__.py +0 -7
  22. {sourcecode-2.0.0 → sourcecode-2.0.1}/.github/workflows/build-windows.yml +0 -0
  23. {sourcecode-2.0.0 → sourcecode-2.0.1}/.gitignore +0 -0
  24. {sourcecode-2.0.0 → sourcecode-2.0.1}/.ruff.toml +0 -0
  25. {sourcecode-2.0.0 → sourcecode-2.0.1}/LICENSE +0 -0
  26. {sourcecode-2.0.0 → sourcecode-2.0.1}/SECURITY.md +0 -0
  27. {sourcecode-2.0.0 → sourcecode-2.0.1}/raw +0 -0
  28. {sourcecode-2.0.0 → sourcecode-2.0.1}/scripts/compare_integration_engines.py +0 -0
  29. {sourcecode-2.0.0 → sourcecode-2.0.1}/scripts/customer_smoke_test.sh +0 -0
  30. {sourcecode-2.0.0 → sourcecode-2.0.1}/scripts/generate_jdk_exports.py +0 -0
  31. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/adaptive_scanner.py +0 -0
  32. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/architecture_analyzer.py +0 -0
  33. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/architecture_summary.py +0 -0
  34. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/ast_extractor.py +0 -0
  35. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/cache.py +0 -0
  36. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/call_surface.py +0 -0
  37. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/canonical_ir.py +0 -0
  38. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/cir_graphs.py +0 -0
  39. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/classifier.py +0 -0
  40. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/code_notes_analyzer.py +0 -0
  41. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/confidence_analyzer.py +0 -0
  42. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/context_graph.py +0 -0
  43. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/context_scorer.py +0 -0
  44. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/context_summarizer.py +0 -0
  45. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/contract_model.py +0 -0
  46. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/contract_pipeline.py +0 -0
  47. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/coverage_parser.py +0 -0
  48. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/dependency_analyzer.py +0 -0
  49. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/__init__.py +0 -0
  50. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/base.py +0 -0
  51. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/csproj_parser.py +0 -0
  52. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/dart.py +0 -0
  53. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/dotnet.py +0 -0
  54. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/elixir.py +0 -0
  55. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/go.py +0 -0
  56. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/heuristic.py +0 -0
  57. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/hybrid.py +0 -0
  58. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/java.py +0 -0
  59. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/jvm_ext.py +0 -0
  60. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/nodejs.py +0 -0
  61. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/parsers.py +0 -0
  62. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/php.py +0 -0
  63. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/project.py +0 -0
  64. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/python.py +0 -0
  65. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/ruby.py +0 -0
  66. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/rust.py +0 -0
  67. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/systems.py +0 -0
  68. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/terraform.py +0 -0
  69. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/detectors/tooling.py +0 -0
  70. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/doc_analyzer.py +0 -0
  71. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/dynamic_argument_surface.py +0 -0
  72. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/endpoint_literals.py +0 -0
  73. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/entrypoint_classifier.py +0 -0
  74. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/env_analyzer.py +0 -0
  75. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/error_schema.py +0 -0
  76. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/evidence_provider.py +0 -0
  77. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/explain.py +0 -0
  78. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/file_chunker.py +0 -0
  79. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/file_classifier.py +0 -0
  80. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/format_contract.py +0 -0
  81. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/fqn_utils.py +0 -0
  82. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/git_analyzer.py +0 -0
  83. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/graph_analyzer.py +0 -0
  84. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/hibernate_strat.py +0 -0
  85. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/jdk_exports.py +0 -0
  86. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/__init__.py +0 -0
  87. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  88. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  89. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  90. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  91. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/mcp/orchestrator.py +0 -0
  92. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/metrics_analyzer.py +0 -0
  93. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/openapi_surface.py +0 -0
  94. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/output_budget.py +0 -0
  95. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/path_filters.py +0 -0
  96. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/pr_comment_renderer.py +0 -0
  97. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/pr_impact.py +0 -0
  98. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/prepare_context.py +0 -0
  99. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/progress.py +0 -0
  100. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/ranking_engine.py +0 -0
  101. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/redactor.py +0 -0
  102. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/relevance_scorer.py +0 -0
  103. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/rename_refactor.py +0 -0
  104. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/repo_classifier.py +0 -0
  105. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/runtime_classifier.py +0 -0
  106. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/scanner.py +0 -0
  107. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/schema.py +0 -0
  108. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/security_config.py +0 -0
  109. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/semantic_analyzer.py +0 -0
  110. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/semantic_impact_engine.py +0 -0
  111. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/semantic_integration_engine.py +0 -0
  112. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/semantic_services.py +0 -0
  113. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/spring_event_topology.py +0 -0
  114. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/spring_findings.py +0 -0
  115. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/spring_impact.py +0 -0
  116. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/spring_model.py +0 -0
  117. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/spring_security_audit.py +0 -0
  118. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/spring_semantic.py +0 -0
  119. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/spring_tx_analyzer.py +0 -0
  120. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/telemetry/__init__.py +0 -0
  121. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/telemetry/config.py +0 -0
  122. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/telemetry/events.py +0 -0
  123. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/telemetry/filters.py +0 -0
  124. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/telemetry/transport.py +0 -0
  125. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/tree_utils.py +0 -0
  126. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/type_usage_surface.py +0 -0
  127. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/validation_surface.py +0 -0
  128. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/version_check.py +0 -0
  129. {sourcecode-2.0.0 → sourcecode-2.0.1}/src/sourcecode/workspace.py +0 -0
  130. {sourcecode-2.0.0 → sourcecode-2.0.1}/supabase/functions/get-license/index.ts +0 -0
  131. {sourcecode-2.0.0 → sourcecode-2.0.1}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  132. {sourcecode-2.0.0 → sourcecode-2.0.1}/supabase/functions/telemetry/index.ts +0 -0
  133. {sourcecode-2.0.0 → sourcecode-2.0.1}/supabase/sql/license_event_ordering.sql +0 -0
  134. {sourcecode-2.0.0 → sourcecode-2.0.1}/supabase/sql/licensing_schema.sql +0 -0
  135. {sourcecode-2.0.0 → sourcecode-2.0.1}/supabase/sql/telemetry_events.sql +0 -0
@@ -1,49 +1,30 @@
1
1
  # Changelog
2
2
 
3
- ## [2.0.0] — 2026-07-06
4
-
5
- **ASK Engine 2.0** — the product identity is now final. The engine is unchanged;
6
- this major marks the CLI/product rename and is fully backward compatible.
7
-
8
- ### Changed canonical command is now `ask`
9
-
10
- - **`ask` is the canonical CLI command.** `ask impact`, `ask migrate-check`,
11
- `ask review-pr`, `ask mcp init`, `ask activate …` one short verb that matches
12
- the product name (ASK Engine).
13
- - **`sourcecode` becomes a deprecated compatibility alias.** It keeps working
14
- (same single implementation, `prog_name` pinned to `ask`), prints a one-line
15
- deprecation notice **only on an interactive terminal**, and forwards to `ask`.
16
- Pipes and agents that still call `sourcecode` get byte-identical stdout **and**
17
- clean (JSON-only) stderr the machine contract is unchanged. The alias will be
18
- removed in a future major.
19
- - **New welcome wordmark**: a large `ASK` block with an `E N G I N E` label
20
- replaces the old `SOURCE`/`CODE` banner. Help and banners read `CLI: ask`.
21
- - **Config home moved to `~/.ask`** (canonical writes); the legacy `~/.sourcecode`
22
- is still read as a fallback, so **no existing user loses their license or config**.
23
- Cache dir (`.sourcecode-cache/`) and `SOURCECODE_*` env vars are unchanged.
24
- - **MCP**: `ask mcp init` registers the client entry under `ask`; a pre-existing
25
- `sourcecode` entry is recognized and migrated (and both are removed on
26
- `mcp remove`).
27
- - **Docs**: README, user guide, manual, tiers, demo and onboarding now say
28
- **ASK Engine** and use `ask …` in every example. Package/install/config and
29
- compatibility references are preserved and the compatibility strategy is
30
- documented in `docs/PRODUCT_IDENTITY.md` (normative).
31
-
32
- ### Compatibility
33
-
34
- - **PyPI/Homebrew distribution stays `sourcecode` this release**; installing it
35
- provides both the `ask` and `sourcecode` commands. Renaming the distribution to
36
- `ask-engine` is a separate, explicitly-breaking future change.
37
- - Python package/import name (`sourcecode`), MCP protocol identity, cache format,
38
- and all serialized/JSON outputs are unchanged.
39
-
40
- ### Also in this line (identity + precision, pre-2.0 increments)
41
-
42
- - **Impact/`review-pr`**: a changed repository/service now surfaces **every**
43
- affected entry point (controller) instead of collapsing an N-controller blast
44
- radius to one — bounded by `max_impacts`, no new semantic fact, hash-neutral.
45
- - **Product identity consolidation**: audited every `sourcecode` occurrence and
46
- established `docs/PRODUCT_IDENTITY.md` as the normative product↔CLI mapping.
3
+ ## [2.0.1] — 2026-07-10
4
+
5
+ ### Added
6
+
7
+ - **`migrate-check --compact` — bounded decision summary.** A new opt-in view of the
8
+ migration report that keeps every decision field (readiness scores, headline blocker,
9
+ blocking count, estimated effort, executive summary, Hibernate classification, aggregate
10
+ counts) and caps each large collection to its top items with a `+N more` count. On real
11
+ monoliths the report shrinks ~97% (BroadleafCommerce 1.2 MB 32 KB, OpenMRS 908 KB →
12
+ 23 KB) — an agent or reviewer gets the verdict without the leaf-level firehose. The full
13
+ report remains the default output.
14
+
15
+ ### Fixed
16
+
17
+ - **`onboard` project summary no longer leaks raw README markup.** READMEs that open with
18
+ a logo block (`<img>` / `<p>` HTML) or use inline markdown links (`[label](url)`) had
19
+ produced summaries like `API: <img src="…"/>`. The summary is now rendered to clean prose
20
+ HTML/badge blocks are skipped and inline links are unwrapped to their label.
21
+ - **More complete blast radius in `impact` and `review-pr`.** Change-impact analysis now
22
+ surfaces every affected entry point for a changed repository/service, reducing missed
23
+ callers on interface- and DI-wired code.
24
+
25
+ ### Notes
26
+
27
+ - No breaking changes. Default command outputs are unchanged except where explicitly noted.
47
28
 
48
29
  ## [1.73.0] — 2026-07-01
49
30
 
@@ -30,8 +30,8 @@ This installs `sourcecode` in editable mode with all development dependencies (`
30
30
  ### Run the CLI locally
31
31
 
32
32
  ```bash
33
- ask . --agent
34
- ask . prepare-context explain
33
+ sourcecode . --agent
34
+ sourcecode . prepare-context explain
35
35
  ```
36
36
 
37
37
  ### Run tests
@@ -150,7 +150,7 @@ Keep commits atomic. One logical change per commit.
150
150
  ## Reporting bugs
151
151
 
152
152
  Open an issue with:
153
- - `ask --version` output
153
+ - `sourcecode --version` output
154
154
  - Command you ran
155
155
  - Expected behavior
156
156
  - Actual behavior / error output
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 2.0.0
3
+ Version: 2.0.1
4
4
  Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
5
5
  License-File: LICENSE
6
6
  Keywords: agents,ai,codebase,context,developer-tools,llm
@@ -40,14 +40,12 @@ Description-Content-Type: text/markdown
40
40
 
41
41
  **Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
42
42
 
43
- ![Version](https://img.shields.io/badge/version-2.0.0-blue)
43
+ ![Version](https://img.shields.io/badge/version-2.0.1-blue)
44
44
  ![Python](https://img.shields.io/badge/python-3.9%2B-green)
45
45
 
46
- > **ASK Engine** is the product. The CLI command is **`ask`**. The legacy
47
- > **`sourcecode`** command still works as a deprecated compatibility alias (it prints
48
- > a one-line notice and forwards to `ask`) and remains the Python/PyPI package name
49
- > for now. The authoritative version is whatever `ask version` reports. See
50
- > [docs/PRODUCT_IDENTITY.md](docs/PRODUCT_IDENTITY.md).
46
+ > **ASK Engine** is the product. The CLI you install and run is **`sourcecode`** (the
47
+ > executable and Python package). The authoritative version is whatever
48
+ > `sourcecode version` reports.
51
49
 
52
50
  ---
53
51
 
@@ -83,19 +81,19 @@ Cache keyed on content hashes — invalidated only when source changes. On repea
83
81
 
84
82
  ## What changes at 0.3s vs 2.7s
85
83
 
86
- At 2.7s per call, you use ASK Engine to occasionally inspect a repo.
84
+ At 2.7s per call, you use sourcecode to occasionally inspect a repo.
87
85
 
88
- At 0.3s per call, you use ASK Engine as **constant infrastructure** inside agent loops:
86
+ At 0.3s per call, you use sourcecode as **constant infrastructure** inside agent loops:
89
87
 
90
88
  ```
91
89
  agent loop iteration:
92
- 1. ask . --compact # 0.3s — instant structural context
93
- 2. ask impact PaymentService . --depth 1 # 0.4s — blast radius check
90
+ 1. sourcecode . --compact # 0.3s — instant structural context
91
+ 2. sourcecode impact PaymentService . --depth 1 # 0.4s — blast radius check
94
92
  3. agent makes targeted change
95
93
  4. repeat
96
94
  ```
97
95
 
98
- Sub-second context retrieval changes the cost model for agent workflows. You can call ASK Engine before every edit, before every PR review, before every test run — without batching or caching calls manually.
96
+ Sub-second context retrieval changes the cost model for agent workflows. You can call sourcecode before every edit, before every PR review, before every test run — without batching or caching calls manually.
99
97
 
100
98
  ---
101
99
 
@@ -116,20 +114,11 @@ pip install sourcecode
116
114
  pipx install sourcecode
117
115
  ```
118
116
 
119
- > **Package vs. command.** The install package is still named `sourcecode` this
120
- > release (renaming the PyPI/Homebrew distribution is a separate, breaking change).
121
- > Installing it gives you the canonical **`ask`** command plus the deprecated
122
- > **`sourcecode`** alias. A future release will publish `ask-engine` and drop the
123
- > alias.
124
-
125
117
  ### Verify
126
118
 
127
119
  ```bash
128
- ask version
129
- # ask 2.0.0
130
-
131
- # the deprecated alias still works (prints a one-line notice to stderr):
132
120
  sourcecode version
121
+ # sourcecode 2.0.1
133
122
  ```
134
123
 
135
124
  ---
@@ -138,45 +127,45 @@ sourcecode version
138
127
 
139
128
  ```bash
140
129
  # High-signal summary — warm cache: ~0.3s, cold: 2–10s depending on repo size
141
- ask --compact
130
+ sourcecode --compact
142
131
 
143
132
  # Add git hotspots and uncommitted file count
144
- ask --compact --git-context
133
+ sourcecode --compact --git-context
145
134
 
146
135
  # Structured output for AI agents — bounded, noise-free, ready to inject
147
- ask --agent
136
+ sourcecode --agent
148
137
 
149
138
  # Blast radius: what breaks if this class changes?
150
- ask impact OrderService /path/to/repo
139
+ sourcecode impact OrderService /path/to/repo
151
140
 
152
141
  # Spring Boot 2→3 migration readiness: javax→jakarta blockers, removed APIs
153
- ask migrate-check /path/to/repo
142
+ sourcecode migrate-check /path/to/repo
154
143
 
155
144
  # Spring semantic audit: TX anomalies + security surface (free)
156
- ask spring-audit /path/to/repo
145
+ sourcecode spring-audit /path/to/repo
157
146
 
158
147
  # Impact chain: systemic blast radius with TX/SEC enrichment (free)
159
- ask impact-chain OrderService /path/to/repo
148
+ sourcecode impact-chain OrderService /path/to/repo
160
149
 
161
150
  # Event topology: publisher → event → consumer graph (free)
162
- ask impact-chain OrderPlacedEvent /path/to/repo --type events
151
+ sourcecode impact-chain OrderPlacedEvent /path/to/repo --type events
163
152
 
164
153
  # REST endpoint surface
165
- ask endpoints /path/to/repo
154
+ sourcecode endpoints /path/to/repo
166
155
 
167
156
  # Request-body validation per endpoint: constraints + custom validators (free)
168
157
  # Recovers constraints from the OpenAPI spec, or directly from Java DTO
169
158
  # bean-validation annotations when no spec is present.
170
- ask validation /path/to/repo
159
+ sourcecode validation /path/to/repo
171
160
 
172
161
  # Onboard to an unfamiliar codebase
173
- ask onboard /path/to/repo
162
+ sourcecode onboard /path/to/repo
174
163
 
175
164
  # PR review: risk, test gaps, changed modules
176
- ask review-pr /path/to/repo --since main
165
+ sourcecode review-pr /path/to/repo --since main
177
166
 
178
167
  # Bug triage: risk-ranked files by symptom
179
- ask fix-bug /path/to/repo --symptom "NullPointerException in checkout"
168
+ sourcecode fix-bug /path/to/repo --symptom "NullPointerException in checkout"
180
169
  ```
181
170
 
182
171
  ---
@@ -194,21 +183,21 @@ ASK Engine maintains a persistent cache at `.sourcecode-cache/` inside each repo
194
183
 
195
184
  ```bash
196
185
  # Inspect cache state
197
- ask cache status
186
+ sourcecode cache status
198
187
 
199
188
  # Warm the cache ahead of an agent session
200
- ask cache warm
189
+ sourcecode cache warm
201
190
 
202
191
  # Clear cache
203
- ask cache clear
192
+ sourcecode cache clear
204
193
 
205
194
  # Check RIS freshness relative to current git HEAD
206
- ask cache freshness
195
+ sourcecode cache freshness
207
196
  ```
208
197
 
209
198
  **`--no-cache`** bypasses both layers and forces a fresh scan. Use in CI or when you need to verify a fresh result.
210
199
 
211
- **Visibility:** Cache hits are silent. Use `ask cache status` to see cache size, hit keys, and last-warmed timestamp.
200
+ **Visibility:** Cache hits are silent. Use `sourcecode cache status` to see cache size, hit keys, and last-warmed timestamp.
212
201
 
213
202
  ---
214
203
 
@@ -218,66 +207,66 @@ ask cache freshness
218
207
 
219
208
  ```bash
220
209
  # Inject as first message to agent (bounded, deterministic)
221
- ask /repo --compact # ~2,500–4,000 tokens
222
- ask /repo --agent # ~4,500–5,500 tokens — more detail
223
- ask onboard /repo # task-structured: entry points, key files, gaps
210
+ sourcecode /repo --compact # ~2,500–4,000 tokens
211
+ sourcecode /repo --agent # ~4,500–5,500 tokens — more detail
212
+ sourcecode onboard /repo # task-structured: entry points, key files, gaps
224
213
  ```
225
214
 
226
215
  ### Before every change — blast radius + TX/SEC check
227
216
 
228
217
  ```bash
229
218
  # Always target the INTERFACE in Spring projects, not the implementation:
230
- ask impact OrderService /repo # ✓ 30 callers, 11 endpoints
231
- ask impact OrderServiceImpl /repo # ✗ 0 callers (Spring DI blindness)
219
+ sourcecode impact OrderService /repo # ✓ 30 callers, 11 endpoints
220
+ sourcecode impact OrderServiceImpl /repo # ✗ 0 callers (Spring DI blindness)
232
221
 
233
222
  # Impact chain: blast radius enriched with TX boundary and security surfaces
234
- ask impact-chain OrderService /repo
223
+ sourcecode impact-chain OrderService /repo
235
224
 
236
225
  # Event topology: who publishes/consumes this event, and in what TX phase?
237
- ask impact-chain OrderPlacedEvent /repo --type events
226
+ sourcecode impact-chain OrderPlacedEvent /repo --type events
238
227
 
239
228
  # Spring audit: catch TX anomalies before they hit production
240
- ask spring-audit /repo --scope tx
229
+ sourcecode spring-audit /repo --scope tx
241
230
  ```
242
231
 
243
232
  ### Continuous agent loop — delta context
244
233
 
245
234
  ```bash
246
235
  # Only changed files + their transitive importers — minimal token cost:
247
- ask prepare-context delta /repo --since HEAD~1
248
- ask . --changed-only --git-context
236
+ sourcecode prepare-context delta /repo --since HEAD~1
237
+ sourcecode . --changed-only --git-context
249
238
  ```
250
239
 
251
240
  ### PR review — structured risk signal
252
241
 
253
242
  ```bash
254
243
  # JSON for programmatic use:
255
- ask review-pr /repo --since main --output review.json
244
+ sourcecode review-pr /repo --since main --output review.json
256
245
  jq '.ci_decision' review.json # "analysis_success" | "git_ref_error"
257
246
 
258
247
  # Markdown for GitHub comment:
259
- ask review-pr /repo --since main --format github-comment
248
+ sourcecode review-pr /repo --since main --format github-comment
260
249
  ```
261
250
 
262
251
  ### Bug triage — symptom-driven
263
252
 
264
253
  ```bash
265
254
  # Specific symptoms produce the best signal:
266
- ask fix-bug /repo --symptom "OIDC token refresh fails after realm update"
267
- ask fix-bug /repo --symptom "NullPointerException in OrderService during checkout"
255
+ sourcecode fix-bug /repo --symptom "OIDC token refresh fails after realm update"
256
+ sourcecode fix-bug /repo --symptom "NullPointerException in OrderService during checkout"
268
257
 
269
258
  # Generic symptoms produce noisy output — be specific.
270
- ask fix-bug /repo --symptom "payment timeout" --output triage.json
259
+ sourcecode fix-bug /repo --symptom "payment timeout" --output triage.json
271
260
  ```
272
261
 
273
262
  ### In CI — cached, deterministic, fast
274
263
 
275
264
  ```bash
276
265
  # Content-hash cached — safe to run on every commit; cold only when code changes
277
- ask /repo --compact --output context.json
266
+ sourcecode /repo --compact --output context.json
278
267
 
279
268
  # PR gate
280
- ask review-pr /repo --since $BASE_REF --output review.json
269
+ sourcecode review-pr /repo --since $BASE_REF --output review.json
281
270
  DECISION=$(jq -r '.ci_decision' review.json)
282
271
  if [ "$DECISION" != "analysis_success" ]; then echo "Review failed: $DECISION"; fi
283
272
  ```
@@ -335,7 +324,7 @@ when the work gets bigger or automated.
335
324
  files only, by design. ASK Engine monetises enterprise Java monoliths.
336
325
 
337
326
  ```bash
338
- ask activate <key> # activate a license key
327
+ sourcecode activate <key> # activate a license key
339
328
  ```
340
329
 
341
330
  Full breakdown: [docs/PRODUCT_TIERS.md](docs/PRODUCT_TIERS.md).
@@ -356,9 +345,9 @@ Core flags. Feed directly to AI agents as first-message context.
356
345
  ### `impact` — blast-radius analysis [free ≤500 Java files · Pro above]
357
346
 
358
347
  ```bash
359
- ask impact ClassName /path/to/repo
360
- ask impact org.example.OrderService /path/to/repo # FQN also accepted
361
- ask impact OrderService . --depth 2 # limit BFS depth
348
+ sourcecode impact ClassName /path/to/repo
349
+ sourcecode impact org.example.OrderService /path/to/repo # FQN also accepted
350
+ sourcecode impact OrderService . --depth 2 # limit BFS depth
362
351
  ```
363
352
 
364
353
  | Field | Description |
@@ -383,9 +372,9 @@ ask impact OrderService . --depth 2 # limit BFS depth
383
372
  ### `endpoints` — REST API surface
384
373
 
385
374
  ```bash
386
- ask endpoints /path/to/repo
387
- ask endpoints /path/to/repo --output endpoints.json
388
- ask endpoints /path/to/repo --by-controller
375
+ sourcecode endpoints /path/to/repo
376
+ sourcecode endpoints /path/to/repo --output endpoints.json
377
+ sourcecode endpoints /path/to/repo --by-controller
389
378
  ```
390
379
 
391
380
  Extracts all Spring MVC (`@GetMapping`, `@PostMapping`, `@RequestMapping`, etc.) and JAX-RS (`@GET`, `@POST`, `@Path`) endpoint methods. Returns HTTP method, path, controller class, and handler method. Each endpoint also carries its `return_type`. `--by-controller` groups the surface per controller (`{by_controller, controller_count, total}`) for an API-surface view.
@@ -414,10 +403,10 @@ Matching endpoints then report `policy: "custom"` with `annotation`, `resourceNa
414
403
  ### `export` — architecture views for downstream tooling
415
404
 
416
405
  ```bash
417
- ask export /path/to/repo --by-directory # code map, path:line refs
418
- ask export /path/to/repo --module-graph # module→module dependencies
419
- ask export /path/to/repo --integrations # outbound HTTP/LDAP/JMS clients
420
- ask export /path/to/repo --c4 # unified architecture + manifest
406
+ sourcecode export /path/to/repo --by-directory # code map, path:line refs
407
+ sourcecode export /path/to/repo --module-graph # module→module dependencies
408
+ sourcecode export /path/to/repo --integrations # outbound HTTP/LDAP/JMS clients
409
+ sourcecode export /path/to/repo --c4 # unified architecture + manifest
421
410
  ```
422
411
 
423
412
  Emits **structured, tool-agnostic** codebase views as plain JSON/YAML — the kind of input an architecture-doc generator, diagram renderer, or code-search agent can consume directly instead of walking the tree file by file. Section labels map to the open [C4 model](https://c4model.com) (an open architecture notation, not a product); the schema is vendor-neutral.
@@ -434,15 +423,15 @@ The section flags compose (pass several for one multi-section document); `--c4`
434
423
  ### `spring-audit` — Spring semantic audit [free]
435
424
 
436
425
  ```bash
437
- ask spring-audit /path/to/repo
438
- ask spring-audit /path/to/repo --scope tx # TX anomalies only
439
- ask spring-audit /path/to/repo --scope security # security surface only
440
- ask spring-audit /path/to/repo --min-severity high
426
+ sourcecode spring-audit /path/to/repo
427
+ sourcecode spring-audit /path/to/repo --scope tx # TX anomalies only
428
+ sourcecode spring-audit /path/to/repo --scope security # security surface only
429
+ sourcecode spring-audit /path/to/repo --min-severity high
441
430
 
442
431
  # CI/CD gate: exit 1 on any finding
443
- ask spring-audit . --ci
444
- ask spring-audit . --ci --min-severity high # exit 1 only on high/critical
445
- ask spring-audit . --ci --format github-comment # Markdown output + exit 1
432
+ sourcecode spring-audit . --ci
433
+ sourcecode spring-audit . --ci --min-severity high # exit 1 only on high/critical
434
+ sourcecode spring-audit . --ci --format github-comment # Markdown output + exit 1
446
435
  ```
447
436
 
448
437
  Detects structural Spring anomalies that survive code review and tests, but cause production failures:
@@ -465,9 +454,9 @@ Endpoints guarded by a project-specific authorization annotation are treated as
465
454
  ### `impact-chain` — systemic blast radius with TX/SEC enrichment [free]
466
455
 
467
456
  ```bash
468
- ask impact-chain OrderService /path/to/repo
469
- ask impact-chain com.example.OrderService#placeOrder /path/to/repo
470
- ask impact-chain PaymentService . --depth 6
457
+ sourcecode impact-chain OrderService /path/to/repo
458
+ sourcecode impact-chain com.example.OrderService#placeOrder /path/to/repo
459
+ sourcecode impact-chain PaymentService . --depth 6
471
460
  ```
472
461
 
473
462
  Unlike `impact` (which traces the caller graph), `impact-chain` builds on the SpringSemanticModel to enrich every step of the blast cone with transaction and security context:
@@ -494,7 +483,7 @@ Unlike `impact` (which traces the caller graph), `impact-chain` builds on the Sp
494
483
  **Event topology** — query the publisher/consumer graph for a Spring event class:
495
484
 
496
485
  ```bash
497
- ask impact-chain OrderPlacedEvent /path/to/repo --type events
486
+ sourcecode impact-chain OrderPlacedEvent /path/to/repo --type events
498
487
  ```
499
488
 
500
489
  | Field | Description |
@@ -514,8 +503,8 @@ ask impact-chain OrderPlacedEvent /path/to/repo --type events
514
503
  ### `cold-start` — RIS bootstrap context
515
504
 
516
505
  ```bash
517
- ask cold-start /path/to/repo
518
- ask cold-start /path/to/repo --compact # ~10K token subset
506
+ sourcecode cold-start /path/to/repo
507
+ sourcecode cold-start /path/to/repo --compact # ~10K token subset
519
508
  ```
520
509
 
521
510
  Returns the Repository Intelligence Snapshot (RIS) instantly — zero re-analysis. The RIS is built by a prior warm cache pass and includes stacks, entry points, endpoint surface, and Spring semantic signals. Status field: `cold_start_ready` | `cold_start_stale` | `no_ris`.
@@ -525,12 +514,12 @@ Use `--compact` to get a ~10K token subset safe for direct LLM injection. Full s
525
514
  ### `repo-ir` — symbol-level IR
526
515
 
527
516
  ```bash
528
- ask repo-ir /path/to/repo --summary-only # ~20K tokens
529
- ask repo-ir /path/to/repo --since HEAD~1 # symbol-level diff
530
- ask repo-ir /path/to/repo --files src/.../OrderService.java
531
- ask repo-ir /path/to/repo --max-nodes 200 --max-edges 500 # limit graph size
532
- ask repo-ir /path/to/repo --output ir.json.gz --gzip # compressed output (~70-80% smaller)
533
- ask repo-ir /path/to/repo --include-tests # include test files
517
+ sourcecode repo-ir /path/to/repo --summary-only # ~20K tokens
518
+ sourcecode repo-ir /path/to/repo --since HEAD~1 # symbol-level diff
519
+ sourcecode repo-ir /path/to/repo --files src/.../OrderService.java
520
+ sourcecode repo-ir /path/to/repo --max-nodes 200 --max-edges 500 # limit graph size
521
+ sourcecode repo-ir /path/to/repo --output ir.json.gz --gzip # compressed output (~70-80% smaller)
522
+ sourcecode repo-ir /path/to/repo --include-tests # include test files
534
523
  ```
535
524
 
536
525
  Builds a deterministic symbol graph: classes, methods, import/injection edges, Spring roles, subsystems.
@@ -551,9 +540,9 @@ Builds a deterministic symbol graph: classes, methods, import/injection edges, S
551
540
  ### `explain` — architectural summary for a class
552
541
 
553
542
  ```bash
554
- ask explain UserService
555
- ask explain OrderController /path/to/repo
556
- ask explain UserService --format json
543
+ sourcecode explain UserService
544
+ sourcecode explain OrderController /path/to/repo
545
+ sourcecode explain UserService --format json
557
546
  ```
558
547
 
559
548
  Human-readable architectural summary derived entirely from static analysis: Spring stereotype, public methods, incoming callers, outgoing dependencies, events published/consumed, `@Transactional` boundaries, security constraints, and related REST endpoints. JAVA/SPRING ONLY.
@@ -561,8 +550,8 @@ Human-readable architectural summary derived entirely from static analysis: Spri
561
550
  ### `pr-impact` — PR blast-radius report
562
551
 
563
552
  ```bash
564
- ask pr-impact --files changed_files.txt
565
- ask pr-impact /path/to/repo --files diff.txt --format json
553
+ sourcecode pr-impact --files changed_files.txt
554
+ sourcecode pr-impact /path/to/repo --files diff.txt --format json
566
555
  ```
567
556
 
568
557
  Takes a file listing changed Java files (one path per line) and produces a consolidated report: modified classes, affected REST endpoints reachable through the call chain, direct callers of each changed class, event publishers/consumers triggered, `@Transactional` methods in changed classes, and a consolidated risk level (`CRITICAL` / `HIGH` / `MEDIUM` / `LOW`). JAVA/SPRING ONLY.
@@ -570,13 +559,13 @@ Takes a file listing changed Java files (one path per line) and produces a conso
570
559
  ```bash
571
560
  # Typical CI usage: pipe git diff to a file, then run
572
561
  git diff --name-only main | grep '\.java$' > changed.txt
573
- ask pr-impact . --files changed.txt --format json
562
+ sourcecode pr-impact . --files changed.txt --format json
574
563
  ```
575
564
 
576
565
  ### `onboard` — codebase orientation
577
566
 
578
567
  ```bash
579
- ask onboard /path/to/repo
568
+ sourcecode onboard /path/to/repo
580
569
  ```
581
570
 
582
571
  Entry points, architecture summary, key files, confidence level, and gaps. Designed to be injected as agent context at the start of a session.
@@ -584,8 +573,8 @@ Entry points, architecture summary, key files, confidence level, and gaps. Desig
584
573
  ### `review-pr` — PR review context [free ≤500 Java files · Pro above]
585
574
 
586
575
  ```bash
587
- ask review-pr /path/to/repo --since main
588
- ask review-pr /path/to/repo --since HEAD~3
576
+ sourcecode review-pr /path/to/repo --since main
577
+ sourcecode review-pr /path/to/repo --since HEAD~3
589
578
  ```
590
579
 
591
580
  Changed files, risk ranking, test coverage gaps, affected modules, and blast radius of changed classes. Returns a `ci_decision` field for CI/CD integration.
@@ -593,7 +582,7 @@ Changed files, risk ranking, test coverage gaps, affected modules, and blast rad
593
582
  ### `fix-bug` — Bug triage context [free ≤500 Java files · Pro above]
594
583
 
595
584
  ```bash
596
- ask fix-bug /path/to/repo --symptom "NullPointerException in checkout"
585
+ sourcecode fix-bug /path/to/repo --symptom "NullPointerException in checkout"
597
586
  ```
598
587
 
599
588
  Risk-ranked file list correlated to the symptom: keyword extraction, path matching, content matching, git commit correlation.
@@ -601,7 +590,7 @@ Risk-ranked file list correlated to the symptom: keyword extraction, path matchi
601
590
  ### `modernize` — Modernization planning [free ≤500 Java files · Pro above]
602
591
 
603
592
  ```bash
604
- ask modernize /path/to/repo
593
+ sourcecode modernize /path/to/repo
605
594
  ```
606
595
 
607
596
  High-coupling nodes (high fan-in = risky to change), dead zone candidates (isolated symbols), subsystem tangles.
@@ -609,12 +598,20 @@ High-coupling nodes (high fan-in = risky to change), dead zone candidates (isola
609
598
  ### `migrate-check` — Spring Boot 2→3 migration readiness
610
599
 
611
600
  ```bash
612
- ask migrate-check /path/to/repo
613
- ask migrate-check . --min-severity high
614
- ask migrate-check . --format text
615
- ask migrate-check . --output migration.json
601
+ sourcecode migrate-check /path/to/repo
602
+ sourcecode migrate-check . --compact # bounded decision summary (score, blocker, effort, top items)
603
+ sourcecode migrate-check . --min-severity high
604
+ sourcecode migrate-check . --format text
605
+ sourcecode migrate-check . --output migration.json
616
606
  ```
617
607
 
608
+ `--compact` returns the decision-grade envelope — readiness scores, headline blocker,
609
+ blocking count, estimated effort, executive summary, Hibernate classification and
610
+ aggregate counts — with each large collection capped to its top items (`+N more`). On
611
+ large monoliths this is ~97% smaller than the full report (e.g. 1.2 MB → 32 KB), so an
612
+ agent or reviewer gets the verdict without the full leaf-level firehose. The complete
613
+ report remains the default.
614
+
618
615
  Detects migration blockers across Java source files, Spring XML config files, and Maven/Gradle build files. 27 rules organized by target:
619
616
 
620
617
  **Jakarta namespace (MIG-001..009) — javax→jakarta**
@@ -789,19 +786,19 @@ evidence. `migrate-check` enforces:
789
786
 
790
787
  ```bash
791
788
  # inspect only the Hibernate rewrite targets
792
- ask migrate-check . --format json | jq '.hibernate.rewrite_targets[]'
789
+ sourcecode migrate-check . --format json | jq '.hibernate.rewrite_targets[]'
793
790
 
794
791
  # product blockers only (excludes test/fixtures + hygiene)
795
- ask migrate-check . --format json | jq '.blocking_count, .non_blocking, .hygiene_findings'
792
+ sourcecode migrate-check . --format json | jq '.blocking_count, .non_blocking, .hygiene_findings'
796
793
  ```
797
794
 
798
795
  ### `rename-class` — Java class rename
799
796
 
800
797
  ```bash
801
- ask rename-class . --from ServiceA --to ServiceB
802
- ask rename-class /path/to/repo --from OrderManager --to OrderService
803
- ask rename-class . --from OldName --to NewName --dry-run
804
- ask rename-class . --from OldName --to NewName --no-tests # src/main only
798
+ sourcecode rename-class . --from ServiceA --to ServiceB
799
+ sourcecode rename-class /path/to/repo --from OrderManager --to OrderService
800
+ sourcecode rename-class . --from OldName --to NewName --dry-run
801
+ sourcecode rename-class . --from OldName --to NewName --no-tests # src/main only
805
802
  ```
806
803
 
807
804
  Renames a Java class safely throughout the repository: declaration, constructor, all import statements, type references (fields, params, return types), `extends`/`implements`, generics, casts, and Spring `@Qualifier` names. Renames the physical `.java` file. Emits a structured change audit trail (`file`, `before_lines`, `after_lines`, `intent`, `diff`).
@@ -811,10 +808,10 @@ Use `--dry-run` to preview changes without writing to disk.
811
808
  ### `chunk-file` — split large Java files for agent consumption
812
809
 
813
810
  ```bash
814
- ask chunk-file BigService.java
815
- ask chunk-file BigService.java --max-lines 300
816
- ask chunk-file BigService.java --chunk 5 # read chunk 5 only
817
- ask chunk-file BigService.java --metadata-only # boundaries only, no content
811
+ sourcecode chunk-file BigService.java
812
+ sourcecode chunk-file BigService.java --max-lines 300
813
+ sourcecode chunk-file BigService.java --chunk 5 # read chunk 5 only
814
+ sourcecode chunk-file BigService.java --metadata-only # boundaries only, no content
818
815
  ```
819
816
 
820
817
  Splits a large Java file at method/class boundaries so AI agents can read files with 10K–25K+ lines in context-sized pieces. Each chunk includes `chunk_id`, `start_line`, `end_line`, `chunk_type`, symbol name, a `context_header` (package + class + imports summary), and `content`. A `size_warning` flag marks methods that exceed `--max-lines` and cannot be split further.
@@ -824,7 +821,7 @@ Splits a large Java file at method/class boundaries so AI agents can read files
824
821
  Low-level access to all tasks with full options:
825
822
 
826
823
  ```bash
827
- ask prepare-context TASK [PATH] [OPTIONS]
824
+ sourcecode prepare-context TASK [PATH] [OPTIONS]
828
825
  ```
829
826
 
830
827
  | Task | What it surfaces |
@@ -883,9 +880,9 @@ All outputs include:
883
880
  Anonymous, **on by default (opt-out)**. Collects: version, OS, commands, flags, duration, repo size range, errors. No source code, paths, secrets, or output content. A one-time notice is shown on first interactive run.
884
881
 
885
882
  ```bash
886
- ask telemetry status
887
- ask telemetry enable
888
- ask telemetry disable
883
+ sourcecode telemetry status
884
+ sourcecode telemetry enable
885
+ sourcecode telemetry disable
889
886
  ```
890
887
 
891
888
  Disable any time: `export SOURCECODE_TELEMETRY=0` (or `DO_NOT_TRACK=1`)
@@ -895,7 +892,7 @@ Disable any time: `export SOURCECODE_TELEMETRY=0` (or `DO_NOT_TRACK=1`)
895
892
  ## Configuration
896
893
 
897
894
  ```bash
898
- ask config # show version, config file path, telemetry status
895
+ sourcecode config # show version, config file path, telemetry status
899
896
  ```
900
897
 
901
898
  ### `sourcecode.config.json` (repo root)