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.
- package/README.md +41 -12
- package/dist/app/app.d.ts +10 -0
- package/dist/app/app.js +132 -8
- package/dist/app/cli/install.js +2 -2
- package/dist/app/commands/command-controller.d.ts +4 -0
- package/dist/app/commands/command-controller.js +11 -0
- package/dist/app/commands/command-git-actions.d.ts +25 -0
- package/dist/app/commands/command-git-actions.js +381 -0
- package/dist/app/commands/command-host.d.ts +3 -0
- package/dist/app/commands/command-host.js +5 -2
- package/dist/app/commands/command-model-actions.d.ts +1 -0
- package/dist/app/commands/command-model-actions.js +51 -34
- package/dist/app/commands/command-navigation-actions.d.ts +1 -0
- package/dist/app/commands/command-navigation-actions.js +16 -3
- package/dist/app/commands/command-registry.d.ts +2 -0
- package/dist/app/commands/command-registry.js +14 -0
- package/dist/app/commands/reload-context-inventory.js +12 -1
- package/dist/app/input/autocomplete-controller.js +61 -34
- package/dist/app/input/input-action-controller.d.ts +2 -0
- package/dist/app/input/input-action-controller.js +8 -1
- package/dist/app/input/input-controller.d.ts +2 -1
- package/dist/app/input/input-controller.js +7 -2
- package/dist/app/input/prompt-enhancer-controller.js +53 -35
- package/dist/app/input/voice-controller.d.ts +41 -45
- package/dist/app/input/voice-controller.js +351 -419
- package/dist/app/model/model-usage-controller.js +17 -7
- package/dist/app/model/model-usage-status.d.ts +4 -1
- package/dist/app/model/model-usage-status.js +270 -46
- package/dist/app/popup/menu-items-controller.d.ts +13 -3
- package/dist/app/popup/menu-items-controller.js +37 -21
- package/dist/app/popup/popup-action-controller.d.ts +12 -2
- package/dist/app/popup/popup-action-controller.js +77 -24
- package/dist/app/popup/popup-menu-controller.d.ts +36 -14
- package/dist/app/popup/popup-menu-controller.js +239 -69
- package/dist/app/rendering/dcp-stats.d.ts +9 -4
- package/dist/app/rendering/dcp-stats.js +40 -425
- package/dist/app/rendering/popup-menu-renderer.d.ts +3 -5
- package/dist/app/rendering/popup-menu-renderer.js +42 -37
- package/dist/app/rendering/render-controller.js +23 -2
- package/dist/app/rendering/status-line-renderer.d.ts +5 -0
- package/dist/app/rendering/status-line-renderer.js +41 -5
- package/dist/app/rendering/tab-line-renderer.js +26 -20
- package/dist/app/runtime.d.ts +12 -1
- package/dist/app/runtime.js +120 -12
- package/dist/app/screen/mouse-controller.d.ts +2 -0
- package/dist/app/screen/mouse-controller.js +17 -7
- package/dist/app/screen/status-controller.d.ts +4 -0
- package/dist/app/screen/status-controller.js +5 -0
- package/dist/app/session/lazy-session-manager.js +34 -0
- package/dist/app/session/session-event-controller.d.ts +1 -0
- package/dist/app/session/session-event-controller.js +10 -1
- package/dist/app/session/session-history.d.ts +1 -0
- package/dist/app/session/session-history.js +12 -1
- package/dist/app/session/session-lifecycle-controller.d.ts +6 -1
- package/dist/app/session/session-lifecycle-controller.js +10 -1
- package/dist/app/session/tabs-controller.d.ts +25 -1
- package/dist/app/session/tabs-controller.js +442 -153
- package/dist/app/subagents/subagents-widget-controller.d.ts +1 -0
- package/dist/app/subagents/subagents-widget-controller.js +6 -0
- package/dist/app/types.d.ts +11 -1
- package/dist/app/workspace/workspace-actions-controller.js +10 -2
- package/dist/app/workspace/workspace-undo.d.ts +1 -0
- package/dist/app/workspace/workspace-undo.js +1 -0
- package/dist/bundled-extensions/question/index.js +9 -1
- package/dist/bundled-extensions/question/remote.d.ts +4 -0
- package/dist/bundled-extensions/question/remote.js +33 -0
- package/dist/bundled-extensions/telegram-connector/bot.d.ts +43 -0
- package/dist/bundled-extensions/telegram-connector/bot.js +166 -0
- package/dist/bundled-extensions/telegram-connector/config.d.ts +8 -0
- package/dist/bundled-extensions/telegram-connector/config.js +87 -0
- package/dist/bundled-extensions/telegram-connector/coordinator.d.ts +66 -0
- package/dist/bundled-extensions/telegram-connector/coordinator.js +413 -0
- package/dist/bundled-extensions/telegram-connector/index.d.ts +3 -0
- package/dist/bundled-extensions/telegram-connector/index.js +195 -0
- package/dist/bundled-extensions/terminal-bell/index.d.ts +0 -8
- package/dist/bundled-extensions/terminal-bell/index.js +0 -76
- package/dist/bundled-extensions/workspace-undo/index.d.ts +26 -0
- package/dist/bundled-extensions/workspace-undo/index.js +191 -0
- package/dist/config.d.ts +21 -2
- package/dist/config.js +159 -32
- package/dist/default-pix-config.js +20 -10
- package/dist/schemas/pi-tools-suite-schema.d.ts +8 -4
- package/dist/schemas/pi-tools-suite-schema.js +11 -5
- package/dist/schemas/pix-schema.d.ts +12 -2
- package/dist/schemas/pix-schema.js +37 -9
- package/dist/schemas/tasks-schema.js +1 -1
- package/docs/concurrency.md +3 -1
- package/docs/desktop-mvp.md +10 -5
- package/docs/desktop-task-manager.md +81 -28
- package/docs/release.md +30 -6
- package/external/pi-tools-suite/README.md +165 -39
- package/external/pi-tools-suite/docs/session-recovery.md +7 -0
- package/external/pi-tools-suite/docs/subagent-model-pools.md +12 -5
- package/external/pi-tools-suite/docs/ui-qa-subagent.md +440 -0
- package/external/pi-tools-suite/package.json +6 -1
- package/external/pi-tools-suite/src/antigravity-auth/auth-store.ts +2 -1
- package/external/pi-tools-suite/src/antigravity-auth/constants.ts +9 -3
- package/external/pi-tools-suite/src/antigravity-auth/headers.ts +41 -3
- package/external/pi-tools-suite/src/antigravity-auth/models.ts +94 -21
- package/external/pi-tools-suite/src/antigravity-auth/oauth.ts +5 -17
- package/external/pi-tools-suite/src/antigravity-auth/payload.ts +72 -7
- package/external/pi-tools-suite/src/antigravity-auth/stream.ts +13 -1
- package/external/pi-tools-suite/src/async-subagents/agents/implement.md +1 -1
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/backends/browser.mjs +346 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/backends/desktop.mjs +1038 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/backends/tui.mjs +759 -0
- package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/scripts/browser-qa-runner.mjs +32 -23
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/chrome-devtools/chrome-devtools-provider.mjs +895 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/linux/linux-atspi.py +494 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/macos/macos-accessibility.swift +1085 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/native-terminal/bridge-client.mjs +50 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/native-terminal/native-terminal-host.mjs +501 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/drivers/windows/windows-uia.ps1 +454 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser-auth.md +114 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser-chrome-devtools.md +91 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser-playwright.md +145 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/browser.md +82 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop-linux.md +26 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop-macos.md +29 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop-windows.md +23 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/desktop.md +54 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/tui-native-terminal.md +59 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/tui-pty.md +37 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/guides/tui.md +60 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa/scripts/ui-qa-runner.mjs +535 -0
- package/external/pi-tools-suite/src/async-subagents/agents/ui-qa.md +75 -0
- package/external/pi-tools-suite/src/async-subagents/commands.ts +1 -1
- package/external/pi-tools-suite/src/async-subagents/core/agent-strategy.ts +1 -1
- package/external/pi-tools-suite/src/async-subagents/core/agents-dir.ts +0 -2
- package/external/pi-tools-suite/src/async-subagents/core/browser-qa.ts +16 -2
- package/external/pi-tools-suite/src/async-subagents/core/config.ts +40 -17
- package/external/pi-tools-suite/src/async-subagents/core/model-selection.ts +2 -1
- package/external/pi-tools-suite/src/async-subagents/core/registry.ts +158 -33
- package/external/pi-tools-suite/src/async-subagents/core/routing.ts +7 -4
- package/external/pi-tools-suite/src/async-subagents/core/spawn.ts +34 -24
- package/external/pi-tools-suite/src/async-subagents/core/ultrawork-auto.ts +51 -45
- package/external/pi-tools-suite/src/async-subagents/lib.ts +9 -1
- package/external/pi-tools-suite/src/async-subagents/tools/spawn.ts +0 -1
- package/external/pi-tools-suite/src/async-subagents/tools/subagents.ts +2 -2
- package/external/pi-tools-suite/src/coding-discipline/index.ts +90 -59
- package/external/pi-tools-suite/src/config.ts +14 -0
- package/external/pi-tools-suite/src/context-gateway/accounting-log.ts +282 -0
- package/external/pi-tools-suite/src/context-gateway/config.ts +66 -1
- package/external/pi-tools-suite/src/context-gateway/efficiency.ts +414 -0
- package/external/pi-tools-suite/src/context-gateway/enforcement.ts +123 -3
- package/external/pi-tools-suite/src/context-gateway/index.ts +137 -4
- package/external/pi-tools-suite/src/context-gateway/storeless-capabilities.ts +5 -5
- package/external/pi-tools-suite/src/context-gateway/telemetry.ts +2 -2
- package/external/pi-tools-suite/src/context-gateway/types.ts +8 -1
- package/external/pi-tools-suite/src/dcp/auto-compress-budget.ts +39 -4
- package/external/pi-tools-suite/src/dcp/auto-compress.ts +41 -14
- package/external/pi-tools-suite/src/dcp/commands.ts +14 -156
- package/external/pi-tools-suite/src/dcp/compress-tool.ts +8 -2
- package/external/pi-tools-suite/src/dcp/compression-progress.ts +22 -0
- package/external/pi-tools-suite/src/dcp/config.ts +58 -4
- package/external/pi-tools-suite/src/dcp/conversation-index.ts +36 -9
- package/external/pi-tools-suite/src/dcp/diagnostics.ts +41 -0
- package/external/pi-tools-suite/src/dcp/fresh-tool-results.ts +38 -0
- package/external/pi-tools-suite/src/dcp/index.ts +338 -66
- package/external/pi-tools-suite/src/dcp/journal.ts +126 -4
- package/external/pi-tools-suite/src/dcp/progress-controller.ts +2 -1
- package/external/pi-tools-suite/src/dcp/pruner-candidates.ts +92 -2
- package/external/pi-tools-suite/src/dcp/pruner-nudge.ts +36 -33
- package/external/pi-tools-suite/src/dcp/pruner.ts +1 -0
- package/external/pi-tools-suite/src/dcp/routine-pressure.ts +86 -0
- package/external/pi-tools-suite/src/dcp/state.ts +9 -0
- package/external/pi-tools-suite/src/dcp/statistics.d.ts +8 -0
- package/external/pi-tools-suite/src/dcp/statistics.js +156 -0
- package/external/pi-tools-suite/src/default-pi-tools-suite-config.ts +68 -16
- package/external/pi-tools-suite/src/lib/project.ts +36 -1
- package/external/pi-tools-suite/src/model-tools/index.ts +10 -7
- package/external/pi-tools-suite/src/repo-discovery/index.ts +304 -4
- package/external/pi-tools-suite/src/resource-registry/index.ts +282 -21
- package/external/pi-tools-suite/src/session-recovery/index.ts +17 -0
- package/external/pi-tools-suite/src/todo/index.ts +21 -0
- package/external/pi-tools-suite/src/todo/todo.ts +19 -1
- package/external/pi-tools-suite/src/tool-descriptions.ts +44 -15
- package/package.json +7 -8
- package/schemas/pi-tools-suite.json +44 -12
- package/schemas/pix.json +109 -15
- package/schemas/tasks.json +1 -2
- package/skills/simplify/SKILL.md +33 -5
- package/external/pi-tools-suite/docs/browser-qa-subagent.md +0 -196
- package/external/pi-tools-suite/src/async-subagents/agents/browser-qa.md +0 -598
- package/skills/playwright-cli/SKILL.md +0 -420
- package/skills/playwright-cli/references/element-attributes.md +0 -23
- package/skills/playwright-cli/references/playwright-tests.md +0 -50
- package/skills/playwright-cli/references/request-mocking.md +0 -87
- package/skills/playwright-cli/references/running-code.md +0 -241
- package/skills/playwright-cli/references/session-management.md +0 -273
- package/skills/playwright-cli/references/spec-driven-testing.md +0 -311
- package/skills/playwright-cli/references/storage-state.md +0 -290
- package/skills/playwright-cli/references/test-generation.md +0 -142
- package/skills/playwright-cli/references/tracing.md +0 -154
- package/skills/playwright-cli/references/video-recording.md +0 -147
- package/skills/spec-wiki/SKILL.md +0 -55
- package/skills/spec-wiki/evals/evals.json +0 -132
- package/skills/spec-wiki/evals/files/bootstrap/architecture/rfc-007.md +0 -14
- package/skills/spec-wiki/evals/files/bootstrap/docs/how-to-pay.md +0 -4
- package/skills/spec-wiki/evals/files/bootstrap/docs/overview.md +0 -9
- package/skills/spec-wiki/evals/files/bootstrap/requirements/payment-behavior.md +0 -17
- package/skills/spec-wiki/evals/files/bootstrap/src/payments.ts +0 -12
- package/skills/spec-wiki/evals/files/bootstrap/tests/payments.test.ts +0 -11
- package/skills/spec-wiki/evals/files/focused/src/session.ts +0 -5
- package/skills/spec-wiki/evals/files/focused/tests/session.test.ts +0 -17
- package/skills/spec-wiki/evals/files/maintenance/low-signal/incoming/capture.txt +0 -2
- package/skills/spec-wiki/evals/files/maintenance/low-signal/src/capture.ts +0 -3
- package/skills/spec-wiki/evals/files/maintenance/move/docs/old-job-contract.md +0 -18
- package/skills/spec-wiki/evals/files/maintenance/move/src/job.ts +0 -5
- package/skills/spec-wiki/evals/files/maintenance/new-relation/docs/session-refresh.md +0 -24
- package/skills/spec-wiki/evals/files/maintenance/new-relation/incoming/refresh-worker.ts +0 -7
- package/skills/spec-wiki/evals/files/maintenance/new-relation/src/session.ts +0 -7
- package/skills/spec-wiki/evals/files/maintenance/no-impact/docs/auth-contract.md +0 -17
- package/skills/spec-wiki/evals/files/maintenance/no-impact/incoming/telemetry-format.ts +0 -3
- package/skills/spec-wiki/evals/files/maintenance/no-impact/src/auth.ts +0 -3
- package/skills/spec-wiki/evals/files/query/docs/how-to-run-jobs.md +0 -4
- package/skills/spec-wiki/evals/files/query/docs/spec-overview.md +0 -9
- package/skills/spec-wiki/evals/files/query/features/jobs/cancellation-contract.md +0 -15
- package/skills/spec-wiki/evals/files/query/features/jobs/retry-spec.md +0 -6
- package/skills/spec-wiki/evals/maintenance_regression.py +0 -311
- package/skills/spec-wiki/evals/retrieval-eval.md +0 -37
- package/skills/spec-wiki/evals/retrieval-evals.json +0 -37
- package/skills/spec-wiki/evals/trigger-evals.json +0 -94
- package/skills/spec-wiki/references/bootstrap.md +0 -100
- package/skills/spec-wiki/references/focused-spec.md +0 -117
- package/skills/spec-wiki/references/index-schema.md +0 -330
- package/skills/spec-wiki/references/maintenance.md +0 -134
- package/skills/spec-wiki/references/query.md +0 -74
- package/skills/spec-wiki/scripts/spec_wiki.py +0 -2076
- /package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/examples/qa-auth.example.jsonc +0 -0
- /package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/examples/qa-flow.example.jsonc +0 -0
- /package/external/pi-tools-suite/src/async-subagents/agents/{browser-qa → ui-qa/browser}/vendor/fflate.LICENSE +0 -0
- /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.
|