agent-wiki-cli 0.5.0__tar.gz → 0.5.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 (110) hide show
  1. {agent_wiki_cli-0.5.0/src/agent_wiki_cli.egg-info → agent_wiki_cli-0.5.1}/PKG-INFO +10 -2
  2. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/README.md +9 -1
  3. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/pyproject.toml +1 -1
  4. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1/src/agent_wiki_cli.egg-info}/PKG-INFO +10 -2
  5. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/generate_prompt_cmd.py +21 -4
  6. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/schema.py +21 -4
  7. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_generate_prompt.py +11 -0
  8. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_schema.py +6 -0
  9. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/LICENSE +0 -0
  10. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/setup.cfg +0 -0
  11. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/SOURCES.txt +0 -0
  12. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/dependency_links.txt +0 -0
  13. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/entry_points.txt +0 -0
  14. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/requires.txt +0 -0
  15. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/agent_wiki_cli.egg-info/top_level.txt +0 -0
  16. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/__init__.py +0 -0
  17. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/cli.py +0 -0
  18. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/__init__.py +0 -0
  19. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/bootstrap_cmd.py +0 -0
  20. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/bump_cmd.py +0 -0
  21. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/ci_check_cmd.py +0 -0
  22. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/context_cmd.py +0 -0
  23. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/extract_cmd.py +0 -0
  24. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/hook_cmd.py +0 -0
  25. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/init_cmd.py +0 -0
  26. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/install_cmd.py +0 -0
  27. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/lint_cmd.py +0 -0
  28. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/mcp_cmd.py +0 -0
  29. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/metrics_cmd.py +0 -0
  30. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/migrate_cmd.py +0 -0
  31. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/obsidian_cmd.py +0 -0
  32. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/plugins_cmd.py +0 -0
  33. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/prepare_extractors_cmd.py +0 -0
  34. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/release_cmd.py +0 -0
  35. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/review_cmd.py +0 -0
  36. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/status_cmd.py +0 -0
  37. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/sync_cmd.py +0 -0
  38. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/team_cmd.py +0 -0
  39. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/trigger_cmd.py +0 -0
  40. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/uninstall_cmd.py +0 -0
  41. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/commands/upgrade_cmd.py +0 -0
  42. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/config.py +0 -0
  43. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/__init__.py +0 -0
  44. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/common.py +0 -0
  45. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/go_extractor.py +0 -0
  46. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/go_scripts/go.mod +0 -0
  47. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/go_scripts/main.go +0 -0
  48. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/python_extractor.py +0 -0
  49. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_extractor.py +0 -0
  50. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.lock +0 -0
  51. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_scripts/Cargo.toml +0 -0
  52. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/rust_scripts/src/main.rs +0 -0
  53. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/ts_extractor.py +0 -0
  54. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/ts_scripts/extract.js +0 -0
  55. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/extractors/ts_scripts/package.json +0 -0
  56. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/__init__.py +0 -0
  57. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/circuit_breaker.py +0 -0
  58. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/extractor_helpers.py +0 -0
  59. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/imports.py +0 -0
  60. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/inventory_cache.py +0 -0
  61. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/io.py +0 -0
  62. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/lockfile.py +0 -0
  63. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/mcp_server.py +0 -0
  64. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/metrics.py +0 -0
  65. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/obsidian.py +0 -0
  66. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/packages.py +0 -0
  67. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/paths.py +0 -0
  68. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/plugins.py +0 -0
  69. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/secure_file.py +0 -0
  70. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/source_snapshot.py +0 -0
  71. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/team.py +0 -0
  72. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/src/llm_wiki_cli/services/versioning.py +0 -0
  73. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_bootstrap.py +0 -0
  74. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_bump.py +0 -0
  75. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_ci_check.py +0 -0
  76. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_circuit_breaker.py +0 -0
  77. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_config.py +0 -0
  78. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_context.py +0 -0
  79. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_docker_bootstrap.py +0 -0
  80. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_docker_extract.py +0 -0
  81. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_docker_lint.py +0 -0
  82. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_e2e.py +0 -0
  83. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_extract.py +0 -0
  84. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_extractor_helpers.py +0 -0
  85. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_go_extract.py +0 -0
  86. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_hook.py +0 -0
  87. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_imports.py +0 -0
  88. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_init.py +0 -0
  89. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_inventory_cache.py +0 -0
  90. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_io.py +0 -0
  91. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_lint.py +0 -0
  92. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_lockfile.py +0 -0
  93. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_mcp.py +0 -0
  94. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_migrate.py +0 -0
  95. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_multilanguage_wiki.py +0 -0
  96. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_obsidian.py +0 -0
  97. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_package_metadata.py +0 -0
  98. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_phase4_quality.py +0 -0
  99. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_plugins.py +0 -0
  100. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_release.py +0 -0
  101. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_rust_extract.py +0 -0
  102. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_source_snapshot.py +0 -0
  103. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_status.py +0 -0
  104. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_sync.py +0 -0
  105. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_team.py +0 -0
  106. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_trigger.py +0 -0
  107. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_ts_extract.py +0 -0
  108. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_uninstall.py +0 -0
  109. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_upgrade.py +0 -0
  110. {agent_wiki_cli-0.5.0 → agent_wiki_cli-0.5.1}/tests/test_versioning.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-wiki-cli
