sourcecode 1.72.0__tar.gz → 2.0.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.
Files changed (137) hide show
  1. {sourcecode-1.72.0 → sourcecode-2.0.0}/.gitignore +4 -0
  2. {sourcecode-1.72.0 → sourcecode-2.0.0}/CHANGELOG.md +97 -0
  3. {sourcecode-1.72.0 → sourcecode-2.0.0}/CONTRIBUTING.md +3 -3
  4. {sourcecode-1.72.0 → sourcecode-2.0.0}/PKG-INFO +125 -110
  5. {sourcecode-1.72.0 → sourcecode-2.0.0}/README.md +124 -109
  6. {sourcecode-1.72.0 → sourcecode-2.0.0}/pyproject.toml +3 -2
  7. sourcecode-2.0.0/scripts/compare_integration_engines.py +62 -0
  8. sourcecode-2.0.0/scripts/customer_smoke_test.sh +87 -0
  9. sourcecode-2.0.0/src/sourcecode/__init__.py +7 -0
  10. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/architecture_analyzer.py +63 -55
  11. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/ast_extractor.py +130 -135
  12. sourcecode-2.0.0/src/sourcecode/call_surface.py +112 -0
  13. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/canonical_ir.py +62 -1
  14. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/cli.py +254 -198
  15. sourcecode-2.0.0/src/sourcecode/context_graph.py +1022 -0
  16. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/contract_pipeline.py +16 -1
  17. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/java.py +99 -8
  18. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/parsers.py +23 -0
  19. sourcecode-2.0.0/src/sourcecode/dynamic_argument_surface.py +54 -0
  20. sourcecode-2.0.0/src/sourcecode/endpoint_literals.py +71 -0
  21. sourcecode-2.0.0/src/sourcecode/evidence_provider.py +90 -0
  22. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/explain.py +28 -13
  23. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/graph_analyzer.py +82 -8
  24. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/license.py +42 -13
  25. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/applier.py +14 -6
  26. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/registry.py +22 -22
  27. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/runner.py +2 -2
  28. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/server.py +24 -24
  29. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp_nudge.py +1 -1
  30. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/migrate_check.py +4 -12
  31. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/pr_comment_renderer.py +7 -6
  32. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/prepare_context.py +10 -13
  33. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/repository_ir.py +917 -141
  34. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/ris.py +1 -1
  35. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/semantic_analyzer.py +146 -9
  36. sourcecode-2.0.0/src/sourcecode/semantic_impact_engine.py +403 -0
  37. sourcecode-2.0.0/src/sourcecode/semantic_integration_engine.py +299 -0
  38. sourcecode-2.0.0/src/sourcecode/semantic_services.py +229 -0
  39. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/serializer.py +30 -33
  40. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/consent.py +1 -1
  41. sourcecode-2.0.0/src/sourcecode/type_usage_surface.py +101 -0
  42. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/validation_surface.py +173 -205
  43. {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/README.md +1 -1
  44. sourcecode-2.0.0/supabase/sql/licensing_schema.sql +108 -0
  45. sourcecode-1.72.0/src/sourcecode/__init__.py +0 -3
  46. sourcecode-1.72.0/src/sourcecode/flow_analyzer.py +0 -671
  47. sourcecode-1.72.0/src/sourcecode/integration_detector.py +0 -392
  48. {sourcecode-1.72.0 → sourcecode-2.0.0}/.github/workflows/build-windows.yml +0 -0
  49. {sourcecode-1.72.0 → sourcecode-2.0.0}/.ruff.toml +0 -0
  50. {sourcecode-1.72.0 → sourcecode-2.0.0}/LICENSE +0 -0
  51. {sourcecode-1.72.0 → sourcecode-2.0.0}/SECURITY.md +0 -0
  52. {sourcecode-1.72.0 → sourcecode-2.0.0}/raw +0 -0
  53. {sourcecode-1.72.0 → sourcecode-2.0.0}/scripts/generate_jdk_exports.py +0 -0
  54. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/adaptive_scanner.py +0 -0
  55. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/architecture_summary.py +0 -0
  56. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/cache.py +0 -0
  57. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/cir_graphs.py +0 -0
  58. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/classifier.py +0 -0
  59. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/code_notes_analyzer.py +0 -0
  60. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/confidence_analyzer.py +0 -0
  61. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/context_scorer.py +0 -0
  62. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/context_summarizer.py +0 -0
  63. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/contract_model.py +0 -0
  64. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/coverage_parser.py +0 -0
  65. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/dependency_analyzer.py +0 -0
  66. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/__init__.py +0 -0
  67. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/base.py +0 -0
  68. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/csproj_parser.py +0 -0
  69. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/dart.py +0 -0
  70. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/dotnet.py +0 -0
  71. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/elixir.py +0 -0
  72. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/go.py +0 -0
  73. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/heuristic.py +0 -0
  74. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/hybrid.py +0 -0
  75. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/jvm_ext.py +0 -0
  76. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/nodejs.py +0 -0
  77. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/php.py +0 -0
  78. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/project.py +0 -0
  79. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/python.py +0 -0
  80. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/ruby.py +0 -0
  81. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/rust.py +0 -0
  82. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/systems.py +0 -0
  83. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/terraform.py +0 -0
  84. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/detectors/tooling.py +0 -0
  85. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/doc_analyzer.py +0 -0
  86. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/entrypoint_classifier.py +0 -0
  87. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/env_analyzer.py +0 -0
  88. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/error_schema.py +0 -0
  89. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/file_chunker.py +0 -0
  90. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/file_classifier.py +0 -0
  91. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/format_contract.py +0 -0
  92. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/fqn_utils.py +0 -0
  93. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/git_analyzer.py +0 -0
  94. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/hibernate_strat.py +0 -0
  95. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/jdk_exports.py +0 -0
  96. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/__init__.py +0 -0
  97. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  98. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  99. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  100. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  101. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/mcp/orchestrator.py +0 -0
  102. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/metrics_analyzer.py +0 -0
  103. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/openapi_surface.py +0 -0
  104. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/output_budget.py +0 -0
  105. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/path_filters.py +0 -0
  106. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/pr_impact.py +0 -0
  107. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/progress.py +0 -0
  108. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/ranking_engine.py +0 -0
  109. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/redactor.py +0 -0
  110. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/relevance_scorer.py +0 -0
  111. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/rename_refactor.py +0 -0
  112. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/repo_classifier.py +0 -0
  113. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/runtime_classifier.py +0 -0
  114. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/scanner.py +0 -0
  115. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/schema.py +0 -0
  116. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/security_config.py +0 -0
  117. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_event_topology.py +0 -0
  118. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_findings.py +0 -0
  119. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_impact.py +0 -0
  120. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_model.py +0 -0
  121. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_security_audit.py +0 -0
  122. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_semantic.py +0 -0
  123. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/spring_tx_analyzer.py +0 -0
  124. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/summarizer.py +0 -0
  125. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/__init__.py +0 -0
  126. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/config.py +0 -0
  127. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/events.py +0 -0
  128. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/filters.py +0 -0
  129. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/telemetry/transport.py +0 -0
  130. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/tree_utils.py +0 -0
  131. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/version_check.py +0 -0
  132. {sourcecode-1.72.0 → sourcecode-2.0.0}/src/sourcecode/workspace.py +0 -0
  133. {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/get-license/index.ts +0 -0
  134. {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/lemonsqueezy-webhook/index.ts +0 -0
  135. {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/functions/telemetry/index.ts +0 -0
  136. {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/sql/license_event_ordering.sql +0 -0
  137. {sourcecode-1.72.0 → sourcecode-2.0.0}/supabase/sql/telemetry_events.sql +0 -0
@@ -35,6 +35,10 @@ Thumbs.db
35
35
 
36
36
  .planning
37
37
 
38
+ # ContextGraph baseline — full canonical outputs (multi-MB, from external repos).
39
+ # The light oracle (index.json) and convergence.json ARE committed.
40
+ tests/contextgraph_baseline/baseline/artifacts/
41
+
38
42
  # Supabase local temp
39
43
  supabase/.temp/
40
44
  # Internal agent playbook (not distributed)
@@ -1,5 +1,102 @@
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.
47
+
48
+ ## [1.73.0] — 2026-07-01
49
+
50
+ ### Fixed — audit reliability on a large non-Boot Spring monolith (Alfresco Community Repo field test)
51
+
52
+ A real architecture audit of **alfresco-community-repo** (`fe6dd26c3f`; 6,549
53
+ classes, 24 Maven modules, Spring 7 **without Spring Boot**, iBatis persistence,
54
+ Camel/ActiveMQ messaging, Acegi-derived security, WebScript REST surface)
55
+ surfaced seven defects — each capable of leading an automated consultant to a
56
+ false conclusion. All fixed at root cause with regression coverage and
57
+ re-verified on the live repo.
58
+
59
+ - **`--compact` did not resolve `language_version` from a Maven property (BUG #1).**
60
+ Alfresco declares `<maven.compiler.source>${java.version}</...>` chained to
61
+ `<java.version>21</java.version>`; the Java-stack detector picked the first key
62
+ and emitted the literal `${java.version}` while `migrate-check` resolved it. A
63
+ shared `substitute_maven_properties` resolver (in `detectors/parsers.py`) now
64
+ backs BOTH paths — `--compact` reports `21`.
65
+ - **`explain --output` wrote Markdown to a `.json` file with no warning (BUG #2).**
66
+ Broke any consumer assuming JSON parity across subcommands. `explain` now infers
67
+ JSON from a `.json` output extension (an explicit `--format` always wins), and
68
+ `--help` documents that its default output is human-readable text/Markdown.
69
+ - **`entry_points.bootstrap` false positives on `*Application.java` by name (BUG #3).**
70
+ Alfresco's XSD/JAXB-generated `Application.java` model classes (no `main()`, no
71
+ bootstrap annotation, in a WAR) were listed as application entry points. A file
72
+ now qualifies only with a real `main(String[])` or a bootstrap annotation
73
+ (`@SpringBootApplication` / WAR `SpringBootServletInitializer` / `@QuarkusMain`
74
+ / …); the serializer's name-based bootstrap fallback was removed.
75
+ - **"MyBatis" framework declared against the tool's own zero evidence (BUG #4).**
76
+ A `org.mybatis:mybatis` pom coordinate alone produced a "MyBatis" framework label
77
+ while the `mybatis` block reported `mapper_interfaces: 0, xml_files: 0` (Alfresco's
78
+ SQL layer is iBatis-style `*-SqlMap.xml`, surfaced separately). MyBatis is now
79
+ emitted only with real usage evidence — an `@Mapper` interface or a `*Mapper.xml`.
80
+ - **`export --integrations` missed ActiveMQ/Camel messaging (BUG #5).**
81
+ JMS detection recognized little beyond a direct `JmsTemplate`, reporting 1
82
+ integration on a repo with an ActiveMQ connection-factory config and Camel routes.
83
+ Added `ActiveMQSslConnectionFactory` / pooled / caching connection-factory tokens
84
+ and an Apache Camel route pass (literal `activemq:`/`jms:` endpoint URIs, plus
85
+ variable-URI `from()/to()` routes inside a `RouteBuilder` as honest low-confidence
86
+ `camel-route` messaging records). Alfresco JMS/messaging surface: 1 → 5.
87
+ - **`readiness_score` Hibernate false-positive — regression test (BUG #6).**
88
+ v1.63.0 once scored this Hibernate-free repo 42/100 with a phantom
89
+ `hibernate_rewrite` headline (~46 days). Already fixed by v1.72.0; added an
90
+ explicit regression test (`no Hibernate/JPA imports → hibernate.detected False,
91
+ headline_blocker never hibernate_rewrite`) so a future detector refactor cannot
92
+ reintroduce it.
93
+ - **`endpoints` / C4 `api_surface` returned 0 with no explanation (BUG #7).**
94
+ On an obvious API server (WebScripts: XML descriptor + handler class, not
95
+ `@RestController`), a bare `total: 0` reads as "no public API". `endpoints` now
96
+ emits a first-class `zero_result_reason` naming the routing patterns searched and
97
+ any non-Spring surface detected (Alfresco: 482 WebScript descriptors / 901 handler
98
+ classes), and the C4 export's `api_surface` carries the same explanation.
99
+
3
100
  ## [1.72.0] — 2026-07-01
4
101
 
5
102
  ### Fixed — correctness on a large real-world Spring Boot 3 monolith (Broadleaf Commerce CE field test)
@@ -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
- sourcecode . --agent
34
- sourcecode . prepare-context explain
33
+ ask . --agent
34
+ ask . 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
- - `sourcecode --version` output
153
+ - `ask --version` output
154
154
  - Command you ran
155
155
  - Expected behavior
156
156
  - Actual behavior / error output