pi-ui-extend 1.0.42 → 1.0.45

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 (233) hide show
  1. package/README.md +41 -12
  2. package/dist/app/app.d.ts +10 -0
  3. package/dist/app/app.js +132 -8
  4. package/dist/app/cli/install.js +2 -2
  5. package/dist/app/commands/command-controller.d.ts +4 -0
  6. package/dist/app/commands/command-controller.js +11 -0
  7. package/dist/app/commands/command-git-actions.d.ts +25 -0
  8. package/dist/app/commands/command-git-actions.js +381 -0
  9. package/dist/app/commands/command-host.d.ts +3 -0
  10. package/dist/app/commands/command-host.js +5 -2
  11. package/dist/app/commands/command-model-actions.d.ts +1 -0
  12. package/dist/app/commands/command-model-actions.js +51 -34
  13. package/dist/app/commands/command-navigation-actions.d.ts +1 -0
  14. package/dist/app/commands/command-navigation-actions.js +16 -3
  15. package/dist/app/commands/command-registry.d.ts +2 -0
  16. package/dist/app/commands/command-registry.js +14 -0
  17. package/dist/app/commands/reload-context-inventory.js +12 -1
  18. package/dist/app/input/autocomplete-controller.js +61 -34
  19. package/dist/app/input/input-action-controller.d.ts +2 -0
  20. package/dist/app/input/input-action-controller.js +8 -1
  21. package/dist/app/input/input-controller.d.ts +2 -1
  22. package/dist/app/input/input-controller.js +7 -2
  23. package/dist/app/input/prompt-enhancer-controller.js +53 -35
  24. package/dist/app/input/voice-controller.d.ts +41 -45
  25. package/dist/app/input/voice-controller.js +351 -419
  26. package/dist/app/model/model-usage-controller.js +17 -7
  27. package/dist/app/model/model-usage-status.d.ts +4 -1
  28. package/dist/app/model/model-usage-status.js +270 -46
  29. package/dist/app/popup/menu-items-controller.d.ts +13 -3
  30. package/dist/app/popup/menu-items-controller.js +37 -21
  31. package/dist/app/popup/popup-action-controller.d.ts +12 -2
  32. package/dist/app/popup/popup-action-controller.js +77 -24
  33. package/dist/app/popup/popup-menu-controller.d.ts +36 -14
  34. package/dist/app/popup/popup-menu-controller.js +239 -69
  35. package/dist/app/rendering/dcp-stats.d.ts +9 -4
  36. package/dist/app/rendering/dcp-stats.js +40 -425
  37. package/dist/app/rendering/popup-menu-renderer.d.ts +3 -5
  38. package/dist/app/rendering/popup-menu-renderer.js +42 -37
  39. package/dist/app/rendering/render-controller.js +23 -2
  40. package/dist/app/rendering/status-line-renderer.d.ts +5 -0
  41. package/dist/app/rendering/status-line-renderer.js +41 -5
  42. package/dist/app/rendering/tab-line-renderer.js +26 -20
  43. package/dist/app/runtime.d.ts +12 -1
  44. package/dist/app/runtime.js +120 -12
  45. package/dist/app/screen/mouse-controller.d.ts +2 -0
  46. package/dist/app/screen/mouse-controller.js +17 -7
  47. package/dist/app/screen/status-controller.d.ts +4 -0
  48. package/dist/app/screen/status-controller.js +5 -0
  49. package/dist/app/session/lazy-session-manager.js +34 -0
  50. package/dist/app/session/session-event-controller.d.ts +1 -0
  51. package/dist/app/session/session-event-controller.js +10 -1
  52. package/dist/app/session/session-history.d.ts +1 -0
  53. package/dist/app/session/session-history.js +12 -1
  54. package/dist/app/session/session-lifecycle-controller.d.ts +6 -1
  55. package/dist/app/session/session-lifecycle-controller.js +10 -1
  56. package/dist/app/session/tabs-controller.d.ts +25 -1
  57. package/dist/app/session/tabs-controller.js +442 -153
  58. package/dist/app/subagents/subagents-widget-controller.d.ts +1 -0
  59. package/dist/app/subagents/subagents-widget-controller.js +6 -0
  60. package/dist/app/types.d.ts +11 -1
  61. package/dist/app/workspace/workspace-actions-controller.js +10 -2
  62. package/dist/app/workspace/workspace-undo.d.ts +1 -0
  63. package/dist/app/workspace/workspace-undo.js +1 -0
  64. package/dist/bundled-extensions/question/index.js +9 -1
  65. package/dist/bundled-extensions/question/remote.d.ts +4 -0
  66. package/dist/bundled-extensions/question/remote.js +33 -0
  67. package/dist/bundled-extensions/telegram-connector/bot.d.ts +43 -0
  68. package/dist/bundled-extensions/telegram-connector/bot.js +166 -0
  69. package/dist/bundled-extensions/telegram-connector/config.d.ts +8 -0
  70. package/dist/bundled-extensions/telegram-connector/config.js +87 -0
  71. package/dist/bundled-extensions/telegram-connector/coordinator.d.ts +66 -0
  72. package/dist/bundled-extensions/telegram-connector/coordinator.js +413 -0
  73. package/dist/bundled-extensions/telegram-connector/index.d.ts +3 -0
  74. package/dist/bundled-extensions/telegram-connector/index.js +195 -0
  75. package/dist/bundled-extensions/terminal-bell/index.d.ts +0 -8
  76. package/dist/bundled-extensions/terminal-bell/index.js +0 -76
  77. package/dist/bundled-extensions/workspace-undo/index.d.ts +26 -0
  78. package/dist/bundled-extensions/workspace-undo/index.js +191 -0
  79. package/dist/config.d.ts +21 -2
  80. package/dist/config.js +159 -32
  81. package/dist/default-pix-config.js +20 -10
  82. package/dist/schemas/pi-tools-suite-schema.d.ts +8 -4
  83. package/dist/schemas/pi-tools-suite-schema.js +11 -5
  84. package/dist/schemas/pix-schema.d.ts +12 -2
  85. package/dist/schemas/pix-schema.js +37 -9
  86. package/dist/schemas/tasks-schema.js +1 -1
  87. package/docs/concurrency.md +3 -1
  88. package/docs/desktop-mvp.md +10 -5
  89. package/docs/desktop-task-manager.md +81 -28
  90. package/docs/release.md +30 -6
  91. package/external/pi-tools-suite/README.md +165 -39
  92. package/external/pi-tools-suite/docs/session-recovery.md +7 -0
  93. package/external/pi-tools-suite/docs/subagent-model-pools.md +12 -5
  94. package/external/pi-tools-suite/docs/ui-qa-subagent.md +440 -0
  95. package/external/pi-tools-suite/package.json +6 -1
  96. package/external/pi-tools-suite/src/antigravity-auth/auth-store.ts +2 -1
  97. package/external/pi-tools-suite/src/antigravity-auth/constants.ts +9 -3
  98. package/external/pi-tools-suite/src/antigravity-auth/headers.ts +41 -3
  99. package/external/pi-tools-suite/src/antigravity-auth/models.ts +94 -21
  100. package/external/pi-tools-suite/src/antigravity-auth/oauth.ts +5 -17
  101. package/external/pi-tools-suite/src/antigravity-auth/payload.ts +72 -7
  102. package/external/pi-tools-suite/src/antigravity-auth/stream.ts +13 -1
  103. package/external/pi-tools-suite/src/async-subagents/agents/implement.md +1 -1
  104. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/backends/browser.mjs +346 -0
  105. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/backends/desktop.mjs +1038 -0
  106. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/backends/tui.mjs +759 -0
  107. package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/scripts/browser-qa-runner.mjs +32 -23
  108. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/chrome-devtools/chrome-devtools-provider.mjs +895 -0
  109. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/linux/linux-atspi.py +494 -0
  110. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/macos/macos-accessibility.swift +1085 -0
  111. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/native-terminal/bridge-client.mjs +50 -0
  112. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/native-terminal/native-terminal-host.mjs +501 -0
  113. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/windows/windows-uia.ps1 +454 -0
  114. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser-auth.md +114 -0
  115. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser-chrome-devtools.md +91 -0
  116. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser-playwright.md +145 -0
  117. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser.md +82 -0
  118. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop-linux.md +26 -0
  119. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop-macos.md +29 -0
  120. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop-windows.md +23 -0
  121. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop.md +54 -0
  122. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/tui-native-terminal.md +59 -0
  123. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/tui-pty.md +37 -0
  124. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/tui.md +60 -0
  125. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/scripts/ui-qa-runner.mjs +535 -0
  126. package/external/pi-tools-suite/src/async-subagents/agents/ui-qa.md +75 -0
  127. package/external/pi-tools-suite/src/async-subagents/commands.ts +1 -1
  128. package/external/pi-tools-suite/src/async-subagents/core/agent-strategy.ts +1 -1
  129. package/external/pi-tools-suite/src/async-subagents/core/agents-dir.ts +0 -2
  130. package/external/pi-tools-suite/src/async-subagents/core/browser-qa.ts +16 -2
  131. package/external/pi-tools-suite/src/async-subagents/core/config.ts +40 -17
  132. package/external/pi-tools-suite/src/async-subagents/core/model-selection.ts +2 -1
  133. package/external/pi-tools-suite/src/async-subagents/core/registry.ts +158 -33
  134. package/external/pi-tools-suite/src/async-subagents/core/routing.ts +7 -4
  135. package/external/pi-tools-suite/src/async-subagents/core/spawn.ts +34 -24
  136. package/external/pi-tools-suite/src/async-subagents/core/ultrawork-auto.ts +51 -45
  137. package/external/pi-tools-suite/src/async-subagents/lib.ts +9 -1
  138. package/external/pi-tools-suite/src/async-subagents/tools/spawn.ts +0 -1
  139. package/external/pi-tools-suite/src/async-subagents/tools/subagents.ts +2 -2
  140. package/external/pi-tools-suite/src/coding-discipline/index.ts +90 -59
  141. package/external/pi-tools-suite/src/config.ts +14 -0
  142. package/external/pi-tools-suite/src/context-gateway/accounting-log.ts +282 -0
  143. package/external/pi-tools-suite/src/context-gateway/config.ts +66 -1
  144. package/external/pi-tools-suite/src/context-gateway/efficiency.ts +414 -0
  145. package/external/pi-tools-suite/src/context-gateway/enforcement.ts +123 -3
  146. package/external/pi-tools-suite/src/context-gateway/index.ts +137 -4
  147. package/external/pi-tools-suite/src/context-gateway/storeless-capabilities.ts +5 -5
  148. package/external/pi-tools-suite/src/context-gateway/telemetry.ts +2 -2
  149. package/external/pi-tools-suite/src/context-gateway/types.ts +8 -1
  150. package/external/pi-tools-suite/src/dcp/auto-compress-budget.ts +39 -4
  151. package/external/pi-tools-suite/src/dcp/auto-compress.ts +41 -14
  152. package/external/pi-tools-suite/src/dcp/commands.ts +14 -156
  153. package/external/pi-tools-suite/src/dcp/compress-tool.ts +8 -2
  154. package/external/pi-tools-suite/src/dcp/compression-progress.ts +22 -0
  155. package/external/pi-tools-suite/src/dcp/config.ts +58 -4
  156. package/external/pi-tools-suite/src/dcp/conversation-index.ts +36 -9
  157. package/external/pi-tools-suite/src/dcp/diagnostics.ts +41 -0
  158. package/external/pi-tools-suite/src/dcp/fresh-tool-results.ts +38 -0
  159. package/external/pi-tools-suite/src/dcp/index.ts +338 -66
  160. package/external/pi-tools-suite/src/dcp/journal.ts +126 -4
  161. package/external/pi-tools-suite/src/dcp/progress-controller.ts +2 -1
  162. package/external/pi-tools-suite/src/dcp/pruner-candidates.ts +92 -2
  163. package/external/pi-tools-suite/src/dcp/pruner-nudge.ts +36 -33
  164. package/external/pi-tools-suite/src/dcp/pruner.ts +1 -0
  165. package/external/pi-tools-suite/src/dcp/routine-pressure.ts +86 -0
  166. package/external/pi-tools-suite/src/dcp/state.ts +9 -0
  167. package/external/pi-tools-suite/src/dcp/statistics.d.ts +8 -0
  168. package/external/pi-tools-suite/src/dcp/statistics.js +156 -0
  169. package/external/pi-tools-suite/src/default-pi-tools-suite-config.ts +68 -16
  170. package/external/pi-tools-suite/src/lib/project.ts +36 -1
  171. package/external/pi-tools-suite/src/model-tools/index.ts +10 -7
  172. package/external/pi-tools-suite/src/repo-discovery/index.ts +304 -4
  173. package/external/pi-tools-suite/src/resource-registry/index.ts +282 -21
  174. package/external/pi-tools-suite/src/session-recovery/index.ts +17 -0
  175. package/external/pi-tools-suite/src/todo/index.ts +21 -0
  176. package/external/pi-tools-suite/src/todo/todo.ts +19 -1
  177. package/external/pi-tools-suite/src/tool-descriptions.ts +44 -15
  178. package/package.json +7 -8
  179. package/schemas/pi-tools-suite.json +44 -12
  180. package/schemas/pix.json +109 -15
  181. package/schemas/tasks.json +1 -2
  182. package/skills/simplify/SKILL.md +33 -5
  183. package/external/pi-tools-suite/docs/browser-qa-subagent.md +0 -196
  184. package/external/pi-tools-suite/src/async-subagents/agents/browser-qa.md +0 -598
  185. package/skills/playwright-cli/SKILL.md +0 -420
  186. package/skills/playwright-cli/references/element-attributes.md +0 -23
  187. package/skills/playwright-cli/references/playwright-tests.md +0 -50
  188. package/skills/playwright-cli/references/request-mocking.md +0 -87
  189. package/skills/playwright-cli/references/running-code.md +0 -241
  190. package/skills/playwright-cli/references/session-management.md +0 -273
  191. package/skills/playwright-cli/references/spec-driven-testing.md +0 -311
  192. package/skills/playwright-cli/references/storage-state.md +0 -290
  193. package/skills/playwright-cli/references/test-generation.md +0 -142
  194. package/skills/playwright-cli/references/tracing.md +0 -154
  195. package/skills/playwright-cli/references/video-recording.md +0 -147
  196. package/skills/spec-wiki/SKILL.md +0 -55
  197. package/skills/spec-wiki/evals/evals.json +0 -132
  198. package/skills/spec-wiki/evals/files/bootstrap/architecture/rfc-007.md +0 -14
  199. package/skills/spec-wiki/evals/files/bootstrap/docs/how-to-pay.md +0 -4
  200. package/skills/spec-wiki/evals/files/bootstrap/docs/overview.md +0 -9
  201. package/skills/spec-wiki/evals/files/bootstrap/requirements/payment-behavior.md +0 -17
  202. package/skills/spec-wiki/evals/files/bootstrap/src/payments.ts +0 -12
  203. package/skills/spec-wiki/evals/files/bootstrap/tests/payments.test.ts +0 -11
  204. package/skills/spec-wiki/evals/files/focused/src/session.ts +0 -5
  205. package/skills/spec-wiki/evals/files/focused/tests/session.test.ts +0 -17
  206. package/skills/spec-wiki/evals/files/maintenance/low-signal/incoming/capture.txt +0 -2
  207. package/skills/spec-wiki/evals/files/maintenance/low-signal/src/capture.ts +0 -3
  208. package/skills/spec-wiki/evals/files/maintenance/move/docs/old-job-contract.md +0 -18
  209. package/skills/spec-wiki/evals/files/maintenance/move/src/job.ts +0 -5
  210. package/skills/spec-wiki/evals/files/maintenance/new-relation/docs/session-refresh.md +0 -24
  211. package/skills/spec-wiki/evals/files/maintenance/new-relation/incoming/refresh-worker.ts +0 -7
  212. package/skills/spec-wiki/evals/files/maintenance/new-relation/src/session.ts +0 -7
  213. package/skills/spec-wiki/evals/files/maintenance/no-impact/docs/auth-contract.md +0 -17
  214. package/skills/spec-wiki/evals/files/maintenance/no-impact/incoming/telemetry-format.ts +0 -3
  215. package/skills/spec-wiki/evals/files/maintenance/no-impact/src/auth.ts +0 -3
  216. package/skills/spec-wiki/evals/files/query/docs/how-to-run-jobs.md +0 -4
  217. package/skills/spec-wiki/evals/files/query/docs/spec-overview.md +0 -9
  218. package/skills/spec-wiki/evals/files/query/features/jobs/cancellation-contract.md +0 -15
  219. package/skills/spec-wiki/evals/files/query/features/jobs/retry-spec.md +0 -6
  220. package/skills/spec-wiki/evals/maintenance_regression.py +0 -311
  221. package/skills/spec-wiki/evals/retrieval-eval.md +0 -37
  222. package/skills/spec-wiki/evals/retrieval-evals.json +0 -37
  223. package/skills/spec-wiki/evals/trigger-evals.json +0 -94
  224. package/skills/spec-wiki/references/bootstrap.md +0 -100
  225. package/skills/spec-wiki/references/focused-spec.md +0 -117
  226. package/skills/spec-wiki/references/index-schema.md +0 -330
  227. package/skills/spec-wiki/references/maintenance.md +0 -134
  228. package/skills/spec-wiki/references/query.md +0 -74
  229. package/skills/spec-wiki/scripts/spec_wiki.py +0 -2076
  230. /package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/examples/qa-auth.example.jsonc +0 -0
  231. /package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/examples/qa-flow.example.jsonc +0 -0
  232. /package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/vendor/fflate.LICENSE +0 -0
  233. /package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/vendor/fflate.mjs +0 -0