3
- Version: 0.5.0
3
+ Version: 0.5.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
@@ -246,6 +246,12 @@ parallel built-in language extraction. Sync repairs manifests with invalid
246
246
  source hashes without touching pages, and stops unusually broad diffs unless
247
247
  `--force` is used.
248
248
 
249
+ `sync` is deterministic: it updates AST/docstring-based page skeletons and does
250
+ not call an LLM. In agent workflows, treat sync as the first step, then inspect
251
+ created or updated pages and replace generic `_Auto-generated from ..._`,
252
+ copied-docstring-only, or knowable `—` placeholders with project-specific
253
+ semantic explanations.
254
+
249
255
  ### `extract`
250
256
 
251
257
  Print source inventory as JSON. All registered extractors run; missing optional
@@ -368,7 +374,9 @@ llm-wiki generate-prompt --template compact
368
374
  ```
369
375
 
370
376
  The generated prompt includes change-type guidance. Installed prompt templates
371
- can override the default prompt body.
377
+ can override the default prompt body. The default prompt asks agents to run
378
+ `sync` first, then perform a semantic pass on affected pages before accepting a
379
+ lint-clean wiki as complete.
372
380
 
373
381
  ### `mcp`
374
382
 
@@ -216,6 +216,12 @@ parallel built-in language extraction. Sync repairs manifests with invalid
216
216
  source hashes without touching pages, and stops unusually broad diffs unless
217
217
  `--force` is used.
218
218
 
219
+ `sync` is deterministic: it updates AST/docstring-based page skeletons and does
220
+ not call an LLM. In agent workflows, treat sync as the first step, then inspect
221
+ created or updated pages and replace generic `_Auto-generated from ..._`,
222
+ copied-docstring-only, or knowable `—` placeholders with project-specific
223
+ semantic explanations.
224
+
219
225
  ### `extract`
220
226
 
221
227
  Print source inventory as JSON. All registered extractors run; missing optional
@@ -338,7 +344,9 @@ llm-wiki generate-prompt --template compact
338
344
  ```
339
345
 
340
346
  The generated prompt includes change-type guidance. Installed prompt templates
341
- can override the default prompt body.
347
+ can override the default prompt body. The default prompt asks agents to run
348
+ `sync` first, then perform a semantic pass on affected pages before accepting a
349
+ lint-clean wiki as complete.
342
350
 
343
351
  ### `mcp`
