agent-wiki-cli 1.3.0__tar.gz → 1.3.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 (204) hide show
  1. {agent_wiki_cli-1.3.0/src/agent_wiki_cli.egg-info → agent_wiki_cli-1.3.1}/PKG-INFO +31 -10
  2. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/README.md +30 -9
  3. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/pyproject.toml +1 -1
  4. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1/src/agent_wiki_cli.egg-info}/PKG-INFO +31 -10
  5. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/cli.py +32 -4
  6. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/init_cmd.py +41 -14
  7. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/status_cmd.py +2 -0
  8. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/upgrade_cmd.py +23 -3
  9. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/config.py +51 -1
  10. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/mcp_server.py +1 -0
  11. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/schema.py +35 -20
  12. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_cli.py +99 -0
  13. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_config.py +81 -1
  14. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extract.py +37 -0
  15. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_init.py +87 -1
  16. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_mcp.py +19 -0
  17. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_package_metadata.py +1 -1
  18. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_schema.py +8 -1
  19. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_source_snapshot.py +16 -0
  20. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_status.py +18 -0
  21. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_upgrade.py +88 -1
  22. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/LICENSE +0 -0
  23. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/MANIFEST.in +0 -0
  24. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/examples/plugins/m4-documentation-hooks/detectors.py +0 -0
  25. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/examples/plugins/m4-documentation-hooks/llm-wiki-plugin.json +0 -0
  26. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/examples/plugins/m4-documentation-hooks/styles.py +0 -0
  27. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/setup.cfg +0 -0
  28. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/SOURCES.txt +0 -0
  29. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/dependency_links.txt +0 -0
  30. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/entry_points.txt +0 -0
  31. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/requires.txt +0 -0
  32. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/agent_wiki_cli.egg-info/top_level.txt +0 -0
  33. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/__init__.py +0 -0
  34. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/api.py +0 -0
  35. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/__init__.py +0 -0
  36. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/bootstrap_cmd.py +0 -0
  37. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/bump_cmd.py +0 -0
  38. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/ci_check_cmd.py +0 -0
  39. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/context_cmd.py +0 -0
  40. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/extract_cmd.py +0 -0
  41. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/generate_prompt_cmd.py +0 -0
  42. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/hook_cmd.py +0 -0
  43. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/install_cmd.py +0 -0
  44. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/lint_cmd.py +0 -0
  45. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/mcp_cmd.py +0 -0
  46. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/metrics_cmd.py +0 -0
  47. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/migrate_cmd.py +0 -0
  48. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/obsidian_cmd.py +0 -0
  49. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/plugins_cmd.py +0 -0
  50. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/prepare_extractors_cmd.py +0 -0
  51. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/release_cmd.py +0 -0
  52. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/review_cmd.py +0 -0
  53. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/site_cmd.py +0 -0
  54. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/skills_cmd.py +0 -0
  55. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/sync_cmd.py +0 -0
  56. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/team_cmd.py +0 -0
  57. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/trigger_cmd.py +0 -0
  58. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/commands/uninstall_cmd.py +0 -0
  59. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/examples/plugins/m4-documentation-hooks/detectors.py +0 -0
  60. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/examples/plugins/m4-documentation-hooks/llm-wiki-plugin.json +0 -0
  61. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/examples/plugins/m4-documentation-hooks/styles.py +0 -0
  62. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/__init__.py +0 -0
  63. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/common.py +0 -0
  64. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/fastapi_contracts.py +0 -0
  65. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/go_extractor.py +0 -0
  66. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/go_scripts/go.mod +0 -0
  67. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/go_scripts/main.go +0 -0
  68. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_extractor.py +0 -0
  69. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Inventory.hs +0 -0
  70. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Json.hs +0 -0
  71. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Main.hs +0 -0
  72. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Parser.hs +0 -0
  73. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/haskell_scripts/Paths.hs +0 -0
  74. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/python_contracts.py +0 -0
  75. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/python_extractor.py +0 -0
  76. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_extractor.py +0 -0
  77. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.lock +0 -0
  78. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.toml +0 -0
  79. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/rust_scripts/src/main.rs +0 -0
  80. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/ts_extractor.py +0 -0
  81. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/ts_scripts/extract.js +0 -0
  82. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/extractors/ts_scripts/package.json +0 -0
  83. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/__init__.py +0 -0
  84. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/api_contracts.py +0 -0
  85. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/circuit_breaker.py +0 -0
  86. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/contracts.py +0 -0
  87. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/data_flow.py +0 -0
  88. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/dependencies.py +0 -0
  89. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/diagrams.py +0 -0
  90. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/documentation_queries.py +0 -0
  91. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/entrypoints.py +0 -0
  92. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/extractor_helpers.py +0 -0
  93. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/imports.py +0 -0
  94. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/infrastructure_inventory.py +0 -0
  95. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/inventory_cache.py +0 -0
  96. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/io.py +0 -0
  97. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/lockfile.py +0 -0
  98. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/metrics.py +0 -0
  99. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/module_maps.py +0 -0
  100. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/obsidian.py +0 -0
  101. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/packages.py +0 -0
  102. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/paths.py +0 -0
  103. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/plugin_samples.py +0 -0
  104. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/plugins.py +0 -0
  105. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/relationships.py +0 -0
  106. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/secure_file.py +0 -0
  107. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/site_export.py +0 -0
  108. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/site_html_check.py +0 -0
  109. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/skills.py +0 -0
  110. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/source_snapshot.py +0 -0
  111. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/team.py +0 -0
  112. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/versioning.py +0 -0
  113. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/wiki_media.py +0 -0
  114. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/wiki_surface.py +0 -0
  115. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/services/wiki_surface_index.py +0 -0
  116. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/attack-surface/SKILL.md +0 -0
  117. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/attack-surface/reference.md +0 -0
  118. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-audit/SKILL.md +0 -0
  119. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-audit/reference.md +0 -0
  120. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-vuln-triage/SKILL.md +0 -0
  121. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/dep-vuln-triage/reference.md +0 -0
  122. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-hub/SKILL.md +0 -0
  123. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-hub/reference.md +0 -0
  124. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-review/SKILL.md +0 -0
  125. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/doc-review/reference.md +0 -0
  126. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/impact-analysis/SKILL.md +0 -0
  127. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/impact-analysis/reference.md +0 -0
  128. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/infra-review/SKILL.md +0 -0
  129. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/infra-review/reference.md +0 -0
  130. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/onboarding-guide/SKILL.md +0 -0
  131. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/onboarding-guide/reference.md +0 -0
  132. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/publish-docs/SKILL.md +0 -0
  133. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/publish-docs/reference.md +0 -0
  134. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/usage-examples/SKILL.md +0 -0
  135. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/usage-examples/reference.md +0 -0
  136. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/user-docs-author/SKILL.md +0 -0
  137. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/user-docs-author/reference.md +0 -0
  138. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-bootstrap/SKILL.md +0 -0
  139. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-bootstrap/reference.md +0 -0
  140. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-reference/SKILL.md +0 -0
  141. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-reference/reference.md +0 -0
  142. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-sync/SKILL.md +0 -0
  143. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/src/llm_wiki_cli/skills/wiki-sync/reference.md +0 -0
  144. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_api.py +0 -0
  145. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_api_contracts.py +0 -0
  146. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_bootstrap.py +0 -0
  147. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_bootstrap_api_contracts.py +0 -0
  148. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_bump.py +0 -0
  149. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_ci_check.py +0 -0
  150. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_circuit_breaker.py +0 -0
  151. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_context.py +0 -0
  152. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_data_flow.py +0 -0
  153. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_dependencies.py +0 -0
  154. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_dependencies_external.py +0 -0
  155. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_diagrams.py +0 -0
  156. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_docker_bootstrap.py +0 -0
  157. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_docker_extract.py +0 -0
  158. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_docker_lint.py +0 -0
  159. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_documentation_queries.py +0 -0
  160. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_e2e.py +0 -0
  161. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_entrypoints.py +0 -0
  162. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extract_api_contracts.py +0 -0
  163. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extractor_helpers.py +0 -0
  164. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_extractor_inventory_contracts.py +0 -0
  165. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_generate_prompt.py +0 -0
  166. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_go_extract.py +0 -0
  167. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_haskell_extract.py +0 -0
  168. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_hook.py +0 -0
  169. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_imports.py +0 -0
  170. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_infrastructure_inventory.py +0 -0
  171. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_install.py +0 -0
  172. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_inventory_cache.py +0 -0
  173. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_io.py +0 -0
  174. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_lint.py +0 -0
  175. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_lockfile.py +0 -0
  176. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_m4_dogfood.py +0 -0
  177. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_m4_plugin_sample.py +0 -0
  178. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_metrics.py +0 -0
  179. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_migrate.py +0 -0
  180. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_module_maps.py +0 -0
  181. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_multilanguage_wiki.py +0 -0
  182. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_navigation_layouts.py +0 -0
  183. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_obsidian.py +0 -0
  184. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_packages.py +0 -0
  185. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_paths.py +0 -0
  186. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_phase4_quality.py +0 -0
  187. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_plugins.py +0 -0
  188. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_relationships.py +0 -0
  189. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_release.py +0 -0
  190. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_rust_extract.py +0 -0
  191. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_secure_file.py +0 -0
  192. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_site_export.py +0 -0
  193. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_skills.py +0 -0
  194. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_surface_initialization.py +0 -0
  195. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_sync.py +0 -0
  196. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_sync_api_contracts.py +0 -0
  197. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_team.py +0 -0
  198. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_trigger.py +0 -0
  199. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_ts_extract.py +0 -0
  200. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_uninstall.py +0 -0
  201. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_versioning.py +0 -0
  202. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_wiki_reference_skill.py +0 -0
  203. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_wiki_surface.py +0 -0
  204. {agent_wiki_cli-1.3.0 → agent_wiki_cli-1.3.1}/tests/test_wiki_surface_index.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-wiki-cli