@@ -1,134 +0,0 @@
1
- # Maintain an existing Spec Wiki
2
-
3
- Use for refresh, audit, changed-code impact analysis, missing/moved specs, and
4
- repair of an existing `.spec-wiki/` knowledge base.
5
-
6
- ## Routine refresh
7
-
8
- 1. Run `status`.
9
- 2. Re-read changed primary specs and reclassify changed non-primary documents
10
- when `impact` marks them for classification/reclassification.
11
- 3. For `inputs-changed`, inspect the affected behavior against code/tests before
12
- updating any spec claim or verified baseline.
13
- 4. Use the focused workflow in `focused-spec.md` when semantic verification is
14
- required.
15
- 5. `record` updated metadata/relations first. This does not clear drift.
16
- 6. After semantic verification succeeds, run `verify --path <spec>` to establish
17
- the new source/input baseline.
18
- 7. Run `render` and `validate`.
19
-
20
- ## Mandatory post-change checkpoint
21
-
22
- Run this after any **material production-behavior change** before reporting the
23
- task complete. Skip it for formatting-only/mechanical edits that cannot affect a
24
- behavioral contract.
25
-
26
- 1. Prefer the exact paths changed by the current task and run:
27
-
28
- ```bash
29
- spec_wiki.py --root . impact <task-paths...>
30
- ```
31
-
32
- If task-scoped paths are unavailable, `impact` with no paths inspects the Git
33
- working tree against `HEAD`. On an already-dirty worktree this is broader than
34
- the current task, so do not attribute unrelated changes to the user task.
35
- 2. Treat every `knownAffected` primary spec as a semantic-review candidate.
36
- 3. Treat every material `uncoveredPath` as a **mandatory semantic impact sweep**,
37
- even when `affected` returned nothing. Inspect the changed code/diff, form 2–3
38
- distinct English retrieval formulations, run hybrid `search --also ...`, and
39
- semantically rerank the compact candidates. Use the catalog fallback described
40
- in `query.md` when search recommends it or coverage is incomplete.
41
- 4. If the sweep reveals a previously unknown durable spec→code dependency, repair
42
- the relation map with `relate --add-code ...` (or update the source spec's
43
- Related files and `record` it). Do not add relations merely because paths share
44
- names.
45
- 5. If a tracked relation is obsolete or a file moved, remove/replace only the
46
- inferred edge with `relate --remove-code ...`; explicit source links should be
47
- corrected in the primary spec itself. Any relation-map change invalidates the
48
- old verified baseline until semantic verification succeeds again.
49
- 6. Every changed/new document reported by `impact.changedDocuments` must be
50
- classified for the current task **regardless of heuristic score**. A score-0
51
- changed `.txt` may still be a real contract.
52
- 7. After semantic review, update affected specs only when their behavioral claims
53
- changed. Then `record` changed metadata/source, `verify` each reviewed current
54
- spec, `render`, and `validate`.
55
-
56
- The checkpoint is successful when material changed paths have either a known and
57
- reviewed spec relationship or a documented semantic decision that no current spec
58
- is affected. `affected` alone is never sufficient proof of no impact.
59
-
60
- ## Freshness states
61
-
62
- - `fresh`: source and tracked inputs match the verified hash baseline.
63
- - `spec-changed`: primary document changed; review summary/classification.
64
- - `inputs-changed`: tracked implementation input changed; semantic review needed.
65
- - `spec+inputs-changed`: both changed.
66
- - `missing-source`: primary source disappeared or moved.
67
- - `unverified`: no valid semantic-verification baseline.
68
-
69
- Never rewrite behavior automatically from `inputs-changed`.
70
-
71
- Historical/superseded specs remain searchable knowledge but are not treated as
72
- current review obligations. Use lifecycle and supersession relations to keep old
73
- milestone contracts from competing with current specs.
74
-
75
- ## Impact analysis
76
-
77
- Use `affected <paths...>` after code changes to identify specs with known tracked
78
- relationships to those paths. It is a conservative hint: absence from the
79
- result does not prove no spec is affected.
80
-
81
- Prefer explicit source links. Add inferred implementation relations only after
82
- inspection; do not guess paths to improve coverage.
83
-
84
- Review unresolved path hints reported by `status`/`validate`, especially for
85
- active as-is specs. A current as-is spec with no tracked implementation inputs
86
- cannot provide useful automatic drift detection.
87
-
88
- `impact` additionally reports changed paths with **no known** current spec
89
- relationship. Those paths are where semantic discovery is most important.
90
-
91
- ## New specs and discovery coverage
92
-
93
- - A spec created by the current task should be `record`ed immediately; do not wait
94
- for a later repository scan.
95
- - `impact` exposes every changed/new document-like file for classification even
96
- when normal discovery heuristics would rank it below the candidate threshold.
97
- - Routine `status` still discovers ordinary new/changed high-signal spec
98
- candidates across the repository.
99
- - Before releases, after large refactors, or when coverage is in doubt, run a
100
- **bounded deep coverage audit**:
101
-
102
- ```bash
103
- spec_wiki.py --root . discover --all-unclassified --limit 40
104
- ```
105
-
106
- This intentionally bypasses the heuristic threshold for unclassified document-
107
- like files. Page it carefully on large repositories and classify only after
108
- reading the document itself. This is the safety net for committed low-signal
109
- specs that are no longer visible in the current Git diff.
110
-
111
- ## Missing or moved specs
112
-
113
- - Confirmed deletion: `remove --path <old-path>` removes metadata only.
114
- - Move: `impact` reports the old tracked source as missing and the new document
115
- as a classification candidate. Record the new source first, preserve/repair its
116
- relations and lifecycle, verify it, then remove the old metadata entry.
117
-
118
- ## Safety
119
-
120
- - Primary specs remain the source of truth.
121
- - Do not modify existing project indexes merely to satisfy Spec Wiki.
122
- - Do not normalize arbitrary specs into a mandatory format.
123
- - Hash freshness is structural, not semantic correctness.
124
- - Verified freshness also fingerprints the relation map. Adding/removing tracked
125
- inputs invalidates the previous baseline even when no source/code bytes changed.
126
- - Preserve manual classifications unless source/evidence justifies a change.
127
-
128
- ## Report back
129
-
130
- Summarize wiki path, primary-spec count, unclassified candidates, specs needing
131
- review and why, missing/moved sources, and whether primary specs or production
132
- code were modified.
133
-
134
- For exact command/config/state details, read `index-schema.md`.
@@ -1,74 +0,0 @@
1
- # Query existing spec knowledge
2
-
3
- Use this mode to find relevant specs or answer a question grounded in existing
4
- specifications without loading the whole corpus.
5
-
6
- ## If `.spec-wiki/` exists
7
-
8
- 1. Turn the user's intent into a small retrieval bundle **in the current model**;
9
- do not make a separate model call. Keep the original query. For ordinary
10
- natural-language requests add **2–3 genuinely different** concise English
11
- aliases rather than echoing the same words:
12
- - behavior → canonical contract nouns/synonyms (`recover` → `recovery`,
13
- `wrong session update` → `async ownership lifecycle concurrency`);
14
- - failure/invariant vocabulary implied by the request (`prompt caching` →
15
- `cache stability`, `cannot delete before provider` → provider-seen/result
16
- retention);
17
- - likely component terminology only when the request itself gives enough
18
- evidence.
19
- For non-English requests, always include at least one English behavior alias
20
- and one compact contract-noun alias. Exact symbols or file paths are already
21
- strong retrieval keys and may be searched without extra aliases. Do not invent
22
- a feature name merely to make search easier.
23
- 2. Run one deterministic search with the bundle, for example:
24
-
25
- ```bash
26
- spec_wiki.py --root . search "<original>" \
27
- --also "<behavior alias>" \
28
- --also "<component/contract alias>" \
29
- --limit 8 --json
30
- ```
31
-
32
- Search uses title/topics/summary/spec path plus known code/spec/supersession
33
- relations. Exact relation paths receive strong weight.
34
- 3. Semantically rerank the returned candidates yourself from their compact
35
- metadata. Numeric score is candidate generation, not the final truth. Prefer
36
- entries that satisfy the whole intent, not entries matching one repeated
37
- domain word.
38
- 4. If `catalogFallbackRecommended` is true, search returns nothing, or the top
39
- candidates plainly miss an important part of the request, read the compact
40
- `.spec-wiki/index.md` and select candidates semantically from the catalog.
41
- **Never conclude that no relevant spec exists from lexical search alone.**
42
- 5. Prefer `active` entries over `proposed`, `historical`, or `superseded` ones.
43
- Use `--include-secondary` only when design/decision context is useful.
44
- 6. Read the selected primary source documents before making detailed claims.
45
- When uncertain, read a few plausible specs rather than silently dropping one.
46
- 7. If a selected spec is `unverified`, say that its semantic baseline has not
47
- been established. If it is `inputs-changed`, `spec-changed`, or otherwise stale,
48
- warn about freshness and use `focused-spec.md` when semantic verification is
49
- needed.
50
-
51
- Do not run `status` before every narrow query: each search result already carries
52
- its freshness status. Use `status` for broad wiki-health/audit questions.
53
-
54
- Do not treat `index.md` summaries as primary evidence when the source spec is
55
- available.
56
-
57
- ## If no wiki exists
58
-
59
- For a narrow question, search only for likely relevant specs and answer from
60
- those sources. Do **not** bootstrap the full wiki unless the user asks for an
61
- inventory/index or broad spec discovery.
62
-
63
- ## Existing project indexes
64
-
65
- An existing README, overview, spec catalog, or TOC may be used as a discovery
66
- hint, but its summaries are not primary spec knowledge. Follow links to the
67
- underlying documents and ground claims there.
68
-
69
- ## Freshness
70
-
71
- `fresh` means known source/input hashes match an **explicit semantic-verification
72
- baseline**. Bootstrap/classification alone produces `unverified`, never `fresh`.
73
-
74
- `inputs-changed` is a review request, not proof of drift.