344
352
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "agent-wiki-cli"
7
- version = "0.5.0"
7
+ version = "0.5.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: 0.5.0
3
+ Version: 0.5.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
@@ -246,6 +246,12 @@ parallel built-in language extraction. Sync repairs manifests with invalid
246
246
  source hashes without touching pages, and stops unusually broad diffs unless
247
247
  `--force` is used.
248
248
 
249
+ `sync` is deterministic: it updates AST/docstring-based page skeletons and does
250
+ not call an LLM. In agent workflows, treat sync as the first step, then inspect
251
+ created or updated pages and replace generic `_Auto-generated from ..._`,
252
+ copied-docstring-only, or knowable `—` placeholders with project-specific
253
+ semantic explanations.
254
+
249
255
  ### `extract`
250
256
 
251
257
  Print source inventory as JSON. All registered extractors run; missing optional
@@ -368,7 +374,9 @@ llm-wiki generate-prompt --template compact
368
374
  ```
369
375
 
370
376
  The generated prompt includes change-type guidance. Installed prompt templates
371
- can override the default prompt body.
377
+ can override the default prompt body. The default prompt asks agents to run
378
+ `sync` first, then perform a semantic pass on affected pages before accepting a
379
+ lint-clean wiki as complete.
372
380
 
373
381
  ### `mcp`
374
382
 
@@ -183,9 +183,12 @@ The project's wiki lives at `{wiki_dir}/`.
183
183
  ## Context
184
184
  {rich_context_block}
185
185
 
186
- Run these commands to understand what changed:
186
+ Run these commands to update the deterministic wiki skeleton and understand what changed:
187
187
 
188
188
  ```bash
189
+ # First update generated pages from the current source inventory
190
+ llm-wiki sync --jobs auto --wiki-dir {quoted_wiki_dir} --src-dir {quoted_src_dir}
191
+
189
192
  # Changed files — compact inventory of what was modified in the last commit
190
193
  llm-wiki extract --src-dir {quoted_src_dir} --changed --summary
191
194
 
@@ -201,6 +204,17 @@ For full detail (methods, params, docstrings) on a specific file:
201
204
  llm-wiki extract --src-dir {quoted_src_dir} --paths path/to/file.py
202
205
  ```
203
206
 
207
+ ## Semantic Pass
208
+
209
+ Use the sync output plus `git diff` and `extract --changed --summary` to identify
210
+ pages that were created or updated. Inspect those affected entity/module pages
211
+ and enrich any generated skeletons before you stop.
212
+
213
+ Replace `_Auto-generated from ..._`, copied-docstring-only descriptions, and
214
+ table `—` placeholders where semantic context is knowable from the diff or
215
+ source. Semantic content should explain responsibility, role in the system, main
216
+ collaborators, important behavior, and usage or constraints.
217
+
204
218
  ## Change-Type Focus
205
219
 
206
220
  Change type: `{effective_type}`.
@@ -213,11 +227,14 @@ Your work is done when **all** of the following are true:
213
227
  1. **`llm-wiki lint` exits 0** — no broken links, no orphan pages, no undocumented \
214
228
  classes, no stale entities, no missing modules, no broken workflow links, \
215
229
  no undocumented infrastructure files.
216
- 2. **Only affected pages changed** — modify wiki pages that correspond to code \
230
+ 2. **Semantic pass complete** — affected entity/module pages contain \
231
+ project-specific explanations, not just generated AST/docstring skeletons, \
232
+ copied docstrings, `_Auto-generated from ..._`, or knowable `—` placeholders.
233
+ 3. **Only affected pages changed** — modify wiki pages that correspond to code \
217
234
  touched in the diff. Do not edit unrelated pages or reformat existing content.
218
- 3. **`{wiki_dir}/log.md` has a new entry** — one concise line describing what changed, \
235
+ 4. **`{wiki_dir}/log.md` has a new entry** — one concise line describing what changed, \
219
236
  appended at the bottom.
220
- 4. **`CHANGELOG.md` updated** (if applicable) — add an entry under `## [Unreleased]` \
237
+ 5. **`CHANGELOG.md` updated** (if applicable) — add an entry under `## [Unreleased]` \
221
238
  for user-facing changes. Skip for pure refactors, test-only, or doc-only commits. \