3
- Version: 1.3.0
3
+ Version: 1.3.1
4
4
  Summary: CLI tool to maintain hybrid LLM Wikis for multi-language projects.
5
5
  Author-email: Denis Sivagin <denissvgn@gmail.com>
6
6
  License: MIT
@@ -115,11 +115,13 @@ helper dependencies and binaries with `llm-wiki prepare-extractors`. Lint, CI,
115
115
  and extract never run `npm install`, `go build`, `go run`, `cargo build`,
116
116
  `cargo run`, or `ghc` automatically.
117
117
 
118
- Source discovery honors `.gitignore` before extractors run. A root, unanchored
119
- `lib/` rule is treated as a generic build-output pattern for TypeScript
120
- projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under `src/lib/` remain
121
- first-party source; top-level `lib/`, excluded dependency/build directories,
122
- and explicit nested `.gitignore` rules still stay excluded. Generated agent
118
+ Source discovery honors `.gitignore` before extractors run. Unescaped trailing
119
+ ASCII spaces in ignore entries are ignored, while `\ ` preserves a literal
120
+ final space. A root, unanchored `lib/` rule is treated as a generic build-output
121
+ pattern for TypeScript projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under
122
+ `src/lib/` remain first-party source; top-level `lib/`, excluded
123
+ dependency/build directories, and explicit nested `.gitignore` rules still stay
124
+ excluded. Generated agent
123
125
  worktree copies such as `.claude/worktrees/**` are excluded from default