222
239
  *(Not verified by lint.)*
223
240
 
@@ -51,6 +51,9 @@ updated automatically on commit. You are responsible for keeping it current:
51
51
  - If sync repairs only the manifest, run the same sync command again.
52
52
  - If sync stops on a large diff, inspect the changed files first. Re-run with
53
53
  `--force` only when the broad wiki update is intentional.
54
+ - Inspect pages that sync created or updated. Replace generated placeholders,
55
+ copied-docstring-only descriptions, and knowable `—` table descriptions
56
+ with semantic notes from the diff and source.
54
57
  - Run `llm-wiki lint --strict --jobs auto` to verify consistency. Fix any
55
58
  issues until it exits 0.
56
59
  2. **When extractor helpers are missing** for TypeScript, Go, or Rust projects:
@@ -80,6 +83,9 @@ llm-wiki sync --jobs auto
80
83
  the wiki is stale but don't want to regenerate everything.
81
84
  - Sync creates/updates entity and module pages for new or changed files, marks
82
85
  removed files with a ⚠️ Stale header, and rebuilds `index.md`.
86
+ - Sync output is a deterministic AST/docstring skeleton. After it runs, agents
87
+ must fill affected pages with project-specific semantics: responsibility,
88
+ system role, collaborators, important behavior, and usage or constraints.
83
89
  - Sync uses the same persistent inventory cache as lint when available. Use
84
90
  `--cache-stats` when you need to see cache behavior.
85
91
  - If no manifest exists yet (project bootstrapped by an older version), sync will
@@ -90,7 +96,8 @@ llm-wiki sync --jobs auto
90
96
  - Sync has a large-diff guard to prevent accidental mass rewrites. Use
91
97
  `llm-wiki sync --force` only after confirming the broad update is expected.
92
98
  - After sync finishes, always run `llm-wiki lint --strict --jobs auto` to verify
93
- consistency.
99
+ structure. Passing lint is not enough if affected pages still contain generic
100
+ `_Auto-generated from ..._` text or unexplained placeholders.
94
101
 
95
102
  ## Using `llm-wiki context` for large codebases
96
103
  `context` produces a token-budgeted, priority-ranked snapshot of the codebase —
@@ -129,7 +136,7 @@ def _wiki_instructions(wiki_dir: str) -> str:
129
136
  - Consult relevant entity and module pages to understand existing patterns before writing new code.
130
137
 
131
138
  ## When you change code
132
- - Prefer `llm-wiki sync --jobs auto --wiki-dir {wiki_dir} --src-dir .` after
139
+ - First run `llm-wiki sync --jobs auto --wiki-dir {wiki_dir} --src-dir .` after
133
140
  code changes. Sync uses the manifest, persistent inventory cache, and
134
141
  collision-aware page naming to update only affected wiki pages.
135
142
  - If sync reports that it repaired only the manifest, run the same sync command
@@ -137,7 +144,15 @@ def _wiki_instructions(wiki_dir: str) -> str:
137
144
  - If sync stops on a large diff, inspect the affected files. Use
138
145
  `llm-wiki sync --force --jobs auto --wiki-dir {wiki_dir} --src-dir .` only when
139
146
  the broad update is intentional.
140
- - If you update pages manually, keep edits surgical: update entity pages in
147
+ - Then inspect the pages sync created or updated. Sync produces deterministic
148
+ AST/docstring skeletons; you are responsible for the semantic pass.
149
+ - Enrich new or generic affected pages whose descriptions are `_Auto-generated
150
+ from ..._`, copied docstrings only, or table cells with `—` where semantic
151
+ context is knowable from the diff or source.
152
+ - Semantic content should explain responsibility, role in the system, main
153
+ collaborators, important behavior, and usage or constraints.
154
+ - Keep semantic edits surgical: preserve generated structure, links, tables, and
155
+ canonical filenames. Update only affected entity pages in
141
156
  `{wiki_dir}/entities/`, module pages in `{wiki_dir}/modules/`, workflow pages