124
126
  snapshots; pass an exact `--paths` entry if you intentionally want to inspect
125
127
  one file there.
@@ -240,9 +242,17 @@ Install a post-commit hook:
240
242
  llm-wiki install-hook
241
243
  ```
242
244
 
243
- `init` writes the selected agent and quality-hint setting to
245
+ `init` writes the selected agent and instruction preferences to
244
246
  `.git/.llm-wiki-agent` when the project is a Git repo. Outside Git, it falls
245
- back to `<wiki-dir>/.llm-wiki-agent`.
247
+ back to `<wiki-dir>/.llm-wiki-agent`. Tool-issue reporting guidance is omitted
248
+ by default; opt in when you want agents to create local bug-report files:
249
+
250
+ ```bash
251
+ llm-wiki init --agent claude --issue-reporting
252
+ ```
253
+
254
+ This only adds guidance to the generated agent instruction block. It does not
255
+ upload reports, submit issues, or enable telemetry.
246
256
 
247
257
  ## Automation
248
258
 
@@ -299,10 +309,16 @@ Scaffold the wiki structure and agent constraint file.
299
309
  llm-wiki init --agent claude
300
310
  llm-wiki init --agent copilot --wiki-dir .wiki
301
311
  llm-wiki init --agent cursor --no-quality-hints
312
+ llm-wiki init --agent generic --issue-reporting
302
313
  ```
303
314
 
304
315
  Supported agents are `claude`, `aider`, `opencode`, `copilot`, `cursor`, and
305
- `generic`.
316
+ `generic`. `--issue-reporting` includes instructions that ask agents to record
317
+ `llm-wiki` tool failures under the local `llm-wiki-issues/` directory. The
318
+ instructions are off by default; use `--no-issue-reporting` to explicitly omit
319
+ them when refreshing an existing initialization. On a refresh, omitting
320
+ `--agent` reuses the stored agent; a project with no stored selection defaults
321
+ to `generic`.
306
322
 
307
323
  ### `bootstrap`
308
324
 
@@ -1165,10 +1181,15 @@ llm-wiki upgrade --agent copilot
1165
1181
  llm-wiki upgrade --wiki-dir .wiki
1166
1182
  llm-wiki upgrade --force
1167
1183
  llm-wiki upgrade --no-quality-hints