142
157
  in `{wiki_dir}/workflows/`, infrastructure pages in `{wiki_dir}/infrastructure/`,
143
158
  and append one concise summary to `{wiki_dir}/log.md`.
@@ -169,7 +184,9 @@ Page filenames **must** match the conventions enforced by `llm-wiki lint`:
169
184
  - **Workflow pages** (`workflows/`): Free-form descriptive names.
170
185
 
171
186
  ## Quality checks
172
- - Your wiki changes are **complete** when `llm-wiki lint --strict --jobs auto --wiki-dir {wiki_dir} --src-dir .` exits 0.
187
+ - Your wiki changes are **structurally valid** when `llm-wiki lint --strict --jobs auto --wiki-dir {wiki_dir} --src-dir .` exits 0.
188
+ - Lint passing is not enough: affected pages must also have semantic
189
+ explanations, not only generated skeletons or copied docstrings.
173
190
  - Run lint after every wiki update. If it reports issues, fix them and re-run until it passes.
174
191
  - Run `llm-wiki lint --profile --cache-stats --wiki-dir {wiki_dir} --src-dir .`
175
192
  when lint is slow or extractor failures need machine-readable diagnostics.
@@ -125,6 +125,17 @@ class TestGeneratePromptBuildPrompt:
125
125
  content = Path(".git/llm-wiki-prompt.txt").read_text(encoding="utf-8")
126
126
  assert "Only affected pages" in content
127
127
 
128
+ def test_prompt_runs_sync_before_semantic_pass(self, tmp_project):
129
+ """Prompt should run deterministic sync, then require semantic enrichment."""
130
+ args = _make_args()
131
+ generate_prompt_cmd.run(args)
132
+ content = Path(".git/llm-wiki-prompt.txt").read_text(encoding="utf-8")
133
+ assert "llm-wiki sync --jobs auto --wiki-dir docs/llm_wiki --src-dir ." in content
134
+ assert "## Semantic Pass" in content
135
+ assert "Semantic pass complete" in content
136
+ assert "_Auto-generated from ..._" in content
137
+ assert "generated AST/docstring skeletons" in content
138
+
128
139
  def test_prompt_contains_git_diff_command(self, tmp_project):
129
140
  """Prompt should instruct the agent to run git diff."""
130
141
  args = _make_args()
@@ -36,6 +36,9 @@ def test_agent_schema_mentions_current_sync_and_lint_runtime():
36
36
  assert "LLM_WIKI_GO=/path/to/go" in content
37
37
  assert "persistent inventory cache" in content
38
38
  assert "large-diff guard" in content
39
+ assert "semantic pass" in content
40
+ assert "Lint passing is not enough" in content
41
+ assert "_Auto-generated from ..._" in content
39
42
 
40
43
 
41
44
  def test_ide_schema_mentions_incremental_sync_workflow():
@@ -43,6 +46,9 @@ def test_ide_schema_mentions_incremental_sync_workflow():
43
46
 
44
47
  assert "llm-wiki sync --jobs auto" in content
45
48
  assert "If sync repairs only the manifest" in content
49
+ assert "Sync output is a deterministic AST/docstring skeleton" in content
50
+ assert "Passing lint is not enough" in content
51
+ assert "_Auto-generated from ..._" in content
46
52
  assert "llm-wiki prepare-extractors --src-dir ." in content
47
53
  assert "LLM_WIKI_GO=/path/to/go" in content
48
54
  assert "llm-wiki lint --strict --jobs auto" in content
File without changes
File without changes