1184
+ llm-wiki upgrade --issue-reporting
1185
+ llm-wiki upgrade --no-issue-reporting
1168
1186
  ```
1169
1187
 
1170
1188
  `upgrade` refreshes agent instruction blocks, wiki directories, hooks, plugin
1171
- skill blocks, and persisted local config. For older wiki layouts, it
1189
+ skill blocks, and persisted local config. The issue-reporting pair explicitly
1190
+ enables or disables the local agent guidance; without either flag, `upgrade`
1191
+ preserves the stored preference. Configurations created before this preference
1192
+ existed default to disabled. For older wiki layouts, `upgrade`
1172
1193
  idempotently adds registry-standard directories such as `flows/` and missing
1173
1194
  `.gitkeep` files without rewriting existing index, log, semantic pages, or
1174
1195
  optional `dependencies.md` / `load-order.md` pages. Run `bootstrap` or `sync`
@@ -84,11 +84,13 @@ helper dependencies and binaries with `llm-wiki prepare-extractors`. Lint, CI,
84
84
  and extract never run `npm install`, `go build`, `go run`, `cargo build`,
85
85
  `cargo run`, or `ghc` automatically.
86
86
 
87
- Source discovery honors `.gitignore` before extractors run. A root, unanchored
88
- `lib/` rule is treated as a generic build-output pattern for TypeScript
89
- projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under `src/lib/` remain
90
- first-party source; top-level `lib/`, excluded dependency/build directories,
91
- and explicit nested `.gitignore` rules still stay excluded. Generated agent
87
+ Source discovery honors `.gitignore` before extractors run. Unescaped trailing
88
+ ASCII spaces in ignore entries are ignored, while `\ ` preserves a literal
89
+ final space. A root, unanchored `lib/` rule is treated as a generic build-output
90
+ pattern for TypeScript projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under
91
+ `src/lib/` remain first-party source; top-level `lib/`, excluded
92
+ dependency/build directories, and explicit nested `.gitignore` rules still stay
93
+ excluded. Generated agent
92
94
  worktree copies such as `.claude/worktrees/**` are excluded from default
93
95
  snapshots; pass an exact `--paths` entry if you intentionally want to inspect
94
96
  one file there.
@@ -209,9 +211,17 @@ Install a post-commit hook:
209
211
  llm-wiki install-hook
210
212
  ```
211
213
 
212
- `init` writes the selected agent and quality-hint setting to
214
+ `init` writes the selected agent and instruction preferences to
213
215
  `.git/.llm-wiki-agent` when the project is a Git repo. Outside Git, it falls
214
- back to `<wiki-dir>/.llm-wiki-agent`.
216
+ back to `<wiki-dir>/.llm-wiki-agent`. Tool-issue reporting guidance is omitted
217
+ by default; opt in when you want agents to create local bug-report files:
218
+
219
+ ```bash
220
+ llm-wiki init --agent claude --issue-reporting
221
+ ```
222
+
223
+ This only adds guidance to the generated agent instruction block. It does not
224
+ upload reports, submit issues, or enable telemetry.
215
225
 
216
226
  ## Automation
217
227
 
@@ -268,10 +278,16 @@ Scaffold the wiki structure and agent constraint file.
268
278
  llm-wiki init --agent claude
269
279
  llm-wiki init --agent copilot --wiki-dir .wiki
270
280
  llm-wiki init --agent cursor --no-quality-hints
281
+ llm-wiki init --agent generic --issue-reporting
271
282
  ```
272
283
 
273
284
  Supported agents are `claude`, `aider`, `opencode`, `copilot`, `cursor`, and
274
- `generic`.
285
+ `generic`. `--issue-reporting` includes instructions that ask agents to record
286
+ `llm-wiki` tool failures under the local `llm-wiki-issues/` directory. The
287
+ instructions are off by default; use `--no-issue-reporting` to explicitly omit
288
+ them when refreshing an existing initialization. On a refresh, omitting
289
+ `--agent` reuses the stored agent; a project with no stored selection defaults
290
+ to `generic`.
275
291
 
276
292
  ### `bootstrap`
277
293
 
@@ -1134,10 +1150,15 @@ llm-wiki upgrade --agent copilot
1134
1150
  llm-wiki upgrade --wiki-dir .wiki
1135
1151
  llm-wiki upgrade --force
1136
1152
  llm-wiki upgrade --no-quality-hints
1153
+ llm-wiki upgrade --issue-reporting
1154
+ llm-wiki upgrade --no-issue-reporting
1137
1155
  ```
1138
1156
 
1139
1157
  `upgrade` refreshes agent instruction blocks, wiki directories, hooks, plugin
1140
- skill blocks, and persisted local config. For older wiki layouts, it
1158
+ skill blocks, and persisted local config. The issue-reporting pair explicitly
1159
+ enables or disables the local agent guidance; without either flag, `upgrade`
1160
+ preserves the stored preference. Configurations created before this preference
1161
+ existed default to disabled. For older wiki layouts, `upgrade`
1141
1162
  idempotently adds registry-standard directories such as `flows/` and missing
1142
1163
  `.gitkeep` files without rewriting existing index, log, semantic pages, or
1143
1164
  optional `dependencies.md` / `load-order.md` pages. Run `bootstrap` or `sync`
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-wiki-cli"
7
- version = "1.3.0"
7
+ version = "1.3.1"
8
8
  description = "CLI tool to maintain hybrid LLM Wikis for multi-language projects."
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-wiki-cli
3
- Version: 1.3.0
3
+ Version: 1.3.1
4
4
  Summary: CLI tool to maintain hybrid LLM Wikis for multi-language projects.
5
5
  Author-email: Denis Sivagin <denissvgn@gmail.com>
6
6
  License: MIT
@@ -115,11 +115,13 @@ helper dependencies and binaries with `llm-wiki prepare-extractors`. Lint, CI,
115
115
  and extract never run `npm install`, `go build`, `go run`, `cargo build`,
116
116
  `cargo run`, or `ghc` automatically.
117
117
 
118
- Source discovery honors `.gitignore` before extractors run. A root, unanchored
119
- `lib/` rule is treated as a generic build-output pattern for TypeScript
120
- projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under `src/lib/` remain
121
- first-party source; top-level `lib/`, excluded dependency/build directories,
122
- and explicit nested `.gitignore` rules still stay excluded. Generated agent
118
+ Source discovery honors `.gitignore` before extractors run. Unescaped trailing
119
+ ASCII spaces in ignore entries are ignored, while `\ ` preserves a literal
120
+ final space. A root, unanchored `lib/` rule is treated as a generic build-output
121
+ pattern for TypeScript projects, so `.ts`, `.tsx`, `.js`, and `.jsx` files under
122
+ `src/lib/` remain first-party source; top-level `lib/`, excluded
123
+ dependency/build directories, and explicit nested `.gitignore` rules still stay
124
+ excluded. Generated agent
123
125
  worktree copies such as `.claude/worktrees/**` are excluded from default
124
126
  snapshots; pass an exact `--paths` entry if you intentionally want to inspect
125
127
  one file there.
@@ -240,9 +242,17 @@ Install a post-commit hook:
240
242
  llm-wiki install-hook
241
243
  ```
242
244
 
243
- `init` writes the selected agent and quality-hint setting to
245
+ `init` writes the selected agent and instruction preferences to
244
246
  `.git/.llm-wiki-agent` when the project is a Git repo. Outside Git, it falls
245
- back to `<wiki-dir>/.llm-wiki-agent`.
247
+ back to `<wiki-dir>/.llm-wiki-agent`. Tool-issue reporting guidance is omitted
248
+ by default; opt in when you want agents to create local bug-report files:
249
+
250
+ ```bash
251
+ llm-wiki init --agent claude --issue-reporting
252
+ ```
253
+
254
+ This only adds guidance to the generated agent instruction block. It does not
255
+ upload reports, submit issues, or enable telemetry.
246
256
 
247
257
  ## Automation
248
258
 
@@ -299,10 +309,16 @@ Scaffold the wiki structure and agent constraint file.
299
309
  llm-wiki init --agent claude
300
310
  llm-wiki init --agent copilot --wiki-dir .wiki
301
311
  llm-wiki init --agent cursor --no-quality-hints
312
+ llm-wiki init --agent generic --issue-reporting
302
313
  ```
303
314
 
304
315
  Supported agents are `claude`, `aider`, `opencode`, `copilot`, `cursor`, and
305
- `generic`.
316
+ `generic`. `--issue-reporting` includes instructions that ask agents to record
317
+ `llm-wiki` tool failures under the local `llm-wiki-issues/` directory. The
318
+ instructions are off by default; use `--no-issue-reporting` to explicitly omit
319
+ them when refreshing an existing initialization. On a refresh, omitting
320
+ `--agent` reuses the stored agent; a project with no stored selection defaults
321
+ to `generic`.
306
322
 
307
323
  ### `bootstrap`
308
324
 
@@ -1165,10 +1181,15 @@ llm-wiki upgrade --agent copilot
1165
1181
  llm-wiki upgrade --wiki-dir .wiki
1166
1182
  llm-wiki upgrade --force
1167
1183
  llm-wiki upgrade --no-quality-hints
1184
+ llm-wiki upgrade --issue-reporting
1185
+ llm-wiki upgrade --no-issue-reporting
1168
1186
  ```
1169
1187
 
1170
1188
  `upgrade` refreshes agent instruction blocks, wiki directories, hooks, plugin
1171
- skill blocks, and persisted local config. For older wiki layouts, it
1189
+ skill blocks, and persisted local config. The issue-reporting pair explicitly
1190
+ enables or disables the local agent guidance; without either flag, `upgrade`
1191
+ preserves the stored preference. Configurations created before this preference
1192
+ existed default to disabled. For older wiki layouts, `upgrade`
1172
1193
  idempotently adds registry-standard directories such as `flows/` and missing
1173
1194
  `.gitkeep` files without rewriting existing index, log, semantic pages, or
1174
1195
  optional `dependencies.md` / `load-order.md` pages. Run `bootstrap` or `sync`
@@ -175,8 +175,8 @@ def _add_init_command(subparsers):
175
175
  init_parser.add_argument(
176
176
  "--agent",
177
177
  choices=AGENT_CHOICES,
178
- default="generic",
179
- help="Target agent format for rules/constraints",
178
+ default=None,
179
+ help="Target agent format (default: stored agent, or generic for a new project)",
180
180
  )
181
181
  init_parser.add_argument(
182
182
  "--wiki-dir",
@@ -186,15 +186,29 @@ def _add_init_command(subparsers):
186
186
  init_parser.add_argument(
187
187
  "--no-quality-hints",
188
188
  action="store_true",
189
- default=False,
189
+ default=None,
190
190
  help="Omit agent quality guidelines from the constraint block",
191
191
  )
192
192
  init_parser.add_argument(
193
193
  "--no-skills",
194
194
  action="store_true",
195
- default=False,
195
+ default=None,
196
196
  help="Skip installing the wiki-reference skill into the agent's skills directory (.claude/skills for claude, .llm-wiki/skills otherwise)",
197
197
  )
198
+ init_issue_reporting = init_parser.add_mutually_exclusive_group()
199
+ init_issue_reporting.add_argument(
200
+ "--issue-reporting",
201
+ dest="issue_reporting",
202
+ action="store_true",
203
+ default=None,
204
+ help="Include local agent instructions for llm-wiki tool issues; does not submit reports",
205
+ )
206
+ init_issue_reporting.add_argument(
207
+ "--no-issue-reporting",
208
+ dest="issue_reporting",
209
+ action="store_false",
210
+ help="Omit local agent instructions for reporting llm-wiki tool issues (default)",
211
+ )
198
212
 
199
213
 
200
214
  def _add_extract_command(subparsers):
@@ -1149,6 +1163,20 @@ def _add_upgrade_command(subparsers):
1149
1163
  action="store_false",
1150
1164
  help="Skip refreshing the wiki-reference skill in the configured agent's skills directory (.claude/skills for claude, .llm-wiki/skills otherwise)",
1151
1165
  )
1166
+ upgrade_issue_reporting = upgrade_parser.add_mutually_exclusive_group()
1167
+ upgrade_issue_reporting.add_argument(
1168
+ "--issue-reporting",
1169
+ dest="issue_reporting",
1170
+ action="store_true",
1171
+ default=None,
1172
+ help="Include local agent instructions for llm-wiki tool issues; does not submit reports",
1173
+ )
1174
+ upgrade_issue_reporting.add_argument(
1175
+ "--no-issue-reporting",
1176
+ dest="issue_reporting",
1177
+ action="store_false",
1178
+ help="Omit local agent instructions for reporting llm-wiki tool issues",
1179
+ )
1152
1180
 
1153
1181
 
1154
1182
  def _add_sync_command(subparsers):
@@ -4,12 +4,19 @@ import shutil
4
4
  import sys
5
5
  from pathlib import Path
6
6
 
7
- from ..config import CLI_AGENTS, DEFAULT_WIKI_DIR, validate_path, write_config
7
+ from ..config import (
8
+ CLI_AGENTS,
9
+ DEFAULT_WIKI_DIR,
10
+ read_config,
11
+ validate_path,
12
+ write_config,
13
+ )
8
14
  from ..services.io import read_md, write_md
9
15
  from ..services.schema import (
10
16
  CONSTRAINT_START as _CONSTRAINT_START,
11
17
  SCHEMA_FILENAMES,
12
18
  build_schema_content as _build_schema_content,
19
+ replace_schema_block,
13
20
  )
14
21
  from ..services.skills import (
15
22
  REFERENCE_SKILL_ID,
@@ -27,15 +34,18 @@ _CLI_AGENTS = CLI_AGENTS
27
34
  def run(args):
28
35
  wiki_dir = getattr(args, "wiki_dir", DEFAULT_WIKI_DIR)
29
36
  validate_path(wiki_dir, "--wiki-dir")
30
- print(f"Initializing LLM Wiki with {args.agent} schema...")
37
+ stored = read_config(wiki_dir)
38
+ requested_agent = getattr(args, "agent", None)
39
+ agent = requested_agent or str(stored.get("agent") or "generic")
40
+ print(f"Initializing LLM Wiki with {agent} schema...")
31
41
 
32
42
  # Warn if the agent has a CLI executable that isn't installed
33
- executable = _CLI_AGENTS.get(args.agent)
43
+ executable = _CLI_AGENTS.get(agent)
34
44
  if executable and not shutil.which(executable):
35
45
  print(
36
46
  f"\nWarning: '{executable}' is not installed or not on PATH.\n"
37
47
  f"The schema file will be created, but manual agent execution\n"
38
- f"(`llm-wiki trigger-agent --agent {args.agent}`) will not work\n"
48
+ f"(`llm-wiki trigger-agent --agent {agent}`) will not work\n"
39
49
  f"until '{executable}' is installed.\n"
40
50
  )
41
51
 
@@ -71,16 +81,29 @@ def run(args):
71
81
  if not log_path.exists():
72
82
  write_md(log_path, "# Architectural Log\n\nAppend-only chronological log.\n\n")
73
83
 
74
- # 3. Create or Append to Agent Schema
75
- quality_hints = not getattr(args, "no_quality_hints", False)
76
- filename = SCHEMA_FILENAMES.get(args.agent)
84
+ # 3. Create or refresh the Agent Schema. Unspecified preferences preserve an
85
+ # existing installation's choices; a new installation receives config defaults.
86
+ cli_no_quality_hints = getattr(args, "no_quality_hints", None)
87
+ if cli_no_quality_hints is None:
88
+ quality_hints = bool(stored.get("quality_hints", True))
89
+ else:
90
+ quality_hints = not cli_no_quality_hints
91
+ cli_issue_reporting = getattr(args, "issue_reporting", None)
92
+ if cli_issue_reporting is None:
93
+ issue_reporting = bool(stored.get("issue_reporting", False))
94
+ else:
95
+ issue_reporting = cli_issue_reporting
96
+ filename = SCHEMA_FILENAMES.get(agent)
77
97
  if filename:
78
98
  schema_path = Path(filename)
79
99
  # ensure parent exists (e.g. for .github/)
80
100
  schema_path.parent.mkdir(parents=True, exist_ok=True)
81
101
 
82
102
  content_to_add = _build_schema_content(
83
- args.agent, wiki_dir, quality_hints=quality_hints
103
+ agent,
104
+ wiki_dir,
105
+ quality_hints=quality_hints,
106
+ issue_reporting=issue_reporting,
84
107
  )
85
108
 
86
109
  if schema_path.exists():
@@ -90,19 +113,22 @@ def run(args):
90
113
  write_md(schema_path, existing_content + "\n\n" + content_to_add)
91
114
  print(f"Appended agent constraints to existing file: {schema_path}")
92
115
  else:
93
- print(
94
- f"Agent constraints already exist in {schema_path}, skipping append."
95
- )
116
+ replace_schema_block(schema_path, content_to_add)
117
+ print(f"Refreshed agent constraints in existing file: {schema_path}")
96
118
  else:
97
119
  write_md(schema_path, content_to_add)
98
120
  print(f"Created agent schema file: {schema_path}")
99
121
 
100
122
  # 4. Install the CLI-owned wiki-reference skill that the constraint
101
123
  # block's deep-reference pointers target
102
- install_skill = not getattr(args, "no_skills", False)
124
+ cli_no_skills = getattr(args, "no_skills", None)
125
+ if cli_no_skills is None:
126
+ install_skill = bool(stored.get("reference_skill", True))
127
+ else:
128
+ install_skill = not cli_no_skills
103
129
  if install_skill:
104
130
  try:
105
- report = install_reference_skill(agent=args.agent)
131
+ report = install_reference_skill(agent=agent)
106
132
  except SkillsError as exc:
107
133
  print(f"Warning: could not install {REFERENCE_SKILL_ID} skill: {exc}")
108
134
  else:
@@ -126,9 +152,10 @@ def run(args):
126
152
  write_config(
127
153
  base_dir,
128
154
  {
129
- "agent": args.agent,
155
+ "agent": agent,
130
156
  "quality_hints": quality_hints,
131
157
  "reference_skill": install_skill,
158
+ "issue_reporting": issue_reporting,
132
159
  },
133
160
  )
134
161
 
@@ -68,6 +68,8 @@ def run(args) -> None:
68
68
  print(f"Agent: {agent} ({mode})")
69
69
  hints = config.get("quality_hints", True)
70
70
  print(f"Quality hints: {'enabled' if hints else 'disabled'}")
71
+ issue_reporting = config.get("issue_reporting", False)
72
+ print(f"Issue reporting: {'enabled' if issue_reporting else 'disabled'}")
71
73
  else:
72
74
  print("Agent: not configured (run `llm-wiki init --agent <agent>`)")
73
75
 
@@ -95,13 +95,23 @@ def _resolve_agent(args, wiki_dir: str) -> str:
95
95
 
96
96
 
97
97
  def _upgrade_schema(
98
- agent: str, wiki_dir: str, old_agent: str | None, *, quality_hints: bool = True
98
+ agent: str,
99
+ wiki_dir: str,
100
+ old_agent: str | None,
101
+ *,
102
+ quality_hints: bool = True,
103
+ issue_reporting: bool = False,
99
104
  ) -> str:
100
105
  """Replace or migrate the agent schema constraint block.
101
106
 
102
107
  Returns a summary message.
103
108
  """
104
- new_content = build_schema_content(agent, wiki_dir, quality_hints=quality_hints)
109
+ new_content = build_schema_content(
110
+ agent,
111
+ wiki_dir,
112
+ quality_hints=quality_hints,
113
+ issue_reporting=issue_reporting,
114
+ )
105
115
  new_filename = SCHEMA_FILENAMES.get(agent)
106
116
 
107
117
  if old_agent and old_agent != agent:
@@ -228,6 +238,11 @@ def run(args):
228
238
  reference_skill = cli_skills
229
239
  else:
230
240
  reference_skill = stored.get("reference_skill", True)
241
+ cli_issue_reporting = getattr(args, "issue_reporting", None)
242
+ if cli_issue_reporting is not None:
243
+ issue_reporting = cli_issue_reporting
244
+ else:
245
+ issue_reporting = stored.get("issue_reporting", False)
231
246
 
232
247
  print("LLM Wiki Upgrade")
233
248
  print("=" * 40)
@@ -240,7 +255,11 @@ def run(args):
240
255
  # 1. Schema constraint block
241
256
  print("\n1. Agent Schema:")
242
257
  schema_file = _upgrade_schema(
243
- agent, wiki_dir, old_agent, quality_hints=quality_hints
258
+ agent,
259
+ wiki_dir,
260
+ old_agent,
261
+ quality_hints=quality_hints,
262
+ issue_reporting=issue_reporting,
244
263
  )
245
264
  print(f" Updated: {schema_file}")
246
265
  refreshed_skills = refresh_skill_blocks(agent, wiki_dir)
@@ -285,6 +304,7 @@ def run(args):
285
304
  "agent": agent,
286
305
  "quality_hints": quality_hints,
287
306
  "reference_skill": reference_skill,
307
+ "issue_reporting": issue_reporting,
288
308
  },
289
309
  )
290
310
 
@@ -210,6 +210,7 @@ _DEFAULT_CONFIG: dict[str, object] = {
210
210
  "agent": "generic",
211
211
  "quality_hints": True,
212
212
  "reference_skill": True,
213
+ "issue_reporting": False,
213
214
  }
214
215
 
215
216
 
@@ -247,6 +248,53 @@ class GitIgnoreMatcher:
247
248
  return rule is not None and not rule.negated
248
249
 
249
250
 
251
+ def _normalize_gitignore_trailing_spaces(line: str) -> str:
252
+ """Remove Git-insignificant trailing spaces from one ignore pattern.
253
+
254
+ Backslashes quote the next character, so escaped spaces are retained while
255
+ an unescaped trailing run is removed. Decode only quoted spaces here;
256
+ broader gitignore escape and wildmatch semantics remain unchanged. Tabs
257
+ are intentionally untouched.
258
+ """
259
+ first_trailing_space: int | None = None
260
+ index = 0
261
+ while index < len(line):
262
+ if line[index] == "\\":
263
+ first_trailing_space = None
264
+ index += 2
265
+ continue
266
+ if line[index] == " ":
267
+ if first_trailing_space is None:
268
+ first_trailing_space = index
269
+ else:
270
+ first_trailing_space = None
271
+ index += 1
272
+
273
+ if first_trailing_space is not None:
274
+ line = line[:first_trailing_space]
275
+
276
+ normalized: list[str] = []
277
+ index = 0
278
+ while index < len(line):
279
+ if line[index] != "\\":
280
+ normalized.append(line[index])
281
+ index += 1
282
+ continue
283
+
284
+ run_start = index
285
+ while index < len(line) and line[index] == "\\":
286
+ index += 1
287
+ backslash_count = index - run_start
288
+ if index < len(line) and line[index] == " " and backslash_count % 2:
289
+ normalized.append("\\" * (backslash_count - 1))
290
+ normalized.append(" ")
291
+ index += 1
292
+ continue
293
+ normalized.append("\\" * backslash_count)
294
+
295
+ return "".join(normalized)
296
+
297
+
250
298
  def _parse_gitignore_file(gitignore_path: Path, base: str = "") -> list[_GitignoreRule]:
251
299
  rules: list[_GitignoreRule] = []
252
300
  if not gitignore_path.exists():
@@ -256,6 +304,7 @@ def _parse_gitignore_file(gitignore_path: Path, base: str = "") -> list[_Gitigno
256
304
  with open(gitignore_path, "r", encoding="utf-8") as f:
257
305
  for raw in f:
258
306
  line = raw.rstrip("\n\r")
307
+ line = _normalize_gitignore_trailing_spaces(line)
259
308
  if not line or line.startswith("#"):
260
309
  continue
261
310
  negated = line.startswith("!")
@@ -376,7 +425,8 @@ def read_config(wiki_dir: "str | Path") -> dict:
376
425
  """Read the persisted llm-wiki config as a dict.
377
426
 
378
427
  Handles backward compatibility: if the file contains a bare agent name
379
- string (pre-v0.3 format), it is treated as ``{"agent": "<value>", "quality_hints": true}``.
428
+ string (pre-v0.3 format), it is treated as an agent selection with all
429
+ current defaults applied.
380
430
 
381
431
  Returns *_DEFAULT_CONFIG* values for any missing keys.
382
432
  """
@@ -345,6 +345,7 @@ class McpWikiService:
345
345
  "name": agent,
346
346
  "mode": "IDE" if agent in IDE_AGENTS else "CLI",
347
347
  "quality_hints": bool(config.get("quality_hints", True)),
348
+ "issue_reporting": bool(config.get("issue_reporting", False)),
348
349
  }
349
350
  except Exception as exc:
350
351
  status["agent"] = {"configured": False, "error": str(exc)}
@@ -110,7 +110,32 @@ _QUALITY_HINTS = """\
110
110
  """
111
111
 
112
112
 
113
- def _wiki_instructions(wiki_dir: str, skills_dir: str) -> str:
113
+ def _issue_reporting_instructions(wiki_dir: str) -> str:
114
+ return f"""## Report llm-wiki tool issues
115
+ If an `llm-wiki` command itself misbehaves while you use it — a crash or
116
+ traceback, wrong or stale generated output, a diagnostic that contradicts the
117
+ observed state, or behavior that contradicts these instructions — never work
118
+ around it silently:
119
+
120
+ - Write one report file per issue under `llm-wiki-issues/` at the project root,
121
+ named `llm-wiki-issues/<YYYY-MM-DD>-<short-slug>.md`. Keep reports outside
122
+ `{wiki_dir}/` so lint does not flag them as orphan pages.
123
+ - Each report must include: the exact command and flags you ran, expected
124
+ behavior, actual behavior (trim long output to the relevant lines), minimal
125
+ reproduction steps, `llm-wiki --version` output, and the workaround you
126
+ applied, if any.
127
+ - Then continue the original task with the safest workaround and mention the
128
+ report file in your final summary so the issue can be addressed upstream.
129
+
130
+ """
131
+
132
+
133
+ def _wiki_instructions(
134
+ wiki_dir: str, skills_dir: str, *, issue_reporting: bool = False
135
+ ) -> str:
136
+ issue_reporting_instructions = (
137
+ _issue_reporting_instructions(wiki_dir) if issue_reporting else ""
138
+ )
114
139
  return f"""You are operating within an LLM Wiki architecture. The project's persistent memory is stored in `{wiki_dir}/`.
115
140
 
116
141
  ## Before you start
@@ -298,23 +323,7 @@ Page filenames **must** match the conventions enforced by `llm-wiki lint`:
298
323
  covers active extractor languages only.
299
324
  - Never leave the wiki in a state where lint reports errors.
300
325
 
301
- ## Report llm-wiki tool issues
302
- If an `llm-wiki` command itself misbehaves while you use it — a crash or
303
- traceback, wrong or stale generated output, a diagnostic that contradicts the
304
- observed state, or behavior that contradicts these instructions — never work
305
- around it silently:
306
-
307
- - Write one report file per issue under `llm-wiki-issues/` at the project root,
308
- named `llm-wiki-issues/<YYYY-MM-DD>-<short-slug>.md`. Keep reports outside
309
- `{wiki_dir}/` so lint does not flag them as orphan pages.
310
- - Each report must include: the exact command and flags you ran, expected
311
- behavior, actual behavior (trim long output to the relevant lines), minimal
312
- reproduction steps, `llm-wiki --version` output, and the workaround you
313
- applied, if any.
314
- - Then continue the original task with the safest workaround and mention the
315
- report file in your final summary so the issue can be addressed upstream.
316
-
317
- ## Formatting rules
326
+ {issue_reporting_instructions}## Formatting rules
318
327
  - Entity pages must have: Location, Bases, Module link, Attributes table, Methods table, Relationships.
319
328
  - Module pages must have: Path, Imports table, Classes summary, Functions table.
320
329
  - User-flow pages have generated Mermaid call-sequence and `## Data flow`
@@ -330,13 +339,19 @@ around it silently:
330
339
 
331
340
 
332
341
  def build_schema_content(
333
- agent: str, wiki_dir: str, *, quality_hints: bool = True
342
+ agent: str,
343
+ wiki_dir: str,
344
+ *,
345
+ quality_hints: bool = True,
346
+ issue_reporting: bool = False,
334
347
  ) -> str:
335
348
  """Build the full constraint block for the given agent and wiki directory."""
336
349
  from .skills import skills_install_dir
337
350
 
338
351
  instructions = _wiki_instructions(
339
- wiki_dir, skills_install_dir(agent).as_posix()
352
+ wiki_dir,
353
+ skills_install_dir(agent).as_posix(),
354
+ issue_reporting=issue_reporting,
340
355
  )
341
356
  preambles = {
342
357
  "claude": f"# Project Wiki\n\nThis project uses an LLM Wiki for persistent architectural memory.\nRead `{wiki_dir}/index.md` first when starting any task.\n\n",