@research-copilot/plugin 1.1.17 → 1.1.19
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 +18 -9
- package/dist/.claude-plugin/plugin.json +1 -1
- package/dist/.codex-plugin/plugin.toml +1 -1
- package/dist/.cursor-plugin/plugin.json +1 -1
- package/dist/.gemini-plugin/plugin.json +1 -1
- package/dist/.opencode-plugin/plugin.json +1 -1
- package/dist/.windsurf-plugin/plugin.json +1 -1
- package/dist/skills/ablation-planner/SKILL.md +126 -0
- package/dist/skills/alphaxiv/SKILL.md +186 -0
- package/dist/skills/analyze-results/SKILL.md +45 -0
- package/dist/skills/arxiv/SKILL.md +210 -0
- package/dist/skills/auto-paper-improvement-loop/SKILL.md +574 -0
- package/dist/skills/auto-review-loop/SKILL.md +370 -0
- package/dist/skills/auto-review-loop-llm/SKILL.md +247 -0
- package/dist/skills/auto-review-loop-minimax/SKILL.md +290 -0
- package/dist/skills/benchmark-paper-template/SKILL.md +142 -0
- package/dist/skills/benchmark-paper-template/references/benchmark-design.md +180 -0
- package/dist/skills/benchmark-paper-template/references/checklist.md +113 -0
- package/dist/skills/benchmark-paper-template/references/construction-pipeline.md +127 -0
- package/dist/skills/benchmark-paper-template/references/experiments.md +159 -0
- package/dist/skills/benchmark-paper-template/references/gap-analysis.md +86 -0
- package/dist/skills/benchmark-paper-template/references/instantiation-template.md +194 -0
- package/dist/skills/benchmark-paper-template/references/orchestrator-notes.md +96 -0
- package/dist/skills/benchmark-paper-template/references/paper-structure.md +209 -0
- package/dist/skills/citation-audit/SKILL.md +494 -0
- package/dist/skills/claims-drafting/SKILL.md +239 -0
- package/dist/skills/comm-lit-review/SKILL.md +299 -0
- package/dist/skills/comm-lit-review/references/domain-taxonomy.md +57 -0
- package/dist/skills/comm-lit-review/references/output-template.md +37 -0
- package/dist/skills/comm-lit-review/references/source-policy.md +99 -0
- package/dist/skills/comm-lit-review/references/venue-tiering.md +112 -0
- package/dist/skills/composer/SKILL.md +840 -0
- package/dist/skills/composer/references/section_guides.md +675 -0
- package/dist/skills/composer/references/writing_standards.md +629 -0
- package/dist/skills/composer/scripts/chapter_quality_check.py +470 -0
- package/dist/skills/composer/scripts/final_evaluation.py +550 -0
- package/dist/skills/deepxiv/SKILL.md +142 -0
- package/dist/skills/dse-loop/SKILL.md +277 -0
- package/dist/skills/embodiment-description/SKILL.md +129 -0
- package/dist/skills/exa-search/SKILL.md +192 -0
- package/dist/skills/experiment-audit/SKILL.md +262 -0
- package/dist/skills/experiment-bridge/SKILL.md +316 -0
- package/dist/skills/experiment-plan/SKILL.md +249 -0
- package/dist/skills/experiment-queue/SKILL.md +380 -0
- package/dist/skills/experiment-queue/scripts/build_manifest.py +142 -0
- package/dist/skills/experiment-queue/scripts/queue_manager.py +426 -0
- package/dist/skills/feishu-notify/SKILL.md +155 -0
- package/dist/skills/figure-description/SKILL.md +138 -0
- package/dist/skills/figure-designer/SKILL.md +207 -0
- package/dist/skills/figure-designer/references/design-rules.md +99 -0
- package/dist/skills/figure-designer/references/experimental-results.md +127 -0
- package/dist/skills/figure-designer/references/motivated-example.md +138 -0
- package/dist/skills/figure-designer/references/solution-overview.md +145 -0
- package/dist/skills/figure-designer/references/tools.md +124 -0
- package/dist/skills/figure-spec/SKILL.md +252 -0
- package/dist/skills/figure-spec/scripts/figure_renderer.py +799 -0
- package/dist/skills/formula-derivation/SKILL.md +280 -0
- package/dist/skills/gemini-search/SKILL.md +205 -0
- package/dist/skills/grant-proposal/SKILL.md +625 -0
- package/dist/skills/humanizer/AGENTS.md +25 -0
- package/dist/skills/humanizer/SKILL.md +621 -0
- package/dist/skills/idea-creator/SKILL.md +311 -0
- package/dist/skills/idea-discovery/SKILL.md +340 -0
- package/dist/skills/idea-discovery-robot/SKILL.md +362 -0
- package/dist/skills/idea-evaluator/SKILL.md +265 -0
- package/dist/skills/idea-evaluator/references/fatal-flaws.md +192 -0
- package/dist/skills/idea-evaluator/references/five-dimensions.md +251 -0
- package/dist/skills/idea-evaluator/references/lifecycle-capability-matching.md +177 -0
- package/dist/skills/idea-evaluator/references/paradigm-elephant.md +112 -0
- package/dist/skills/idea-evaluator/references/paradigm-examples.md +107 -0
- package/dist/skills/idea-evaluator/references/paradigm-first-principles.md +115 -0
- package/dist/skills/idea-evaluator/references/paradigm-hamming.md +137 -0
- package/dist/skills/idea-evaluator/references/paradigm-shift-probe.md +160 -0
- package/dist/skills/idea-evaluator/references/paradigm-technology-cycle.md +116 -0
- package/dist/skills/idea-evaluator/references/worked-examples.md +206 -0
- package/dist/skills/interview-cheatsheet/SKILL.md +245 -0
- package/dist/skills/intro-drafter/SKILL.md +250 -0
- package/dist/skills/intro-drafter/references/contribution-patterns.md +116 -0
- package/dist/skills/intro-drafter/references/flowchart.md +204 -0
- package/dist/skills/intro-drafter/references/paper-types.md +155 -0
- package/dist/skills/intro-drafter/references/running-example.md +133 -0
- package/dist/skills/intro-drafter/references/worked-examples.md +161 -0
- package/dist/skills/invention-structuring/SKILL.md +188 -0
- package/dist/skills/jurisdiction-format/SKILL.md +192 -0
- package/dist/skills/kill-argument/SKILL.md +384 -0
- package/dist/skills/llm-wiki/.mise.toml +2 -0
- package/dist/skills/llm-wiki/.nvmrc +1 -0
- package/dist/skills/llm-wiki/AGENTS.md +132 -0
- package/dist/skills/llm-wiki/CHANGELOG.md +459 -0
- package/dist/skills/llm-wiki/CLAUDE.md +109 -0
- package/dist/skills/llm-wiki/HERMES.md +44 -0
- package/dist/skills/llm-wiki/SKILL.md +1133 -0
- package/dist/skills/llm-wiki/assets/graph-demo.gif +0 -0
- package/dist/skills/llm-wiki/assets/graph-preview.png +0 -0
- package/dist/skills/llm-wiki/deps/LICENSE-d3.txt +13 -0
- package/dist/skills/llm-wiki/deps/LICENSE-marked.txt +44 -0
- package/dist/skills/llm-wiki/deps/LICENSE-purify.txt +568 -0
- package/{LICENSE → dist/skills/llm-wiki/deps/LICENSE-roughjs.txt} +1 -1
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/SKILL.md +261 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/references/config/first-time-setup.md +106 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/cdp.ts +179 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/constants.ts +13 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/defuddle-converter.ts +58 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/html-to-markdown.ts +135 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/legacy-converter.ts +629 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/main.ts +314 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/markdown-conversion-shared.ts +305 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/media-localizer.ts +317 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/package.json +14 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/paths.ts +29 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/vendor/baoyu-chrome-cdp/package.json +9 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/vendor/baoyu-chrome-cdp/src/index.test.ts +307 -0
- package/dist/skills/llm-wiki/deps/baoyu-url-to-markdown/scripts/vendor/baoyu-chrome-cdp/src/index.ts +523 -0
- package/dist/skills/llm-wiki/deps/d3.min.js +2 -0
- package/dist/skills/llm-wiki/deps/marked.min.js +6 -0
- package/dist/skills/llm-wiki/deps/purify.min.js +3 -0
- package/dist/skills/llm-wiki/deps/rough.min.js +7 -0
- package/dist/skills/llm-wiki/deps/youtube-transcript/SKILL.md +47 -0
- package/dist/skills/llm-wiki/deps/youtube-transcript/scripts/get_transcript.py +72 -0
- package/dist/skills/llm-wiki/docs/design/oriental-atlas/DESIGN.md +183 -0
- package/dist/skills/llm-wiki/docs/design/oriental-atlas/design-brief.md +170 -0
- package/dist/skills/llm-wiki/docs/design/oriental-atlas/oriental-editorial-atlas.html +1908 -0
- package/dist/skills/llm-wiki/docs/design/oriental-atlas/reviews/result-review.md +68 -0
- package/dist/skills/llm-wiki/docs/plans/2026-06-15-omp-tool-status-events-phased-plan.md +655 -0
- package/dist/skills/llm-wiki/docs/plans/2026-06-15-omp-tool-status-events-progress.json +913 -0
- package/dist/skills/llm-wiki/docs/spark/2026-06-15-omp-tool-status-events-design.md +174 -0
- package/dist/skills/llm-wiki/install.ps1 +87 -0
- package/dist/skills/llm-wiki/install.sh +722 -0
- package/dist/skills/llm-wiki/package-lock.json +10309 -0
- package/dist/skills/llm-wiki/package.json +24 -0
- package/dist/skills/llm-wiki/packages/graph-engine/package.json +33 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/anim/.gitkeep +1 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/anim/index.ts +179 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/diff.ts +121 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/graph-node.ts +37 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/index.ts +140 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/atlas.ts +18 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/index.ts +6 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/labels.ts +11 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/learning.ts +8 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/legacy-helpers.ts +1373 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/queue.ts +7 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/storage.ts +4 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/model/visibility.ts +9 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/.gitkeep +1 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/index.ts +59 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/legend.ts +25 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/model.ts +593 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/preview.ts +65 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/search.ts +48 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/static-renderer.ts +2783 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/toolbar.ts +40 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/render/viewport.ts +272 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/select/.gitkeep +1 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/select/index.ts +189 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/sim/index.ts +298 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/sim/pins.ts +96 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/themes/.gitkeep +1 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/themes/index.ts +8 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/themes/tokens.ts +107 -0
- package/dist/skills/llm-wiki/packages/graph-engine/src/types.ts +313 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/anim.test.ts +100 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/diff.test.ts +133 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/helpers.test.ts +275 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/learning.test.ts +259 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/preview.test.ts +56 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/queue.test.ts +114 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/render-model.test.ts +322 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/runtime-state.test.ts +281 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/search-and-legend.test.ts +111 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/select.test.ts +168 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/sim.test.ts +123 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/themes.test.ts +62 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/toolbar.test.ts +64 -0
- package/dist/skills/llm-wiki/packages/graph-engine/test/viewport.test.ts +167 -0
- package/dist/skills/llm-wiki/packages/graph-engine/tsconfig.json +17 -0
- package/dist/skills/llm-wiki/packages/graph-engine/vite.config.ts +15 -0
- package/dist/skills/llm-wiki/platforms/claude/CLAUDE.md +37 -0
- package/dist/skills/llm-wiki/platforms/claude/companions/llm-wiki-upgrade/SKILL.md +95 -0
- package/dist/skills/llm-wiki/platforms/codex/AGENTS.md +23 -0
- package/dist/skills/llm-wiki/scripts/adapter-state.sh +424 -0
- package/dist/skills/llm-wiki/scripts/build-graph-data.sh +395 -0
- package/dist/skills/llm-wiki/scripts/build-graph-html.sh +453 -0
- package/dist/skills/llm-wiki/scripts/cache.sh +352 -0
- package/dist/skills/llm-wiki/scripts/create-source-page.sh +100 -0
- package/dist/skills/llm-wiki/scripts/delete-helper.sh +68 -0
- package/dist/skills/llm-wiki/scripts/graph-analysis.js +732 -0
- package/dist/skills/llm-wiki/scripts/hook-session-start.sh +46 -0
- package/dist/skills/llm-wiki/scripts/init-wiki.sh +95 -0
- package/dist/skills/llm-wiki/scripts/lib/source-signal-eligibility.js +158 -0
- package/dist/skills/llm-wiki/scripts/lint-fix.sh +114 -0
- package/dist/skills/llm-wiki/scripts/lint-runner.sh +217 -0
- package/dist/skills/llm-wiki/scripts/runtime-context.sh +77 -0
- package/dist/skills/llm-wiki/scripts/shared-config.sh +83 -0
- package/dist/skills/llm-wiki/scripts/source-record-contract.tsv +10 -0
- package/dist/skills/llm-wiki/scripts/source-registry.sh +349 -0
- package/dist/skills/llm-wiki/scripts/source-registry.tsv +10 -0
- package/dist/skills/llm-wiki/scripts/source-signal-coverage.js +83 -0
- package/dist/skills/llm-wiki/scripts/validate-step1.sh +144 -0
- package/dist/skills/llm-wiki/scripts/wiki-compat.sh +267 -0
- package/dist/skills/llm-wiki/setup.sh +8 -0
- package/dist/skills/llm-wiki/templates/entity-template.md +30 -0
- package/dist/skills/llm-wiki/templates/graph-styles/wash/footer.html +27 -0
- package/dist/skills/llm-wiki/templates/graph-styles/wash/graph-wash-helpers.js +1326 -0
- package/dist/skills/llm-wiki/templates/graph-styles/wash/graph-wash.js +1009 -0
- package/dist/skills/llm-wiki/templates/graph-styles/wash/header.html +2002 -0
- package/dist/skills/llm-wiki/templates/index-en-template.md +51 -0
- package/dist/skills/llm-wiki/templates/index-template.md +51 -0
- package/dist/skills/llm-wiki/templates/log-en-template.md +11 -0
- package/dist/skills/llm-wiki/templates/log-template.md +11 -0
- package/dist/skills/llm-wiki/templates/overview-en-template.md +41 -0
- package/dist/skills/llm-wiki/templates/overview-template.md +41 -0
- package/dist/skills/llm-wiki/templates/purpose-en-template.md +16 -0
- package/dist/skills/llm-wiki/templates/purpose-template.md +16 -0
- package/dist/skills/llm-wiki/templates/query-template.md +19 -0
- package/dist/skills/llm-wiki/templates/schema-template.md +185 -0
- package/dist/skills/llm-wiki/templates/source-template.md +51 -0
- package/dist/skills/llm-wiki/templates/synthesis-template.md +25 -0
- package/dist/skills/llm-wiki/templates/topic-template.md +35 -0
- package/dist/skills/llm-wiki/tests/adapter-state.sh +338 -0
- package/dist/skills/llm-wiki/tests/browser/graph-density-preview.mjs +53 -0
- package/dist/skills/llm-wiki/tests/browser/graph-html-insights.mjs +41 -0
- package/dist/skills/llm-wiki/tests/browser/graph-node-slim.mjs +71 -0
- package/dist/skills/llm-wiki/tests/browser/graph-stage-4-5.mjs +717 -0
- package/dist/skills/llm-wiki/tests/expected/graph-data-empty.json +60 -0
- package/dist/skills/llm-wiki/tests/expected/graph-data-sample.json +396 -0
- package/dist/skills/llm-wiki/tests/expected/graph-interactive-basic.html +1736 -0
- package/dist/skills/llm-wiki/tests/expected/lint-output.txt +44 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/index.md +1 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Alpha.md +10 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Beta.md +7 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Delta.md +8 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/entities/Gamma.md +8 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/queries/20260422-abc.md +10 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/synthesis/Crystal.md +8 -0
- package/dist/skills/llm-wiki/tests/fixtures/coverage-sample-wiki/wiki/topics/Overview.md +9 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-empty-wiki/wiki/entities/.gitkeep +0 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/purpose.md +3 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Attention.md +7 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Decoder.md +7 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Encoder.md +7 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/GPT.md +7 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/entities/Transformer.md +13 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/sources/paper.md +9 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/topics/arch.md +12 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-data-sample-wiki/wiki/topics/finetune.md +9 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-interactive-basic/wiki/graph-data.json +40 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-interactive-dense/wiki/graph-data.json +3965 -0
- package/dist/skills/llm-wiki/tests/fixtures/graph-interactive-multicomm/wiki/graph-data.json +212 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/index.md +14 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/C++.md +6 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/Lonely.md +4 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/Other.md +8 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/entities/Real.md +7 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/sources/2026-01-01-test-source.md +15 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/sources/2026-02-01-inline-img.md +12 -0
- package/dist/skills/llm-wiki/tests/fixtures/lint-sample-wiki/wiki/topics/AIbasic.md +3 -0
- package/dist/skills/llm-wiki/tests/graph-analysis-helper.regression-1.sh +237 -0
- package/dist/skills/llm-wiki/tests/graph-browser-stage-4-5.regression-1.sh +157 -0
- package/dist/skills/llm-wiki/tests/graph-build-failures.regression-1.sh +91 -0
- package/dist/skills/llm-wiki/tests/graph-data-confidence-merge.regression-1.sh +309 -0
- package/dist/skills/llm-wiki/tests/graph-data-source-paths.regression-1.sh +49 -0
- package/dist/skills/llm-wiki/tests/graph-html-a11y.regression-1.sh +47 -0
- package/dist/skills/llm-wiki/tests/graph-html-brand-link.regression-1.sh +47 -0
- package/dist/skills/llm-wiki/tests/graph-html-density.regression-1.sh +228 -0
- package/dist/skills/llm-wiki/tests/graph-html-drawer-neighbors.regression-1.sh +47 -0
- package/dist/skills/llm-wiki/tests/graph-html-insights.regression-1.sh +80 -0
- package/dist/skills/llm-wiki/tests/graph-html-long-label.regression-1.sh +92 -0
- package/dist/skills/llm-wiki/tests/graph-html-minimap.regression-1.sh +51 -0
- package/dist/skills/llm-wiki/tests/graph-html-mobile.regression-1.sh +48 -0
- package/dist/skills/llm-wiki/tests/graph-html-oriental-atlas-contract.regression-1.sh +94 -0
- package/dist/skills/llm-wiki/tests/graph-html-oriental-design-contract.regression-1.sh +82 -0
- package/dist/skills/llm-wiki/tests/graph-html-search.regression-1.sh +52 -0
- package/dist/skills/llm-wiki/tests/graph-html-styles.regression-1.sh +66 -0
- package/dist/skills/llm-wiki/tests/graph-html-toolbar.regression-1.sh +62 -0
- package/dist/skills/llm-wiki/tests/js/graph-wash-bootstrap.test.js +110 -0
- package/dist/skills/llm-wiki/tests/js/graph-wash-helpers.test.js +296 -0
- package/dist/skills/llm-wiki/tests/js/graph-wash-learning.test.js +260 -0
- package/dist/skills/llm-wiki/tests/js/graph-wash-queue.test.js +115 -0
- package/dist/skills/llm-wiki/tests/js/graph-wash-runtime-state.test.js +282 -0
- package/dist/skills/llm-wiki/tests/js/source-signal-coverage.test.js +48 -0
- package/dist/skills/llm-wiki/tests/js/source-signal-eligibility.test.js +202 -0
- package/dist/skills/llm-wiki/tests/lib/graph-html-engine-helpers.sh +110 -0
- package/dist/skills/llm-wiki/tests/lint-output.regression-1.sh +32 -0
- package/dist/skills/llm-wiki/tests/regression.sh +1754 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/.gitkeep +0 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/SKILL.md +590 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/__init__.py +1 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/accept_changes.py +135 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/comment.py +318 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/helpers/__init__.py +0 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/helpers/merge_runs.py +199 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/pack.py +159 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/soffice.py +183 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/unpack.py +132 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validate.py +111 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/__init__.py +15 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/base.py +847 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/docx.py +446 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/pptx.py +275 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/office/validators/redlining.py +247 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/comments.xml +3 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/commentsExtended.xml +3 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/commentsExtensible.xml +3 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/commentsIds.xml +3 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/docx/scripts/templates/people.xml +3 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/SKILL.md +314 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/forms.md +294 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/reference.md +612 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/check_bounding_boxes.py +65 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/check_fillable_fields.py +11 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/convert_pdf_to_images.py +33 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/create_validation_image.py +37 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/extract_form_field_info.py +122 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/extract_form_structure.py +115 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/fill_fillable_fields.py +98 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pdf/scripts/fill_pdf_form_with_annotations.py +107 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/SKILL.md +232 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/editing.md +205 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/pptxgenjs.md +420 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/__init__.py +0 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/add_slide.py +195 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/clean.py +286 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/helpers/__init__.py +0 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/helpers/merge_runs.py +199 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/pack.py +159 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/soffice.py +183 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/unpack.py +132 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validate.py +111 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/__init__.py +15 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/base.py +847 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/docx.py +446 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/pptx.py +275 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/office/validators/redlining.py +247 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/pptx/scripts/thumbnail.py +289 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/SKILL.md +292 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/helpers/__init__.py +0 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/helpers/merge_runs.py +199 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/helpers/simplify_redlines.py +197 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/pack.py +159 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/mce/mc.xsd +75 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-2010.xsd +560 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-2012.xsd +67 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-2018.xsd +14 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-cex-2018.xsd +20 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-cid-2016.xsd +13 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/schemas/microsoft/wml-symex-2015.xsd +8 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/soffice.py +183 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/unpack.py +132 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validate.py +111 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/__init__.py +15 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/base.py +847 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/docx.py +446 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/pptx.py +275 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/office/validators/redlining.py +247 -0
- package/dist/skills/llm-wiki/workbench/.claude/skills/xlsx/scripts/recalc.py +184 -0
- package/dist/skills/llm-wiki/workbench/AGENTS.md +110 -0
- package/dist/skills/llm-wiki/workbench/CLAUDE.md +54 -0
- package/dist/skills/llm-wiki/workbench/PRODUCT.md +1268 -0
- package/dist/skills/llm-wiki/workbench/docs/current-kb-retrieval-design.md +587 -0
- package/dist/skills/llm-wiki/workbench/docs/graph-evolution-1-design.md +210 -0
- package/dist/skills/llm-wiki/workbench/docs/stage-2-design.md +1139 -0
- package/dist/skills/llm-wiki/workbench/docs/stage-3-design.md +1269 -0
- package/dist/skills/llm-wiki/workbench/docs/stage-3.5-design.md +1164 -0
- package/dist/skills/llm-wiki/workbench/docs/stage-4-design.md +504 -0
- package/dist/skills/llm-wiki/workbench/docs/stage-4.5-design.md +195 -0
- package/dist/skills/llm-wiki/workbench/docs/superpowers/specs/2026-05-28-resizable-preview-layout-design.md +165 -0
- package/dist/skills/llm-wiki/workbench/docs/superpowers/specs/2026-05-28-settings-panel-scroll-fix.md +50 -0
- package/dist/skills/llm-wiki/workbench/server/package.json +29 -0
- package/dist/skills/llm-wiki/workbench/server/src/agent.ts +457 -0
- package/dist/skills/llm-wiki/workbench/server/src/artifacts.ts +248 -0
- package/dist/skills/llm-wiki/workbench/server/src/auth.ts +164 -0
- package/dist/skills/llm-wiki/workbench/server/src/config.ts +130 -0
- package/dist/skills/llm-wiki/workbench/server/src/conversations.test.ts +121 -0
- package/dist/skills/llm-wiki/workbench/server/src/conversations.ts +255 -0
- package/dist/skills/llm-wiki/workbench/server/src/digest/batch.ts +189 -0
- package/dist/skills/llm-wiki/workbench/server/src/digest/concurrency.test.ts +36 -0
- package/dist/skills/llm-wiki/workbench/server/src/digest/concurrency.ts +31 -0
- package/dist/skills/llm-wiki/workbench/server/src/digest/subagent.ts +91 -0
- package/dist/skills/llm-wiki/workbench/server/src/extensions/artifacts.ts +81 -0
- package/dist/skills/llm-wiki/workbench/server/src/extensions/knowledge-base.ts +263 -0
- package/dist/skills/llm-wiki/workbench/server/src/extensions/new-wiki.ts +42 -0
- package/dist/skills/llm-wiki/workbench/server/src/extensions/synthesis.ts +172 -0
- package/dist/skills/llm-wiki/workbench/server/src/graph-watcher.test.ts +196 -0
- package/dist/skills/llm-wiki/workbench/server/src/graph.test.ts +84 -0
- package/dist/skills/llm-wiki/workbench/server/src/graph.ts +379 -0
- package/dist/skills/llm-wiki/workbench/server/src/index.ts +1148 -0
- package/dist/skills/llm-wiki/workbench/server/src/knowledge-bases.test.ts +30 -0
- package/dist/skills/llm-wiki/workbench/server/src/knowledge-bases.ts +321 -0
- package/dist/skills/llm-wiki/workbench/server/src/pages.test.ts +16 -0
- package/dist/skills/llm-wiki/workbench/server/src/pages.ts +158 -0
- package/dist/skills/llm-wiki/workbench/server/src/retrieval.test.ts +151 -0
- package/dist/skills/llm-wiki/workbench/server/src/retrieval.ts +427 -0
- package/dist/skills/llm-wiki/workbench/server/src/tool-status-events.test.ts +363 -0
- package/dist/skills/llm-wiki/workbench/server/src/tool-status-events.ts +616 -0
- package/dist/skills/llm-wiki/workbench/server/src/wiki-init.test.ts +19 -0
- package/dist/skills/llm-wiki/workbench/server/src/wiki-init.ts +188 -0
- package/dist/skills/llm-wiki/workbench/server/tsconfig.json +10 -0
- package/dist/skills/llm-wiki/workbench/tsconfig.json +20 -0
- package/dist/skills/llm-wiki/workbench/web/components.json +21 -0
- package/dist/skills/llm-wiki/workbench/web/eslint.config.js +22 -0
- package/dist/skills/llm-wiki/workbench/web/index.html +13 -0
- package/dist/skills/llm-wiki/workbench/web/package.json +48 -0
- package/dist/skills/llm-wiki/workbench/web/src/App.tsx +749 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/AddExternalDialog.tsx +373 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ArtifactView.tsx +15 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/BatchDigestPanel.tsx +106 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ChatPanel.tsx +821 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/CommandMenu.tsx +65 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ExportButtons.tsx +54 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/GraphPanel.tsx +516 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/GraphReader.tsx +48 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/GraphSelection.tsx +100 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/MarkdownView.tsx +56 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/NewWikiDialog.tsx +101 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/RefMenu.tsx +40 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/RightDrawer.tsx +227 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/SettingsPanel.tsx +331 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/Sidebar.tsx +436 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ToolHistorySummary.tsx +123 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ToolStatusRunway.tsx +90 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/renderers/DownloadOnlyRenderer.tsx +88 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/renderers/HtmlRenderer.tsx +92 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ui/button.tsx +52 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ui/command.tsx +50 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ui/dialog.tsx +156 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ui/input.tsx +21 -0
- package/dist/skills/llm-wiki/workbench/web/src/components/ui/tooltip.tsx +57 -0
- package/dist/skills/llm-wiki/workbench/web/src/index.css +1737 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/api.ts +648 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/drawer-state.ts +79 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/graph-reader.ts +25 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/graph-selection-drawer.ts +35 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/graph-selection.ts +96 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/legacy-tool-status.ts +113 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/sse.ts +72 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/tool-status-format.ts +170 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/tool-status-model.ts +392 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/utils.ts +10 -0
- package/dist/skills/llm-wiki/workbench/web/src/lib/wiki-links.ts +32 -0
- package/dist/skills/llm-wiki/workbench/web/src/main.tsx +10 -0
- package/dist/skills/llm-wiki/workbench/web/test/api.test.ts +61 -0
- package/dist/skills/llm-wiki/workbench/web/test/chat-panel-tool-status.test.tsx +26 -0
- package/dist/skills/llm-wiki/workbench/web/test/graph-drawer-state.test.ts +78 -0
- package/dist/skills/llm-wiki/workbench/web/test/graph-reader-request.test.ts +32 -0
- package/dist/skills/llm-wiki/workbench/web/test/graph-reader.test.ts +62 -0
- package/dist/skills/llm-wiki/workbench/web/test/graph-selection-drawer.test.ts +56 -0
- package/dist/skills/llm-wiki/workbench/web/test/graph-selection.test.ts +83 -0
- package/dist/skills/llm-wiki/workbench/web/test/tool-history-summary.test.tsx +124 -0
- package/dist/skills/llm-wiki/workbench/web/test/tool-status-format.test.ts +107 -0
- package/dist/skills/llm-wiki/workbench/web/test/tool-status-model.test.ts +324 -0
- package/dist/skills/llm-wiki/workbench/web/test/tool-status-runway.test.ts +134 -0
- package/dist/skills/llm-wiki/workbench/web/test/wiki-links.test.ts +23 -0
- package/dist/skills/llm-wiki/workbench/web/tsconfig.app.json +30 -0
- package/dist/skills/llm-wiki/workbench/web/tsconfig.json +7 -0
- package/dist/skills/llm-wiki/workbench/web/tsconfig.node.json +24 -0
- package/dist/skills/llm-wiki/workbench/web/vite.config.ts +26 -0
- package/dist/skills/mean-reviewer/SECURITY.md +23 -0
- package/dist/skills/mean-reviewer/SKILL.md +203 -0
- package/dist/skills/mean-reviewer/examples/13446_1000_Layer_Networks_for_.pdf +0 -0
- package/dist/skills/mean-reviewer/examples/13446_mean_reviewer.md +116 -0
- package/dist/skills/mean-reviewer/examples/13446_mean_reviewer_author_rebuttal_simulated.md +282 -0
- package/dist/skills/mean-reviewer/examples/13446_mean_reviewer_reply.md +91 -0
- package/dist/skills/mean-reviewer/examples/13446_official_review.json +973 -0
- package/dist/skills/mean-reviewer/examples/ChatGPT_AC_Roleplay.jpeg +0 -0
- package/dist/skills/medical-imaging-review/SKILL.md +295 -0
- package/dist/skills/medical-imaging-review/references/CITATION_INTEGRITY.md +233 -0
- package/dist/skills/medical-imaging-review/references/DOMAINS.md +302 -0
- package/dist/skills/medical-imaging-review/references/HALLUCINATION_PATTERNS.md +211 -0
- package/dist/skills/medical-imaging-review/references/MCP_SETUP.md +216 -0
- package/dist/skills/medical-imaging-review/references/PARADIGM.md +221 -0
- package/dist/skills/medical-imaging-review/references/QUALITY_CHECKLIST.md +169 -0
- package/dist/skills/medical-imaging-review/references/TEMPLATES.md +291 -0
- package/dist/skills/medical-imaging-review/references/WORKFLOW.md +289 -0
- package/dist/skills/mermaid-diagram/SKILL.md +379 -0
- package/dist/skills/meta-apply/SKILL.md +137 -0
- package/dist/skills/meta-optimize/SKILL.md +253 -0
- package/dist/skills/monitor-experiment/SKILL.md +98 -0
- package/dist/skills/novelty-check/SKILL.md +89 -0
- package/dist/skills/openalex/SKILL.md +228 -0
- package/dist/skills/overleaf-sync/SKILL.md +220 -0
- package/dist/skills/paper-claim-audit/SKILL.md +340 -0
- package/dist/skills/paper-compile/SKILL.md +253 -0
- package/dist/skills/paper-figure/SKILL.md +279 -0
- package/dist/skills/paper-illustration/SKILL.md +690 -0
- package/dist/skills/paper-illustration-image2/SKILL.md +383 -0
- package/dist/skills/paper-illustration-image2/scripts/paper_illustration_image2.py +255 -0
- package/dist/skills/paper-plan/SKILL.md +278 -0
- package/dist/skills/paper-poster/SKILL.md +19 -0
- package/dist/skills/paper-poster-html/DESIGN_FINAL.md +176 -0
- package/dist/skills/paper-poster-html/IMPLEMENTATION_CONVENTIONS.md +161 -0
- package/dist/skills/paper-poster-html/LICENSES/posterly-MIT.txt +21 -0
- package/dist/skills/paper-poster-html/NOTICE.md +57 -0
- package/dist/skills/paper-poster-html/SKILL.md +357 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/__init__.py +0 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/canvas.py +200 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/measure.py +588 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/polish.py +498 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/preflight.py +489 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/render.py +215 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/textutil.py +16 -0
- package/dist/skills/paper-poster-html/scripts/_posterly/verify_final.py +171 -0
- package/dist/skills/paper-poster-html/scripts/asset_check.py +897 -0
- package/dist/skills/paper-poster-html/scripts/extract_pdf_figures.py +666 -0
- package/dist/skills/paper-poster-html/scripts/poster_check.py +251 -0
- package/dist/skills/paper-poster-html/scripts/preprocess_figures.py +238 -0
- package/dist/skills/paper-poster-html/scripts/render_preview.py +217 -0
- package/dist/skills/paper-poster-html/scripts/run_gates.py +556 -0
- package/dist/skills/paper-poster-html/scripts/style_check.py +1324 -0
- package/dist/skills/paper-poster-html/templates/COMPONENTS.md +462 -0
- package/dist/skills/paper-poster-html/templates/landscape_4col.html +1032 -0
- package/dist/skills/paper-poster-html/templates/landscape_hero.html +1046 -0
- package/dist/skills/paper-poster-html/templates/portrait_2col.html +947 -0
- package/dist/skills/paper-poster-html/templates/tokens/acl.json +9 -0
- package/dist/skills/paper-poster-html/templates/tokens/cvpr.json +9 -0
- package/dist/skills/paper-poster-html/templates/tokens/generic.json +9 -0
- package/dist/skills/paper-poster-html/templates/tokens/iclr.json +9 -0
- package/dist/skills/paper-poster-html/templates/tokens/icml.json +9 -0
- package/dist/skills/paper-poster-html/templates/tokens/neurips.json +9 -0
- package/dist/skills/paper-slide-deck/SKILL.md +464 -0
- package/dist/skills/paper-slide-deck/references/analysis-framework.md +392 -0
- package/dist/skills/paper-slide-deck/references/base-prompt.md +70 -0
- package/dist/skills/paper-slide-deck/references/content-rules.md +95 -0
- package/dist/skills/paper-slide-deck/references/figure-container-template.md +177 -0
- package/dist/skills/paper-slide-deck/references/modification-guide.md +85 -0
- package/dist/skills/paper-slide-deck/references/outline-template.md +437 -0
- package/dist/skills/paper-slide-deck/references/styles/academic-paper.md +109 -0
- package/dist/skills/paper-slide-deck/references/styles/blueprint.md +67 -0
- package/dist/skills/paper-slide-deck/references/styles/bold-editorial.md +70 -0
- package/dist/skills/paper-slide-deck/references/styles/chalkboard.md +68 -0
- package/dist/skills/paper-slide-deck/references/styles/corporate.md +69 -0
- package/dist/skills/paper-slide-deck/references/styles/dark-atmospheric.md +69 -0
- package/dist/skills/paper-slide-deck/references/styles/editorial-infographic.md +73 -0
- package/dist/skills/paper-slide-deck/references/styles/fantasy-animation.md +69 -0
- package/dist/skills/paper-slide-deck/references/styles/intuition-machine.md +72 -0
- package/dist/skills/paper-slide-deck/references/styles/minimal.md +64 -0
- package/dist/skills/paper-slide-deck/references/styles/notion.md +69 -0
- package/dist/skills/paper-slide-deck/references/styles/pixel-art.md +67 -0
- package/dist/skills/paper-slide-deck/references/styles/scientific.md +73 -0
- package/dist/skills/paper-slide-deck/references/styles/sketch-notes.md +66 -0
- package/dist/skills/paper-slide-deck/references/styles/vector-illustration.md +72 -0
- package/dist/skills/paper-slide-deck/references/styles/vintage.md +73 -0
- package/dist/skills/paper-slide-deck/references/styles/watercolor.md +68 -0
- package/dist/skills/paper-slide-deck/scripts/apply-template.ts +282 -0
- package/dist/skills/paper-slide-deck/scripts/detect-figures.ts +283 -0
- package/dist/skills/paper-slide-deck/scripts/extract-figure.ts +140 -0
- package/dist/skills/paper-slide-deck/scripts/generate-slides.py +182 -0
- package/dist/skills/paper-slide-deck/scripts/merge-to-pdf.ts +116 -0
- package/dist/skills/paper-slide-deck/scripts/merge-to-pptx.ts +137 -0
- package/dist/skills/paper-slide-deck/scripts/package-lock.json +899 -0
- package/dist/skills/paper-slide-deck/scripts/package.json +8 -0
- package/dist/skills/paper-slides/SKILL.md +571 -0
- package/dist/skills/paper-talk/SKILL.md +381 -0
- package/dist/skills/paper-write/SKILL.md +411 -0
- package/dist/skills/paper-write/templates/IEEEtran.bst +2409 -0
- package/dist/skills/paper-write/templates/IEEEtran.cls +6347 -0
- package/dist/skills/paper-write/templates/aaai2026.bst +1493 -0
- package/dist/skills/paper-write/templates/aaai2026.sty +315 -0
- package/dist/skills/paper-write/templates/aaai2026.tex +952 -0
- package/dist/skills/paper-write/templates/acl.sty +312 -0
- package/dist/skills/paper-write/templates/acl2026.tex +377 -0
- package/dist/skills/paper-write/templates/acl_natbib.bst +1940 -0
- package/dist/skills/paper-write/templates/acm.bst +3081 -0
- package/dist/skills/paper-write/templates/acm_mm2026.tex +204 -0
- package/dist/skills/paper-write/templates/acmart.cls +3520 -0
- package/dist/skills/paper-write/templates/cvpr.bst +1448 -0
- package/dist/skills/paper-write/templates/cvpr.sty +508 -0
- package/dist/skills/paper-write/templates/cvpr2026.tex +63 -0
- package/dist/skills/paper-write/templates/iclr2026.tex +84 -0
- package/dist/skills/paper-write/templates/iclr2026_conference.bst +1440 -0
- package/dist/skills/paper-write/templates/iclr2026_conference.sty +246 -0
- package/dist/skills/paper-write/templates/icml2025.tex +87 -0
- package/dist/skills/paper-write/templates/icml2026.sty +767 -0
- package/dist/skills/paper-write/templates/icml2026.tex +662 -0
- package/dist/skills/paper-write/templates/ieee_conference.tex +89 -0
- package/dist/skills/paper-write/templates/ieee_journal.tex +93 -0
- package/dist/skills/paper-write/templates/math_commands.tex +48 -0
- package/dist/skills/paper-write/templates/neurips2025.tex +80 -0
- package/dist/skills/paper-write/templates/neurips2026.tex +493 -0
- package/dist/skills/paper-write/templates/neurips_2026.sty +437 -0
- package/dist/skills/paper-writing/SKILL.md +632 -0
- package/dist/skills/patent-novelty-check/SKILL.md +153 -0
- package/dist/skills/patent-pipeline/SKILL.md +344 -0
- package/dist/skills/patent-review/SKILL.md +202 -0
- package/dist/skills/pixel-art/SKILL.md +139 -0
- package/dist/skills/pre-submission-reviewer/SKILL.md +247 -0
- package/dist/skills/pre-submission-reviewer/references/forbidden-patterns.md +163 -0
- package/dist/skills/pre-submission-reviewer/references/grammar-rules.md +135 -0
- package/dist/skills/pre-submission-reviewer/references/latex-rules.md +158 -0
- package/dist/skills/pre-submission-reviewer/references/logic-and-structure.md +125 -0
- package/dist/skills/pre-submission-reviewer/references/section-guides.md +169 -0
- package/dist/skills/prior-art-search/SKILL.md +146 -0
- package/dist/skills/proof-checker/SKILL.md +499 -0
- package/dist/skills/proof-writer/SKILL.md +222 -0
- package/dist/skills/qzcli/SKILL.md +316 -0
- package/dist/skills/rebuttal/SKILL.md +304 -0
- package/dist/skills/render-html/SKILL.md +299 -0
- package/dist/skills/render-html/scripts/render_html.py +905 -0
- package/dist/skills/render-html/scripts/templates/academic.html +342 -0
- package/dist/skills/render-html/scripts/templates/dashboard.html +333 -0
- package/dist/skills/research-lit/SKILL.md +353 -0
- package/dist/skills/research-paper-writing/SKILL.md +99 -0
- package/dist/skills/research-paper-writing/agents/openai.yaml +4 -0
- package/dist/skills/research-paper-writing/references/abstract.md +102 -0
- package/dist/skills/research-paper-writing/references/conclusion.md +35 -0
- package/dist/skills/research-paper-writing/references/does-my-writing-flow-source.md +45 -0
- package/dist/skills/research-paper-writing/references/examples/abstract/template-a.md +21 -0
- package/dist/skills/research-paper-writing/references/examples/abstract/template-b.md +34 -0
- package/dist/skills/research-paper-writing/references/examples/abstract/template-c.md +28 -0
- package/dist/skills/research-paper-writing/references/examples/abstract-examples.md +13 -0
- package/dist/skills/research-paper-writing/references/examples/index.md +21 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/novel-task-challenge-decomposition.md +18 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-not-recommended-abstract-only.md +30 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-1-one-contribution-multi-advantages.md +30 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-2-two-contributions.md +34 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-3-new-module-on-existing-pipeline.md +18 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/pipeline-version-4-observation-driven.md +16 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/technical-challenge-version-1-existing-task.md +32 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/technical-challenge-version-2-existing-task-insight-backed-by-traditional.md +33 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/technical-challenge-version-3-novel-task.md +21 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/version-1-task-then-application.md +14 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/version-2-application-first.md +10 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/version-3-general-to-specific-setting.md +14 -0
- package/dist/skills/research-paper-writing/references/examples/introduction/version-4-open-with-challenge.md +20 -0
- package/dist/skills/research-paper-writing/references/examples/introduction-examples.md +25 -0
- package/dist/skills/research-paper-writing/references/examples/method/example-of-the-three-elements.md +67 -0
- package/dist/skills/research-paper-writing/references/examples/method/method-writing-common-issues-note.md +10 -0
- package/dist/skills/research-paper-writing/references/examples/method/module-design-instant-ngp.md +55 -0
- package/dist/skills/research-paper-writing/references/examples/method/module-motivation-patterns.md +15 -0
- package/dist/skills/research-paper-writing/references/examples/method/module-triad-neural-body.md +19 -0
- package/dist/skills/research-paper-writing/references/examples/method/neural-body-annotated-figure-text.md +66 -0
- package/dist/skills/research-paper-writing/references/examples/method/overview-template.md +30 -0
- package/dist/skills/research-paper-writing/references/examples/method/pre-writing-questions.md +17 -0
- package/dist/skills/research-paper-writing/references/examples/method/section-skeleton.md +9 -0
- package/dist/skills/research-paper-writing/references/examples/method-examples.md +24 -0
- package/dist/skills/research-paper-writing/references/experiments.md +102 -0
- package/dist/skills/research-paper-writing/references/introduction.md +408 -0
- package/dist/skills/research-paper-writing/references/method.md +196 -0
- package/dist/skills/research-paper-writing/references/paper-review.md +86 -0
- package/dist/skills/research-paper-writing/references/related-work.md +41 -0
- package/dist/skills/research-pipeline/SKILL.md +257 -0
- package/dist/skills/research-proposal/SKILL.md +573 -0
- package/dist/skills/research-proposal/assets/proposal_scaffold_en.md +323 -0
- package/dist/skills/research-proposal/assets/proposal_scaffold_zh.md +346 -0
- package/dist/skills/research-proposal/references/DOMAIN_TEMPLATES.md +518 -0
- package/dist/skills/research-proposal/references/LITERATURE_WORKFLOW.md +529 -0
- package/dist/skills/research-proposal/references/QUALITY_CHECKLIST.md +325 -0
- package/dist/skills/research-proposal/references/STRUCTURE_GUIDE.md +398 -0
- package/dist/skills/research-proposal/references/WRITING_STYLE_GUIDE.md +661 -0
- package/dist/skills/research-refine/SKILL.md +716 -0
- package/dist/skills/research-refine-pipeline/SKILL.md +186 -0
- package/dist/skills/research-review/SKILL.md +119 -0
- package/dist/skills/research-wiki/SKILL.md +373 -0
- package/dist/skills/resubmit-pipeline/SKILL.md +427 -0
- package/dist/skills/result-to-claim/SKILL.md +190 -0
- package/dist/skills/run-experiment/SKILL.md +227 -0
- package/dist/skills/scientific-figure-making/SKILL.md +38 -0
- package/dist/skills/scientific-figure-making/references/api.md +152 -0
- package/dist/skills/scientific-figure-making/references/common-patterns.md +74 -0
- package/dist/skills/scientific-figure-making/references/demos.md +30 -0
- package/dist/skills/scientific-figure-making/references/design-theory.md +138 -0
- package/dist/skills/scientific-figure-making/references/tutorials.md +135 -0
- package/dist/skills/semantic-scholar/SKILL.md +219 -0
- package/dist/skills/serverless-modal/SKILL.md +324 -0
- package/dist/skills/slides-polish/SKILL.md +563 -0
- package/dist/skills/specification-writing/SKILL.md +211 -0
- package/dist/skills/strategist/SKILL.md +670 -0
- package/dist/skills/strategist/references/quality_standards.md +336 -0
- package/dist/skills/strategist/references/search_strategy.md +459 -0
- package/dist/skills/strategist/scripts/evaluate_samples.py +300 -0
- package/dist/skills/strategist/scripts/gap_analysis.py +399 -0
- package/dist/skills/system-profile/SKILL.md +103 -0
- package/dist/skills/tech-paper-template/SKILL.md +192 -0
- package/dist/skills/tech-paper-template/references/consistency-checks.md +166 -0
- package/dist/skills/tech-paper-template/references/paper-types.md +127 -0
- package/dist/skills/tech-paper-template/references/thinking-template.md +194 -0
- package/dist/skills/tech-paper-template/references/worked-examples.md +124 -0
- package/dist/skills/training-check/SKILL.md +83 -0
- package/dist/skills/vast-gpu/SKILL.md +380 -0
- package/dist/skills/vibe-research-workflow/SKILL.md +189 -0
- package/dist/skills/vibe-research-workflow/references/behavior-guidelines.md +149 -0
- package/dist/skills/vibe-research-workflow/references/tool-selection.md +144 -0
- package/dist/skills/vibe-research-workflow/references/vibe-coding.md +154 -0
- package/dist/skills/vibe-research-workflow/references/vibe-figure.md +131 -0
- package/dist/skills/vibe-research-workflow/references/vibe-writing.md +181 -0
- package/dist/skills/wiki-enrich/SKILL.md +254 -0
- package/dist/skills/writing-systems-papers/SKILL.md +184 -0
- package/package.json +1 -1
|
@@ -0,0 +1,1268 @@
|
|
|
1
|
+
# llm-wiki-agent 产品文档
|
|
2
|
+
|
|
3
|
+
> 本文档是项目的**思路锚点**。当你(作者)或任何 AI 协作者思路断裂时,先读这份文档恢复上下文,再继续动手。
|
|
4
|
+
>
|
|
5
|
+
> **维护原则**:决策或功能定义变化时,**先改文档,再改代码**。文档与实现冲突时以文档为准。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 0. 这份文档怎么用
|
|
10
|
+
|
|
11
|
+
- 作者是 0 代码基础的产品设计者。开发由 AI 协作完成。
|
|
12
|
+
- 文档不写代码细节,只写**意图、约定、决策理由**。
|
|
13
|
+
- 每个章节相对独立,可以单独读。
|
|
14
|
+
- 章节末尾若有 ❗ 标记,表示"动手前一定要看这里"。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1. 产品定位
|
|
19
|
+
|
|
20
|
+
### 1.1 一句话定位
|
|
21
|
+
|
|
22
|
+
**本地运行的知识库工作台。以对话为中心,通过 `@` 引用知识库内容、`/` 调用工具能力,把对话沉淀为可读可分享的产物(笔记、HTML、PPT、Word 等)。**
|
|
23
|
+
|
|
24
|
+
### 1.2 核心场景
|
|
25
|
+
|
|
26
|
+
用户打开 llm-wiki-agent,看到自己的若干知识库列表,选一个进入。在对话框里和 agent 对话:
|
|
27
|
+
|
|
28
|
+
- agent 知道当前在哪个知识库里,可以基于该库内容回答问题
|
|
29
|
+
- 输入 `@` 弹出页面列表,引用具体 wiki 页面进 prompt
|
|
30
|
+
- 输入 `/` 弹出命令列表,调用工具(搜索、消化新素材、生成 HTML/PPT/Doc)
|
|
31
|
+
- 对话结束后一键"结晶"为新的 wiki 页面,写回知识库
|
|
32
|
+
- 产出物(HTML/PPT/Doc)在右抽屉直接预览,一键下载或分享
|
|
33
|
+
|
|
34
|
+
整个工具运行在本地,所有知识库数据是本地 markdown 文件,零云依赖。
|
|
35
|
+
|
|
36
|
+
### 1.3 与 llm-wiki-skill 的关系
|
|
37
|
+
|
|
38
|
+
| 维度 | llm-wiki-skill(旧) | llm-wiki-agent(新) |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| 形态 | Anthropic Skill | 独立 agent + web UI(未来 Tauri 桌面应用)|
|
|
41
|
+
| 宿主 | Claude Code / Codex / OpenClaw / Hermes | 自有 runtime(基于 pi-agent)|
|
|
42
|
+
| 数据 | 用户的 wiki 目录 | **完全沿用,结构不变** |
|
|
43
|
+
| 能力 | Skill 内的脚本 + 模板 | **全部复用**,agent 通过 pi-agent 原生 Skill 加载机制调用 |
|
|
44
|
+
|
|
45
|
+
**关键事实**:pi-agent 原生实现 Anthropic Skill 标准。llm-wiki-skill 一行不改就能被 agent 项目加载使用。
|
|
46
|
+
|
|
47
|
+
**长期愿景(ADR-16,已由阶段四落地)**:agent 形态并入 `llm-wiki` 仓库,作为 Skill 的升级版同时存在(保留 Skill 给纯 CLI 用户)。这次合并已在阶段四完成(见下);本节保留 ADR-16 的原始意图脉络。
|
|
48
|
+
|
|
49
|
+
**合并已完成(阶段四)**:原 agent 仓库已 `git subtree` 搬入主仓库子目录 `workbench/`(monorepo,不发版不宣布),图谱引擎 `@llm-wiki/graph-engine` 是第一块两端共享代码。终局形态为"一个产品、两扇门"——产品 = 知识库格式 + 素材管线 + 方法论;门一 = Skill(嵌入用户已有 harness),门二 = 工作台。详见 ADR-20。
|
|
50
|
+
|
|
51
|
+
### 1.4 这个项目"不是什么"
|
|
52
|
+
|
|
53
|
+
为防止范围漂移,明确以下边界:
|
|
54
|
+
|
|
55
|
+
- ❌ 不是云端 SaaS(不部署线上、不替用户付 API 费用、不做多用户)
|
|
56
|
+
- ❌ 不是 Obsidian/Logseq 替代品(不做手写笔记编辑器,wiki 由 AI 维护)
|
|
57
|
+
- ❌ 不是通用 ChatGPT(必须基于知识库语境)
|
|
58
|
+
- ❌ 不是 Skill 的"加壳版"(是独立 agent 产品,Skill 只是能力来源之一)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 2. 核心理念
|
|
63
|
+
|
|
64
|
+
### 2.1 Code is cheap,未来人视角
|
|
65
|
+
|
|
66
|
+
不为了"省事"做妥协的选型。技术栈按 5 年后仍说得通的标准来选。
|
|
67
|
+
|
|
68
|
+
### 2.2 桌面应用而非托管
|
|
69
|
+
|
|
70
|
+
托管 = 替用户烧 API 额度 = 必须先想清楚商业模式。本项目不走这条路。最终形态是 Tauri 打包的桌面应用。
|
|
71
|
+
|
|
72
|
+
### 2.3 Skill 即插即用
|
|
73
|
+
|
|
74
|
+
不重造轮子。任何符合 Anthropic Skill 标准的能力,丢到 skills 目录就生效:
|
|
75
|
+
|
|
76
|
+
- llm-wiki-skill(自家,知识库主线)
|
|
77
|
+
- [anthropics/skills](https://github.com/anthropics/skills)(17+ 个官方 Skill:docx / pdf / pptx / xlsx / doc-coauthoring / web-artifacts-builder / frontend-design / canvas-design / brand-guidelines / theme-factory / mcp-builder / claude-api / algorithmic-art / webapp-testing / skill-creator / internal-comms / slack-gif-creator)
|
|
78
|
+
- [pi-skills](https://github.com/badlogic/pi-skills)(web search、browser automation、transcription 等)
|
|
79
|
+
- 未来任何社区 Skill
|
|
80
|
+
|
|
81
|
+
### 2.4 对话中心
|
|
82
|
+
|
|
83
|
+
主屏永远是对话框。其他功能(图谱、库管理、产出预览)作为辅助面板,从对话发起或呼出。心智参考 Codex / Claude Desktop。
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 3. 架构总览
|
|
88
|
+
|
|
89
|
+
### 3.1 系统层次
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
┌─────────────────────────────────────────────┐
|
|
93
|
+
│ 前端 (Vite + React) │
|
|
94
|
+
│ 浏览器 / 未来 Tauri webview │
|
|
95
|
+
│ ├─ 对话主区 │
|
|
96
|
+
│ ├─ 侧栏(知识库列表 / 历史 / 图谱入口) │
|
|
97
|
+
│ ├─ 顶部状态条(当前知识库 / 模型 / 设置) │
|
|
98
|
+
│ ├─ 右抽屉(产出预览 / 引用查看) │
|
|
99
|
+
│ └─ @ / 自动补全 │
|
|
100
|
+
└────────────────────┬────────────────────────┘
|
|
101
|
+
│ SSE (事件流) + HTTP POST (命令)
|
|
102
|
+
┌────────────────────▼────────────────────────┐
|
|
103
|
+
│ 后端 (Node + Hono) │
|
|
104
|
+
│ └─ pi-coding-agent SDK │
|
|
105
|
+
│ ├─ AgentSession (对话/事件/会话管理) │
|
|
106
|
+
│ ├─ Extension (注入当前知识库等状态) │
|
|
107
|
+
│ └─ Skills 加载 │
|
|
108
|
+
│ ├─ llm-wiki-skill │
|
|
109
|
+
│ ├─ anthropics/skills │
|
|
110
|
+
│ └─ pi-skills │
|
|
111
|
+
└────────────────────┬────────────────────────┘
|
|
112
|
+
│
|
|
113
|
+
┌────────────────────▼────────────────────────┐
|
|
114
|
+
│ 本地文件系统 │
|
|
115
|
+
│ ├─ ~/llm-wiki/<name>/ (知识库默认根,沿用 Skill 结构)│
|
|
116
|
+
│ ├─ 外部知识库路径 (用户登记的任意路径) │
|
|
117
|
+
│ ├─ ~/.llm-wiki-agent/ │
|
|
118
|
+
│ │ ├─ config.json (UI 偏好/外部库登记) │
|
|
119
|
+
│ │ ├─ sessions/ │
|
|
120
|
+
│ │ ├─ skills/ │
|
|
121
|
+
│ │ └─ logs/ │
|
|
122
|
+
│ └─ ~/.pi/agent/auth.json (模型凭证,pi 管理)│
|
|
123
|
+
└─────────────────────────────────────────────┘
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 3.2 技术栈
|
|
127
|
+
|
|
128
|
+
| 层 | 选型 | 简要理由 |
|
|
129
|
+
|---|---|---|
|
|
130
|
+
| 前端框架 | **React + Vite** | AI 协作样本量最大;新手坑最少;Tauri 零迁移 |
|
|
131
|
+
| UI 组件库 | 暂定 [shadcn/ui](https://ui.shadcn.com/) | 不是黑盒、可读、复制粘贴风格、深色主题原生 |
|
|
132
|
+
| 后端框架 | **Hono** | 轻量、TS 友好、文档清晰 |
|
|
133
|
+
| Agent runtime | **@earendil-works/pi-coding-agent** SDK | 原生 Skill 支持;事件流;多 provider |
|
|
134
|
+
| 通信 | **SSE + HTTP POST** | agent→UI 单向流,SSE 足够;WebSocket 过度 |
|
|
135
|
+
| 数据 | 本地 markdown + JSON | 无服务器;Obsidian 兼容 |
|
|
136
|
+
| 桌面打包(未来) | **Tauri** | 用系统 webview + Rust 后端;二进制和内存占用通常显著低于 Electron(5-30 MB vs 100+ MB) |
|
|
137
|
+
| 包管理 | npm(统一)| 不混用 pnpm/bun,避免新手版本混乱 |
|
|
138
|
+
| Node 版本管理 | **mise** 或 nvm | mise 是多语言版本管理(含 Node);锁版本至少 `>=22.19.0`(pi-coding-agent 0.75.x 的最低要求) |
|
|
139
|
+
| Markdown 渲染(阶段二+)| **react-markdown** ^9 + **remark-gfm** ^4 | 生态最稳、类型完备、GFM 表格/任务列表/自动链接;shadcn 生态常用 |
|
|
140
|
+
| 命令/补全菜单(阶段二+)| **cmdk** ^1 | shadcn `<Command>` 底层;键盘导航与 a11y 完备;同时承载 `/` 命令菜单和 `@` 引用菜单 |
|
|
141
|
+
|
|
142
|
+
### 3.3 关键流程:一次对话发生了什么
|
|
143
|
+
|
|
144
|
+
> 下列路径(`/api/refs` 等)为**建议命名**,最终以实现为准。
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
1. 用户在对话框输入文本(可能含 @页面 或 /命令)
|
|
148
|
+
2. 前端检测到 @ → 调 /api/refs 拿当前库页面列表 → 弹出菜单 → 用户选中
|
|
149
|
+
3. 前端检测到 / → 调 /api/commands 拿已加载命令 → 弹出菜单 → 用户选中
|
|
150
|
+
4. 前端 POST /api/prompt,body 是展开后的完整文本
|
|
151
|
+
5. 后端调用 session.prompt(text)
|
|
152
|
+
6. session 通过 subscribe 推 agent 事件
|
|
153
|
+
7. 后端把事件 SSE 推给前端 /api/events
|
|
154
|
+
8. 前端按事件类型渲染(文本流、工具调用、引用预览…)
|
|
155
|
+
9. 用户可选触发 /sediment 把本次对话沉淀为 wiki 页面
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
❗ **关键点**:当前知识库的"上下文"不是通过 prompt 字符串拼接传递,而是通过 pi-agent 的 **Extension** 注入到 session state 里。这是干净做法。具体见 ADR-7。
|
|
159
|
+
|
|
160
|
+
### 3.4 pi-agent 的使用方式
|
|
161
|
+
|
|
162
|
+
**结论:pi-agent 作为 npm 依赖引入,不 clone 源码,不做 fork**。
|
|
163
|
+
|
|
164
|
+
具体含义:
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
llm-wiki-agent/ ← 你的仓库
|
|
168
|
+
├── package.json ← 这里声明 "@earendil-works/pi-coding-agent": "^x.y.z"
|
|
169
|
+
├── node_modules/
|
|
170
|
+
│ └── @earendil-works/
|
|
171
|
+
│ └── pi-coding-agent/ ← pi 源码自动安装在这里,只读,不改
|
|
172
|
+
├── server/ ← 你写的后端
|
|
173
|
+
│ ├── index.ts ← Hono 起服务
|
|
174
|
+
│ ├── agent.ts ← import { createAgentSession } from '@earendil-works/pi-coding-agent'
|
|
175
|
+
│ └── extensions/ ← 你写的 Extension
|
|
176
|
+
└── web/ ← 你写的前端
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
你"写"的代码:
|
|
180
|
+
|
|
181
|
+
1. 后端把 pi SDK 包装成 HTTP/SSE 接口
|
|
182
|
+
2. 一个或多个 Extension(注入"当前知识库"等应用状态)
|
|
183
|
+
3. 前端 UI
|
|
184
|
+
|
|
185
|
+
你"用"但不写的代码(全在 npm 包里):
|
|
186
|
+
|
|
187
|
+
- agent runtime、Skill 加载、事件流、模型管理、会话持久化
|
|
188
|
+
|
|
189
|
+
升级 pi:改 `package.json` 里的版本号,`npm install` 重跑。
|
|
190
|
+
|
|
191
|
+
**Extension 注入方式**:pi-coding-agent CLI 会自动发现 `~/.pi/agent/extensions/*.ts` 下的全局 extension。**我们是 SDK 用户,不依赖那个机制**——而是把 extension 代码放在自己仓库的 `server/extensions/` 下,通过 SDK 暴露的 `bindExtensions()` 或自定义 `ResourceLoader` 显式注入 session。这样 extension 跟着我们项目走,不污染用户的 `~/.pi/`。
|
|
192
|
+
|
|
193
|
+
❗ 永远**不要**直接修改 `node_modules/` 里的 pi 源码。万一极端情况需要 patch(99% 用不到),用 `patch-package` 做局部补丁,保持升级路径干净。
|
|
194
|
+
|
|
195
|
+
❗ pi-coding-agent 0.75.x 要求 **Node `>=22.19.0`**。用 mise/nvm 锁定到合适版本,避免系统 Node 太旧。
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 4. 功能阶段路线
|
|
200
|
+
|
|
201
|
+
每个阶段:**目标 → 范围 → 不包含 → 验收**。验收不过不进下一阶段。
|
|
202
|
+
|
|
203
|
+
### 阶段一:主干打通(最小可用) ✅ 已完成 2026-05-26
|
|
204
|
+
|
|
205
|
+
**目标**:验证"前端 ↔ 后端 ↔ pi-agent ↔ Skill ↔ 文件系统"全链路。
|
|
206
|
+
|
|
207
|
+
**范围**:
|
|
208
|
+
- 一行命令拉起本地服务(`npm run dev` 启动后端 + 前端)
|
|
209
|
+
- 浏览器打开 `localhost:xxxx`,看到知识库列表
|
|
210
|
+
- 自动扫描 `~/llm-wiki/` 下含 `.wiki-schema.md` 的子目录
|
|
211
|
+
- 支持手动"添加现有库"指向任意路径(如 `~/Documents/AI学习知识库`)
|
|
212
|
+
- 注册过的库存在 `~/.llm-wiki-agent/config.json`
|
|
213
|
+
- 点击一个知识库进入对话界面
|
|
214
|
+
- 顶部状态条显示当前知识库名
|
|
215
|
+
- 同库内支持多个并行对话,侧栏列出,"+ 新对话"按钮在顶部
|
|
216
|
+
- 切库自动保存当前对话,打开目标库最近活跃的对话
|
|
217
|
+
- 对话框可输入,流式接收 agent 回复
|
|
218
|
+
- agent 通过 Extension 知道当前知识库路径
|
|
219
|
+
- 对话历史持久化(pi-agent SDK 原生功能)
|
|
220
|
+
|
|
221
|
+
**不包含**:`@` 补全、`/` 命令、图谱、产出能力、消化新素材、新建知识库 UI。
|
|
222
|
+
|
|
223
|
+
**验收标准**:
|
|
224
|
+
1. 在 "AI学习知识库" 里问"这个库里有哪些主题",agent 调用 `read` 工具读 `index.md`,给出准确回答
|
|
225
|
+
2. 切到另一个库再问,对话上下文完全切换
|
|
226
|
+
3. 同一库内开两个对话,互不污染
|
|
227
|
+
4. 关闭浏览器再打开,自动选中最近对话,历史完整
|
|
228
|
+
|
|
229
|
+
**完成情况** ✅ 2026-05-26(最终 commit `dd021bc`)
|
|
230
|
+
|
|
231
|
+
- 8 个 step commit + 2 个 review 修补 commit,详见 §10 进度追踪
|
|
232
|
+
- 范围全部交付;4 项验收标准实测全通(验收 1 实测中 agent 用 `list_knowledge_base_pages` Extension 工具回答,效果等价于读 `index.md`,更精准)
|
|
233
|
+
- **接受的妥协(不阻塞阶段二)**:
|
|
234
|
+
- §5.2 顶部 "⚙ 设置" 按钮仅占位(disabled + tooltip)—— 完整设置面板在阶段二
|
|
235
|
+
- §5.1 侧栏底部"图谱入口"未实现 —— 作者要重新构思图谱设计,推迟到阶段四
|
|
236
|
+
- 默认模型不强制 Sonnet,沿用 pi-agent 用户设置(见 TBD-2)
|
|
237
|
+
- **启动 & 运行速查**(compact 后从这里恢复上下文):
|
|
238
|
+
|
|
239
|
+
| 维度 | 值 |
|
|
240
|
+
|---|---|
|
|
241
|
+
| 一行启动 | `npm run dev`(从仓库根;用 `concurrently` 同时起前后端)|
|
|
242
|
+
| 后端端口 | `8787`(`server/src/index.ts`,Hono)|
|
|
243
|
+
| 前端端口 | `5180`(`web/vite.config.ts`,`strictPort: true`,冲突直接报错而非漂移)|
|
|
244
|
+
| 启动耗时 | ~2-5s(pi ResourceLoader + `bootstrapFromConfig` 自动恢复)|
|
|
245
|
+
| 默认模型 | 由 `~/.pi/agent/settings.json` 决定(不由本项目强制;作者当前为 `zai/glm-5.1`)|
|
|
246
|
+
| 自动恢复 | `selectKb` 写 `~/.llm-wiki-agent/config.json` 的 `lastUsedKbPath`,server 启动 `await bootstrapFromConfig()` |
|
|
247
|
+
| 知识库 | 默认根 `~/llm-wiki/` + 外部登记(`config.externalKnowledgeBases[]`)|
|
|
248
|
+
| 会话目录 | `~/.llm-wiki-agent/sessions/<sha256-of-kb-path>/*.jsonl`(pi `SessionManager` 管理)|
|
|
249
|
+
| Extension 工具 | `current_knowledge_base()` / `list_knowledge_base_pages()`(仅这俩,阶段二补 `@`/`/`/`/sediment` 等)|
|
|
250
|
+
| 已知 endpoints | 13 个,列表见 `server/src/index.ts` 顶部注释 |
|
|
251
|
+
| Node 版本要求 | `>=22.19.0`(pi-coding-agent 0.75.x 硬要求,仓库根 `.mise.toml` / `.nvmrc` 锁定)|
|
|
252
|
+
|
|
253
|
+
### 阶段二:核心循环(@、/、结晶、消化)✅ 已完成 2026-05-27
|
|
254
|
+
|
|
255
|
+
**目标**:让"对话 → 沉淀"形成闭环。
|
|
256
|
+
|
|
257
|
+
**范围**:
|
|
258
|
+
- `@` 补全菜单:弹出当前库的页面/实体/主题列表,选中后插入 wiki 链接
|
|
259
|
+
- `/` 命令菜单:列出所有已加载 Skill 命令 + 内置命令
|
|
260
|
+
- 内置命令 `/sediment`:把当前对话或选中片段沉淀为 `wiki/synthesis/sessions/` 下的页面
|
|
261
|
+
- 内置命令 `/new-wiki`:app 内新建知识库(输入名字 + 研究方向 → 调用 llm-wiki-skill 的 init 流程 → 在 `~/llm-wiki/` 下生成完整目录)
|
|
262
|
+
- 引用预览:对话里出现的 wiki 链接可点击,右抽屉打开该页面
|
|
263
|
+
- 消化新素材:把链接或文件路径丢给 agent → 触发 llm-wiki-skill 的消化流程
|
|
264
|
+
- 设置面板 UI(三层认证 + 偏好):
|
|
265
|
+
- 登录方式区:检测 pi CLI auth.json 状态 / 填 API key(写入 pi 的 auth.json)/ 显示环境变量状态
|
|
266
|
+
- 默认模型、UI 偏好、知识库根目录、外部库管理(添加/移除)
|
|
267
|
+
|
|
268
|
+
**验收标准**:完整跑通——
|
|
269
|
+
1. 在 app 内点"+ 新建知识库",输入名字和方向 → 自动创建 → 出现在列表里
|
|
270
|
+
2. 丢一篇文章链接 → agent 消化进库 → 在对话里基于这篇讨论 → 一键结晶为新页面 → 在 `wiki/synthesis/sessions/` 目录里能看到新文件
|
|
271
|
+
3. 在 UI 里填一个 Anthropic API key → 测试连接成功 → key 出现在 `~/.pi/agent/auth.json`,未泄露到 `~/.llm-wiki-agent/`
|
|
272
|
+
|
|
273
|
+
### 阶段三:产出能力(产品亮点)✅ 已完成 2026-05-27
|
|
274
|
+
|
|
275
|
+
**目标**:把"内容产出"做成视觉冲击力强的功能,作为产品宣传点和小白吸引力来源。
|
|
276
|
+
|
|
277
|
+
**范围**:
|
|
278
|
+
- 挂载 anthropics/skills 中的产出类 Skill(docx / pdf / pptx / xlsx / web-artifacts-builder 等)
|
|
279
|
+
- 挂载或自建 HTML 产出 Skill(生成单文件分享 HTML)
|
|
280
|
+
- 对话中可要求 "把这次讨论做成 PPT" / "导出为 docx" / "生成分享 HTML"
|
|
281
|
+
- 右抽屉支持预览:
|
|
282
|
+
- HTML 直接 iframe 展示
|
|
283
|
+
- PPT 用浏览器内 PPTX 渲染库(如 PPTXjs 或类似方案,**具体库阶段三选型时再定**)
|
|
284
|
+
- docx 显示元数据 + 下载按钮(不强求浏览器内渲染)
|
|
285
|
+
- 一键导出到本地下载目录
|
|
286
|
+
|
|
287
|
+
**验收标准**:一次对话能产出 HTML、PPT、docx 三种格式,且 UI 内可直接预览或下载。
|
|
288
|
+
|
|
289
|
+
### 阶段 3.5:导航 UX 重构 + 多模型子代理批量消化 ✅ 已完成 2026-05-27
|
|
290
|
+
|
|
291
|
+
**背景**:阶段 1-3 完成后作者实际使用 app 发现两类痛点——
|
|
292
|
+
1. **导航 UX 反直觉**:侧栏强行把 KB 分成默认/外部两类(与"KB = 项目"心智冲突)、对话挂在侧栏中间看不出从属、"添加现有库"靠手输绝对路径常常失败、拖入非 wiki 目录直接报错
|
|
293
|
+
2. **批量消化效率低**:阶段二的消化是"一次喂一篇";TBD-2"多模型路由"也一直挂着没有承载场景——批量消化正好是
|
|
294
|
+
|
|
295
|
+
**目标**:
|
|
296
|
+
1. **导航统一**:侧栏一栏到底、KB 可展开对话子树、拖拽优先添加路径、非 wiki 目录提供"一键初始化 + 批量消化"路径
|
|
297
|
+
2. **子代理批量消化**:基于 pi SDK 的 `createAgentSession` + 多模型注册落地"消化角色 → cheap / 聊天角色 → main"双角色路由;用一个 30 行的并发控制函数调度 N 个子代理并行处理 N 个文件,通过 SSE 推送进度
|
|
298
|
+
|
|
299
|
+
**范围**(7 step):
|
|
300
|
+
- 侧栏重构:统一 KB 列表 + 折叠对话子树(去 default/external 分隔)
|
|
301
|
+
- 拖拽 + 输入框双通道:HTML5 drag 先探测能否拿到真实路径,输入框兜底 + inspect 端点判定是不是 wiki
|
|
302
|
+
- 非 wiki 目录初始化引导:弹窗提示 + 就地初始化 `.wiki-schema.md` + `index.md`
|
|
303
|
+
- 多模型双角色:`config.json` 新增 `modelRoles: { main, digest }` + 设置面板选择
|
|
304
|
+
- 后端子代理批量消化框架:30 行 `mapWithConcurrencyLimit` + `SessionManager.inMemory()` + 共享 `authStorage`/`modelRegistry`
|
|
305
|
+
- 批量消化 UI + SSE 进度推送:浮窗实时显示每个子代理的"排队/进行中/完成/失败"
|
|
306
|
+
- 总验收 + UX 体感打磨
|
|
307
|
+
|
|
308
|
+
**不包含**:图谱(阶段四)、Tauri 打包(阶段五)、媒体创作 / 浏览器扩展(阶段后规划)、子代理嵌套 / 工作树隔离(omp 那一套)
|
|
309
|
+
|
|
310
|
+
**验收标准**(5 条):
|
|
311
|
+
1. **侧栏统一**:KB 列表一栏到底无 default/external 分隔;点当前 KB 名可展开/收起对话子树,点未选中 KB 会切换并展开;外部 KB 用文字 badge 而非分区
|
|
312
|
+
2. **拖拽添加**:从 Finder 拖文件夹到 dialog 拖拽区;若浏览器暴露真实 `file://`,路径自动填入输入框;若不暴露,UI 明确提示用户粘贴路径(不立即提交,给用户最后修改机会)
|
|
313
|
+
3. **非 wiki 兜底**:拖入无 `.wiki-schema.md` 的目录,弹"是否初始化并批量消化"对话框;选"是"→ 后台跑 init + 子代理并行消化
|
|
314
|
+
4. **多模型双角色**:设置面板新增"模型分配"区,main / digest 两个角色各自的 provider+model;digest 写入 `config.json` 后对新批量消化立即生效,main 写入后当前主对话立即重载并使用该模型
|
|
315
|
+
5. **并发消化**:批量消化 10 个 `.md` 文件能看到 ≥3 个子代理同时跑(默认并发=3),SSE 实时推送状态,全部完成后右抽屉刷新出新增的 wiki 页面
|
|
316
|
+
|
|
317
|
+
**完成情况**:
|
|
318
|
+
- 侧栏已统一为一栏 KB 列表,当前 KB 可点击展开/收起对话子树,外部库用 badge 标记
|
|
319
|
+
- 添加现有库支持拖拽探测、路径输入、目录检查;非 wiki 目录可就地初始化并可接着批量消化
|
|
320
|
+
- 设置面板新增 main / digest 角色选择;digest 角色用于批量消化,main 角色用于主对话并在切换后立即刷新生效
|
|
321
|
+
- 批量消化使用 pi SDK 原生 in-memory 子会话,并发档位为 1 / 3 / 5,通过 SSE 推送进度
|
|
322
|
+
- **新增依赖**:无
|
|
323
|
+
|
|
324
|
+
### 阶段四:monorepo 合并 + 图谱活地图 ✅ 已完成 2026-06-12
|
|
325
|
+
|
|
326
|
+
**背景**:两条线汇合——(1) 战略上"一个产品、两扇门"已定,ADR-16 的合并需要启动时机;(2) 图谱引擎是两端共享的第一块代码,共享代码出现即合并时机成熟的信号。原"图谱集成"目标升级为"图谱活地图":图谱后面站着 agent,这是所有竞品图谱(只能看不能问)给不了的。
|
|
327
|
+
|
|
328
|
+
**目标**:
|
|
329
|
+
1. **monorepo 合并(工程部分)**:本仓库 `git subtree` 整体搬入主仓库 `workbench/`,引擎落 `packages/graph-engine/`。不发版、不改 README、不对外宣布(品牌动作留给后续阶段)
|
|
330
|
+
2. **图谱活地图**:共享引擎双宿主(工作台 React / Skill 离线 HTML),工作台获得活模拟 + 钉扎 + 选区提问 + 生长动画;Skill 离线 HTML 最后一步切换引擎产物,老用户白拿升级
|
|
331
|
+
|
|
332
|
+
**实施结果**:阶段四已在主仓库 `stage-4` 分支完成,8 个 Step 全部落地。总验收的自动化检查已通过;视觉一致性、深色观感和拖动手感按设计文档要求保留截图/参数证据,交由验收人做最终主观判断。
|
|
333
|
+
|
|
334
|
+
**范围**(8 Step):
|
|
335
|
+
- Step 0:monorepo 搬家 + workspace 根 + 全链路冒烟
|
|
336
|
+
- Step 1:引擎包骨架 + helpers 纯函数 TS 化 + 测试迁移("新骨架、旧器官"的 A 级资产)
|
|
337
|
+
- Step 2:工作台图谱视图静态复现(安全网基线)+ 山水/墨夜主题 token
|
|
338
|
+
- Step 3:活模拟 + 钉扎(松手即钉/双击解钉)+ 持久化(`.wiki-graph-layout.json`,只存钉的、路径为 key)
|
|
339
|
+
- Step 4:选区系统(结构化四式,砍自由套索)+ 对话联动(选区 = 批量 `@`)
|
|
340
|
+
- Step 5:文件监听 + 全量重算 + diff 生长动画(diff 队列,图谱可见时消费)
|
|
341
|
+
- Step 6:`build-graph-html.sh` 切换引擎产物,旧 graph-wash 模板退役
|
|
342
|
+
- Step 7:总验收 + 墨夜主题打磨
|
|
343
|
+
|
|
344
|
+
**不包含**:仓库改名 / 对外发布、Tauri 打包(推迟到工作台有真实外部用户后)、跨库图谱、自由套索、增量图计算、主题商店(完整"明确不做清单"见设计文档 §8)。
|
|
345
|
+
|
|
346
|
+
**验收标准**(7 条,细则见设计文档 §6):
|
|
347
|
+
1. 主仓库根一行 `npm run dev` 起工作台,Skill 主线测试全绿,两边互不破坏
|
|
348
|
+
2. 工作台图谱与旧版离线 HTML 视觉一致(静态基线截图存档)
|
|
349
|
+
3. 钉扎:拖动让位流畅、松手即钉、重启还原、Obsidian 旁路修改不破坏
|
|
350
|
+
4. 选区四式可用,动作随选区性质变化;"两簇为何没联系 → agent 建链 → 重算后颜色真变"全闭环
|
|
351
|
+
5. 批量消化后打开图谱补播生长动画;Obsidian 手改 ~5s 内自动反映
|
|
352
|
+
6. 离线 HTML 新产物双击可用、钉位生效、无提问按钮(capabilities 注入生效)
|
|
353
|
+
7. 工作台浅/深切换图谱跟随山水/墨夜
|
|
354
|
+
|
|
355
|
+
### 阶段 4.5:图谱可用性收尾 ✅ 已合入 2026-06-14
|
|
356
|
+
|
|
357
|
+
**背景**:阶段四交付后作者实测暴露五类问题(画布无缩放平移、点击语义被选区提问独占致阅读路径消失、Shift 多选不可发现、无搜索/图例、节点默认卡片过胖)+ 阶段四验收对离线 HTML 功能减配的裁决(补搜索与社区聚焦;学习系统三件套不做,待真实使用后按工作台语境重新设计)。与阶段 3.5 同型:真实使用驱动的收尾阶段。
|
|
358
|
+
|
|
359
|
+
**范围**(优先级序):
|
|
360
|
+
- P0 画布导航:指针中心滚轮缩放 / 空白拖拽平移 / 双击回全图 / 小地图联动(引擎层,两端同享)
|
|
361
|
+
- P0 点击语义重构:"点击即阅读,选区即升级"——单击 = 右抽屉阅读态,选区悬浮窗取消,抽屉一容器两状态;动作映射表补"单节点"行并修复 unlinked 误触发(修订 stage-4 D6)
|
|
362
|
+
- P1 图谱搜索(Cmd+F,两端);社区聚焦列表兼图例(两端)
|
|
363
|
+
- P1 Shift 多选失效排查 + 可发现性提示
|
|
364
|
+
- P2 节点默认态瘦身 + hover 预览卡(一行标题 + 类型色条;类型/权重/摘要移入悬停——预览卡显示正文首段摘要,配套补偿瘦身)
|
|
365
|
+
- 抽屉阅读态瘦身定稿:去学习队列/学习路径/札记笔记/置信度列表/邻居列表,摘要迁移至 hover 预览卡;保留收纳"查看原文";原则——**抽屉负责内容,图谱负责关系,派生信息不重复**
|
|
366
|
+
|
|
367
|
+
**明确不做**:学习系统三件套、抽屉历史栈、缩放惯性、hover 摘要 tooltip、移动端触控全套。
|
|
368
|
+
|
|
369
|
+
### 阶段 4.6:图谱演进第一批(看清关系 + 层层聚焦 + 控制工具条)✅ 已完成 2026-06-14
|
|
370
|
+
|
|
371
|
+
**背景**:4.5 收尾后推进「图谱演进候选池」。spark 脑暴把候选池按"就绪度"(而非"高价值低成本")重排,锁定方向 = **日常可用性**(让在用的人更顺手),美观 / 惊艳 demo 后移。详见 [docs/graph-evolution-1-design.md](docs/graph-evolution-1-design.md)。
|
|
372
|
+
|
|
373
|
+
**当前状态**:已落地并通过总验收。工作台与离线 HTML 同享顶部工具条、社区聚焦、类型筛选、关系边图例;关系边按关系类型着色、按置信度虚实;离线 HTML 不提供提问入口。
|
|
374
|
+
|
|
375
|
+
**范围**:
|
|
376
|
+
- G1-1 关系类型上边(数据管线补齐关系类型 + 置信度;颜色 = 关系类型、矛盾避 ENTITY 红;虚实 = 置信度;全局低权重、聚焦才完整呈现)
|
|
377
|
+
- G1-2 递进聚焦(点社区进聚焦视图 → 点节点高亮 + 阅读)+ 类型筛选
|
|
378
|
+
- G1-3 顶部控制工具条取代左上角常驻浮层
|
|
379
|
+
- G1-4 默认收起 + 半透明
|
|
380
|
+
- G1-5 双宿主分工(离线 HTML 同享,无 onAsk 提问)
|
|
381
|
+
|
|
382
|
+
**明确不做**:路径查找 + 讲解、lint 上图、导出美图 / 工作台实时美观、时间筛选(缺 mtime)、图谱增强检索(移交 ADR-19)、远期池(嵌入布局 / LLM 推断边 / AI 摘要)。
|
|
383
|
+
|
|
384
|
+
**实施**:L 级 phased plan 已完成(P0 基线+完整边契约+web test 入口 → P1 工具条 → P2 聚焦 → P3 关系边 → P4 验收),分支 `feat/graph-evolution-1`,Codex `/goal` 执行(plan/progress 本地不入库,沿用 planning-docs local-only 惯例)。
|
|
385
|
+
|
|
386
|
+
**与既有决策的关系**:修订 ADR-21 / D4.5-6(社区交互:选中高亮 → 进入聚焦视图;左上浮层 → 顶部工具条);关系边可视化记录为 ADR-23。
|
|
387
|
+
|
|
388
|
+
### 阶段五:桌面应用打包(Tauri)
|
|
389
|
+
|
|
390
|
+
**目标**:跨平台桌面应用安装包。
|
|
391
|
+
|
|
392
|
+
**范围**:
|
|
393
|
+
- Tauri 项目初始化
|
|
394
|
+
- 后端嵌入 Tauri sidecar 进程
|
|
395
|
+
- macOS / Windows / Linux 三平台构建
|
|
396
|
+
- 安装包自动化产出(CI 可选)
|
|
397
|
+
- 安装后开箱即用,无需用户配 Node 环境(API key 仍由用户填)
|
|
398
|
+
|
|
399
|
+
**验收标准**:双击 .dmg / .msi / .AppImage 安装即可使用。
|
|
400
|
+
|
|
401
|
+
### 阶段后规划(暂不锁定,记录想法)
|
|
402
|
+
|
|
403
|
+
- 浏览器扩展:当前页面一键消化进库
|
|
404
|
+
- 多模型路由:按任务类型自动切(消化用便宜模型、深度对话用强模型),与 pi-agent provider 体系打通
|
|
405
|
+
- 全局快捷键 / 系统托盘
|
|
406
|
+
- 主题与自定义样式
|
|
407
|
+
- 多端同步(如果未来真有需求)
|
|
408
|
+
|
|
409
|
+
#### 图谱演进候选池(2026-06-13 全景分析沉淀;首批已落地为「阶段 4.6」,见上文 §阶段 4.6)
|
|
410
|
+
|
|
411
|
+
> 来源:阶段 4.5 设计期间的行业全景讨论。统领判断——行业两条尸检教训:**全局图是营销图、局部图才是工具**(Roam 弱化图谱、TheBrain 靠局部视图活了 20 年);**只能看不能动的图谱是玩具**(Obsidian 图谱日活极低的根因)。llm-wiki 已踩对第二条的解法(图谱可问,全行业独一份),第一条靠下面的"局部图"接住。
|
|
412
|
+
|
|
413
|
+
**推荐切片(按就绪度推进;首批 4.6 已完成日常可用性主线)**:
|
|
414
|
+
|
|
415
|
+
| 项 | 一句话 | 为什么值得 |
|
|
416
|
+
|---|---|---|
|
|
417
|
+
| 局部图模式 | ✅ 首批已落地:点社区进入聚焦视图,只显示该社区节点;点节点高亮并阅读 | 接住教训一:大库日常视图应是局部图;与"+邻居"选区天然衔接 |
|
|
418
|
+
| 路径查找 + agent 讲解 | 选两节点高亮最短路,**agent 沿路径讲故事** | 独有赛道杀手级演示:Neo4j 只能画路径,我们能讲 |
|
|
419
|
+
| lint 健康上图 | 孤岛/断链/上帝节点图上标注 + 一键让 agent 修 | stage-4 终局愿景一直没排期;lint 能力现成只差可视化 |
|
|
420
|
+
| 关系类型上边 | ✅ 首批已落地(颜色维待数据):按关系词汇表给边颜色 + 按置信度给边虚实,"矛盾"边避开 ENTITY 红。**置信度虚实维已真实生效;关系类型颜色维当前几乎全默认"依赖"=单色,待消化管线产出 `relation` 注释(见远期池)** | 关系词汇表与置信度体系已有;4.6 补齐契约与上色管道 |
|
|
421
|
+
| 类型/时间过滤器 | ✅ 类型已落地;⏸ 时间筛选二期(缺 mtime) | 轻量;Obsidian 式语法属于过度设计 |
|
|
422
|
+
| 导出美图 | 当前视角一键导出带主题样式的 PNG/SVG | 数字山水是最强传播资产,用户发图 = 免费获客,成本极低 |
|
|
423
|
+
| 图谱增强检索(后端暗改) | ↪ 已移交 ADR-19 检索线,不占图谱候选池决策位 | GraphRAG 核心思路:图谱不只给人看,是 agent 的检索结构;半天级工作量 |
|
|
424
|
+
|
|
425
|
+
**远期池(依赖消化管线升级,同一批做)**:
|
|
426
|
+
- LLM 推断边:消化时让模型判断该页与库内哪些页相关,带置信度入图(EXTRACTED/INFERRED 体系现成承接;同名竞品与 GraphRAG 的两阶段建边)
|
|
427
|
+
- AI 真摘要:消化时为每页生成一两句摘要写入页面元数据,hover 预览卡与社区摘要自动升级
|
|
428
|
+
- 社区摘要 hover:悬停团块显示这一簇的一句话摘要(GraphRAG 分层社区摘要思路)
|
|
429
|
+
- 嵌入布局(第二布局,不替代力导向):页面 embedding 降维投影,"位置即语义";与力导向的差异本身是洞察——**语义很近却没连线 = 待建链盲区**,将来可成独有功能
|
|
430
|
+
- 消化时提取关系类型注释(`relation_type`):4.6 已铺好边数据契约与上色管道,但现有 wiki 页面只有 `<!-- confidence -->` 注释、无 `<!-- relation: 矛盾 -->` 注释,故 **G1-1 颜色维当前几乎全默认"依赖"= 单色**(置信度虚实维已真实生效)。消化时让模型判定关系类型并写入注释,即可点亮颜色维(与 LLM 推断边 / AI 真摘要同属管线升级,同一批做)
|
|
431
|
+
|
|
432
|
+
**明确不做**:
|
|
433
|
+
- ❌ 3D 图谱(行业著名伪需求,旋转酷炫三分钟,阅读效率负提升)
|
|
434
|
+
- ❌ 白板化 / 手动布局全图(Heptabase 路线;钉扎已是其轻量正解)
|
|
435
|
+
- ❌ WebGL 渲染重写(个人库 99% 在千节点内;语义缩放+局部图让视口内永远只有几十个可读节点,比换渲染器治本;且会杀死手绘质感。R6 的 canvas 后门保留即可)
|
|
436
|
+
|
|
437
|
+
**竞品技术参考存档**:渲染梯子 DOM(<500)→Canvas(<5k)→WebGL(50k+,Obsidian 用 Pixi);嵌入布局参考 Nomic Atlas;检索架构参考 Microsoft GraphRAG(社区检测 + 分层摘要,与 llm-wiki 的社区/digest 理念同构);局部视图参考 TheBrain plex;语义相似边参考 Connected Papers。
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## 5. UI 设计原则
|
|
442
|
+
|
|
443
|
+
### 5.1 三栏布局
|
|
444
|
+
|
|
445
|
+
```
|
|
446
|
+
[ 侧栏 270px / 52px 窄栏 ] [ 主区域 自适应 ] [ 右抽屉 0 / 可拖动宽度 / 全屏 ]
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
- **侧栏**默认显示:
|
|
450
|
+
- 知识库列表(顶部,含"+ 新建知识库"按钮)
|
|
451
|
+
- 当前库的对话列表(中部,含"+ 新对话"按钮,按最近活跃排序)
|
|
452
|
+
- 图谱入口、设置入口(底部)
|
|
453
|
+
- **侧栏可折叠为窄图标栏**:保留展开、当前知识库、刷新、新建、添加、设置入口;图标悬停显示文字提示。该状态保存在本机。
|
|
454
|
+
- **主区域**永远是对话(除非用户主动切换到图谱)
|
|
455
|
+
- **右抽屉**默认隐藏,呼出场景:产物预览、引用页面查看、设置面板。右抽屉宽度可拖动调整,双击拖动边缘恢复默认宽度;宽度保存在本机。小屏幕下不启用拖动,继续占满屏幕。
|
|
456
|
+
|
|
457
|
+
### 5.1.1 会话与切换行为
|
|
458
|
+
|
|
459
|
+
- 会话**绑定到知识库**:每个库有独立对话列表,不允许跨库会话
|
|
460
|
+
- 同库内**多个并行对话**:用户随时"+ 新对话"开新线程
|
|
461
|
+
- 切换知识库:当前对话自动保存 → 切到目标库 → 自动选中目标库最近活跃的对话
|
|
462
|
+
- App 启动:自动选中"最后一次使用的库 + 该库内最近活跃的对话"
|
|
463
|
+
- 全程自动保存,无"是否保存"弹窗
|
|
464
|
+
|
|
465
|
+
### 5.2 顶部状态条
|
|
466
|
+
|
|
467
|
+
```
|
|
468
|
+
[📚 当前知识库 ▼] [🤖 模型 ▼] [⚙ 设置]
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
永远可见,回答"我在哪里"。
|
|
472
|
+
|
|
473
|
+
### 5.3 `@` 与 `/` 的设计契约
|
|
474
|
+
|
|
475
|
+
| 符号 | 语义 | 弹出内容 | 选中后 |
|
|
476
|
+
|---|---|---|---|
|
|
477
|
+
| `@` | **引用** | 当前知识库的页面 / 实体 / 主题 | 在输入框插入 wiki 链接,agent 看到时会读这页 |
|
|
478
|
+
| `/` | **执行** | 所有已加载 Skill 命令 + 内置命令 | 在输入框插入命令调用,agent 收到时执行 |
|
|
479
|
+
|
|
480
|
+
两者必须有清晰区分。**`@` 是"找内容",`/` 是"做事情"**,永远不要混用。
|
|
481
|
+
|
|
482
|
+
### 5.4 视觉风格
|
|
483
|
+
|
|
484
|
+
- 默认深色模式,支持浅色 / 深色切换,用户选择只保存在本机
|
|
485
|
+
- 等宽字体:JetBrains Mono / SF Mono
|
|
486
|
+
- 中文 UI 字体:系统字体(San Francisco / Microsoft YaHei / PingFang)
|
|
487
|
+
- 工具感优先,不追求"产品级精致"。参考 Codex / Claude Desktop / Linear
|
|
488
|
+
- 阶段 3.5 收尾吸收本地 UI 原型:统一侧栏、状态条、对话区、输入区、菜单、抽屉和设置面板的工作台视觉,不改变既有三栏心智和功能范围
|
|
489
|
+
- 对话区工具执行采用 `omp` 风格状态呈现:当前 assistant 回复内只保留一个动态工具条,工具完成后折叠为分组摘要;用户停止时保留清楚的取消状态,避免工具流水账挤占正文
|
|
490
|
+
|
|
491
|
+
### 5.5 严禁项
|
|
492
|
+
|
|
493
|
+
- 不做 onboarding 引导浮层
|
|
494
|
+
- 不做 emoji 滥用
|
|
495
|
+
- 不做"AI 正在思考..." 这种空白等待动画(用真实事件流:动态工具状态、流式文本)
|
|
496
|
+
- 不强制注册 / 登录(本地工具不需要账号)
|
|
497
|
+
|
|
498
|
+
---
|
|
499
|
+
|
|
500
|
+
## 6. 数据与目录约定
|
|
501
|
+
|
|
502
|
+
### 6.1 知识库存储策略(混合模式)
|
|
503
|
+
|
|
504
|
+
用户需要管理多个领域的知识库(AI 学习、工作材料、设计灵感等),不该被强制塞到一个固定位置。采用**默认根目录 + 外部目录登记**的混合模式:
|
|
505
|
+
|
|
506
|
+
| 类型 | 位置 | 说明 |
|
|
507
|
+
|---|---|---|
|
|
508
|
+
| **默认知识库根** | `~/llm-wiki/` | App 首次启动自动创建;app 内"+ 新建知识库"在此建子文件夹 |
|
|
509
|
+
| **外部知识库** | 用户任意路径 | 用户手动"添加现有库"指向某路径,登记在 `config.json` |
|
|
510
|
+
| **应用数据** | `~/.llm-wiki-agent/` | 配置、会话、日志、Skill,用户通常不直接碰 |
|
|
511
|
+
|
|
512
|
+
**为什么默认是 `~/llm-wiki/` 而不是 `~/Documents/...`**:
|
|
513
|
+
|
|
514
|
+
- macOS 的 `~/Documents/` 会被 iCloud Drive 自动同步,会撕坏 `.wiki-cache.json` 的文件锁和"写入即更新"逻辑
|
|
515
|
+
- 知识库是顶级资产,值得一个顶级目录,不该埋在 Documents 深处
|
|
516
|
+
- 短路径友好:终端 `cd ~/llm-wiki` 一秒到达
|
|
517
|
+
|
|
518
|
+
**发现机制**:
|
|
519
|
+
- 启动时扫描 `~/llm-wiki/` 下所有含 `.wiki-schema.md` 的子目录 → 自动注册
|
|
520
|
+
- 再读 `config.json` 里登记的外部库路径 → 加入列表
|
|
521
|
+
- 失效路径(外部库被删/移走):UI 标记为灰色,提示用户移除登记
|
|
522
|
+
|
|
523
|
+
### 6.2 知识库目录结构(沿用 llm-wiki-skill)
|
|
524
|
+
|
|
525
|
+
每个知识库内部结构与 Skill 完全一致:
|
|
526
|
+
|
|
527
|
+
```
|
|
528
|
+
<某知识库>/
|
|
529
|
+
├── raw/ # 原始素材(子目录如 articles/tweets/wechat/xiaohongshu/zhihu/pdfs/notes/assets
|
|
530
|
+
│ # 由 Skill init 时创建,agent 不强求子目录约定,沿用现有结构)
|
|
531
|
+
├── wiki/ # AI 生成内容
|
|
532
|
+
│ ├── overview.md # 知识库总览(init 时生成)
|
|
533
|
+
│ ├── entities/ # 实体页
|
|
534
|
+
│ ├── topics/ # 主题页
|
|
535
|
+
│ ├── sources/ # 素材摘要
|
|
536
|
+
│ ├── comparisons/ # 对比分析
|
|
537
|
+
│ ├── synthesis/ # 综合分析
|
|
538
|
+
│ │ └── sessions/ # 对话结晶(agent 新增的对话沉淀都进这里)
|
|
539
|
+
│ └── queries/ # 保存的查询结果
|
|
540
|
+
├── purpose.md # 研究方向
|
|
541
|
+
├── index.md # 索引
|
|
542
|
+
├── log.md # 操作日志
|
|
543
|
+
├── .wiki-schema.md # 配置(识别"这是个知识库"的标志文件)
|
|
544
|
+
├── .wiki-cache.json # 素材去重缓存
|
|
545
|
+
├── .wiki-tmp/ # Skill 运行时临时目录(agent 不读不写,Skill 的 .gitignore 已排除)
|
|
546
|
+
└── .gitignore # init 时生成,至少排除 .wiki-tmp/
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
❗ agent 项目**不重新设计这个结构**。完全沿用 Skill 现有约定,确保两边互通。
|
|
550
|
+
❗ 结构以 `scripts/init-wiki.sh` 为权威,不要在 PRODUCT.md 里手动维护差异。
|
|
551
|
+
|
|
552
|
+
### 6.3 应用数据目录
|
|
553
|
+
|
|
554
|
+
```
|
|
555
|
+
~/.llm-wiki-agent/
|
|
556
|
+
├── config.json # UI 偏好、默认模型、外部库登记 —— 不存任何 API key
|
|
557
|
+
├── sessions/ # pi-agent 会话持久化(对话历史)
|
|
558
|
+
├── skills/ # 软链接或拷贝到此目录的 Skill
|
|
559
|
+
│ ├── llm-wiki/ # → 链接到 llm-wiki-skill 安装位置
|
|
560
|
+
│ ├── docx/ # 来自 anthropics/skills
|
|
561
|
+
│ └── ...
|
|
562
|
+
└── logs/
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
**模型认证不在这里**。所有模型凭证由 pi-agent 统一管理,存在:
|
|
566
|
+
|
|
567
|
+
```
|
|
568
|
+
~/.pi/agent/auth.json # pi-agent 的认证文件,权限 0600
|
|
569
|
+
```
|
|
570
|
+
|
|
571
|
+
❗ **应用数据 ≠ 知识库数据 ≠ 模型凭证**,三类彻底分离:
|
|
572
|
+
|
|
573
|
+
| 类型 | 位置 | 谁管 |
|
|
574
|
+
|---|---|---|
|
|
575
|
+
| 知识库数据 | `~/llm-wiki/<name>/` 或外部路径 | 用户 + agent |
|
|
576
|
+
| 应用数据 | `~/.llm-wiki-agent/` | llm-wiki-agent |
|
|
577
|
+
| 模型凭证 | `~/.pi/agent/auth.json` | pi-agent SDK |
|
|
578
|
+
|
|
579
|
+
❗ `.gitignore` 排除 `~/.llm-wiki-agent/`。**永远不要**把 API key 写进任何源代码或仓库文件。详见 ADR-13。
|
|
580
|
+
|
|
581
|
+
### 6.4 Obsidian / 第三方工具共存规则
|
|
582
|
+
|
|
583
|
+
很多用户(包括作者本人)用 Obsidian 浏览同一份知识库。两者必须零冲突。
|
|
584
|
+
|
|
585
|
+
**agent 读写的文件**:
|
|
586
|
+
- ✅ `raw/` 下任意文件
|
|
587
|
+
- ✅ `wiki/` 下任意 `.md` 文件
|
|
588
|
+
- ✅ `purpose.md` / `index.md` / `log.md`
|
|
589
|
+
- ✅ `.wiki-schema.md` / `.wiki-cache.json`
|
|
590
|
+
- ✅ `.wiki-graph-layout.json`(阶段四起:图谱钉扎布局,工作台后端写、Skill 侧只读,见 ADR-21)
|
|
591
|
+
|
|
592
|
+
**agent 完全忽略的文件 / 目录**:
|
|
593
|
+
- ❌ `.obsidian/`(Obsidian 元数据)
|
|
594
|
+
- ❌ `.DS_Store`(macOS)
|
|
595
|
+
- ❌ `*.base`(Obsidian Bases)
|
|
596
|
+
- ❌ `*.canvas`(Obsidian Canvas)
|
|
597
|
+
- ❌ `.wiki-tmp/`(Skill 自用的临时目录)
|
|
598
|
+
- ❌ `node_modules/`、`.git/`、`venv/` 等所有 dev 类目录
|
|
599
|
+
- ❌ 任何非 markdown、非 Skill 约定内的文件
|
|
600
|
+
|
|
601
|
+
用户用 Obsidian 编辑 markdown、画 Canvas、做 Base,agent 都不会碰。
|
|
602
|
+
|
|
603
|
+
### 6.5 运行时应用状态(由 Extension 持有)
|
|
604
|
+
|
|
605
|
+
- `currentKnowledgeBase`:当前打开的知识库绝对路径
|
|
606
|
+
- `currentConversationId`:当前对话的 ID(pi-agent 会话)
|
|
607
|
+
- `pinnedReferences`:当前对话固定引用的页面列表
|
|
608
|
+
- `activeSkills`(可选):本次会话允许的 Skill 子集
|
|
609
|
+
|
|
610
|
+
### 6.6 中文路径与 UTF-8 铁律
|
|
611
|
+
|
|
612
|
+
用户的知识库名可能含中文(如 `AI学习知识库`)、空格、emoji。
|
|
613
|
+
|
|
614
|
+
❗ **铁律**:所有路径处理代码必须用 UTF-8,**绝不**使用"路径转拼音"、"中文字符转码"等歪招。Node.js / Tauri 原生支持 UTF-8,正确写法即可。
|
|
615
|
+
|
|
616
|
+
### 6.7 边界场景行为约定
|
|
617
|
+
|
|
618
|
+
| 场景 | 行为 |
|
|
619
|
+
|---|---|
|
|
620
|
+
| **多实例启动** | 只允许单实例。第二次启动直接 focus 已有窗口(macOS Cmd+N 也不开新窗口)。原因:本地后端服务监听固定端口,多实例冲突;也避免对同一文件并发写 |
|
|
621
|
+
| **无网络 / 未配置 API key** | 启动不报错。库列表、对话历史、wiki 页面浏览**仍可用**。试图发新消息时给一个明确提示"未配置 API key,去设置面板"或"网络断开" |
|
|
622
|
+
| **崩溃 / 异常退出后恢复** | 重启后:自动恢复"最后一次使用的库 + 最近活跃对话";对话内容由 pi-agent session 持久化保证完整;侧栏折叠状态和右抽屉宽度保存在本机并恢复;右抽屉开关本身**不恢复**,避免恢复到"半坏"的 UI |
|
|
623
|
+
| **后端服务未起** | 前端 UI 显示明显的"后端服务未连接"状态,不渲染对话区(避免误以为是 agent 卡死) |
|
|
624
|
+
| **知识库目录被外部删除** | 列表里标灰,点击给出"目录已失效,是否从列表移除"提示,不崩溃 |
|
|
625
|
+
|
|
626
|
+
---
|
|
627
|
+
|
|
628
|
+
## 7. 关键决策记录(ADR)
|
|
629
|
+
|
|
630
|
+
> 决策一旦写下,未来要推翻必须明确说明"什么变化了"。
|
|
631
|
+
|
|
632
|
+
### ADR-1:选 pi-agent 而非 Vercel AI SDK / Mastra
|
|
633
|
+
|
|
634
|
+
- Vercel AI SDK 强项是云部署,本项目不部署
|
|
635
|
+
- Mastra 偏企业向 dashboard,对单人本地工具偏重
|
|
636
|
+
- pi-agent **原生支持 Anthropic Skill 标准**,可零适配复用 llm-wiki-skill 和社区 Skill 生态
|
|
637
|
+
- pi-agent SDK 和 RPC 模式都明确支持嵌入到 web / 桌面 UI
|
|
638
|
+
|
|
639
|
+
### ADR-2:对话中心而非图谱中心
|
|
640
|
+
|
|
641
|
+
- 用户已有 Codex / Claude Desktop 的对话心智,零学习成本
|
|
642
|
+
- `@` / `/` 是 Skill 和工具集成的天然入口
|
|
643
|
+
- 图谱适合"探索",不适合作为日常工作主屏;作辅助面板更合适
|
|
644
|
+
|
|
645
|
+
### ADR-3:SSE 而非 WebSocket
|
|
646
|
+
|
|
647
|
+
- agent → UI 是**单向**事件流
|
|
648
|
+
- SSE 是 HTTP 标准,浏览器和 webview 原生支持,断线自动重连
|
|
649
|
+
- WebSocket 需管理双向状态机,本场景过度
|
|
650
|
+
|
|
651
|
+
### ADR-4:先 web 再 Tauri 打包
|
|
652
|
+
|
|
653
|
+
- web 是验证产品逻辑最快的形态
|
|
654
|
+
- Tauri 本质是 webview 容器,前端可直接装现成
|
|
655
|
+
- 一开始做桌面会让"前端开发"和"打包调试"两个复杂度叠加,0 代码起步必死
|
|
656
|
+
|
|
657
|
+
### ADR-5:不用 MCP
|
|
658
|
+
|
|
659
|
+
- MCP 是跨进程 RPC,每个能力一个独立 server,本地场景过重
|
|
660
|
+
- Skill 是 markdown + scripts,进程内执行,简单一个量级
|
|
661
|
+
- pi-agent 的 Skill 加载机制已足够
|
|
662
|
+
- 未来如果某个能力**必须**用 MCP(比如调云端服务),再单独接入
|
|
663
|
+
|
|
664
|
+
### ADR-6:完全进化为 agent,不维护双通道
|
|
665
|
+
|
|
666
|
+
- 单人项目维护两个发行通道是开发者陷阱
|
|
667
|
+
- pi-agent 能直接复用 Skill 内容,"完全进化"代价比想象的小
|
|
668
|
+
- Skill 仓库进入维护模式,老用户照常使用
|
|
669
|
+
|
|
670
|
+
### ADR-7:知识库上下文用 Extension 注入,不拼 prompt
|
|
671
|
+
|
|
672
|
+
- 拼 prompt 难以维护、容易污染、对模型不友好
|
|
673
|
+
- pi-agent Extension 可以注册自定义 tool 并持有应用状态
|
|
674
|
+
- 让 agent 通过 tool 调用获取"当前在哪个库"、"库的元数据",行为更可控
|
|
675
|
+
- 切库时 Extension 状态变化即可,不需要重建 session
|
|
676
|
+
|
|
677
|
+
### ADR-8:React + Vite 而非 Next.js
|
|
678
|
+
|
|
679
|
+
- Next.js 的 SSR / Edge / 部署优化在 Tauri 里全废
|
|
680
|
+
- Vite 纯 SPA 路线打包简单,Tauri 一行命令吃下
|
|
681
|
+
- React 生态对新手最友好
|
|
682
|
+
|
|
683
|
+
### ADR-9:UI 用 shadcn/ui
|
|
684
|
+
|
|
685
|
+
- 组件是复制到本仓库的源代码,不是黑盒 npm 包,0 代码用户也能改
|
|
686
|
+
- 原生 Tailwind + 深色主题,符合工具感视觉风格
|
|
687
|
+
- 社区主流,AI 协作样本量大
|
|
688
|
+
|
|
689
|
+
### ADR-10:pi-agent 作为 npm 依赖,不 fork、不 clone 源码
|
|
690
|
+
|
|
691
|
+
- npm 依赖是现代 JS 项目用第三方库的标准方式,"不造轮子"正解
|
|
692
|
+
- fork 会导致上游更新无法 merge,维护噩梦
|
|
693
|
+
- submodule 对新手是地狱级体验,没有任何收益
|
|
694
|
+
- 极端情况需要 patch 时用 `patch-package`,保持升级路径干净
|
|
695
|
+
|
|
696
|
+
### ADR-11:知识库采用混合存储策略(默认根 + 外部登记)
|
|
697
|
+
|
|
698
|
+
- 用户的知识天然分类,不该被强制塞到一个固定位置
|
|
699
|
+
- 默认根 `~/llm-wiki/` 给新用户零配置上手
|
|
700
|
+
- 外部库登记给已有库的用户(如 Obsidian vault 用户)零迁移成本
|
|
701
|
+
- 不选 `~/Documents/` 因为 macOS 的 iCloud Drive 会撕坏文件锁
|
|
702
|
+
|
|
703
|
+
### ADR-12:会话绑定知识库,同库支持多并行对话
|
|
704
|
+
|
|
705
|
+
- 会话绑定库:防止跨库上下文污染(投资笔记不该混进 AI 研究)
|
|
706
|
+
- 同库多对话:符合 Claude Desktop / ChatGPT 的心智,用户切换思路不用清空历史
|
|
707
|
+
- 切库自动保存 + 自动选中目标库最近对话:零摩擦
|
|
708
|
+
- 全程自动保存,无确认弹窗
|
|
709
|
+
|
|
710
|
+
### ADR-13:模型认证完全复用 pi-agent 的 auth 体系(三层 fallback)
|
|
711
|
+
|
|
712
|
+
**不**在 llm-wiki-agent 自己维护 API key 存储。所有凭证最终落到 pi-agent 的 `~/.pi/agent/auth.json`,由 pi-agent SDK 统一读取与刷新。
|
|
713
|
+
|
|
714
|
+
**三层 fallback(按推荐顺序)**:
|
|
715
|
+
|
|
716
|
+
1. **复用 pi CLI 登录态**(推荐)
|
|
717
|
+
- 用户在终端跑 `pi login`,选择 Claude Pro/Max / ChatGPT Plus / GitHub Copilot OAuth,或填 Anthropic / OpenAI 等 API key
|
|
718
|
+
- 凭证由 pi CLI 写入 `~/.pi/agent/auth.json`(权限 0600)
|
|
719
|
+
- 我们的 app 通过 `AuthStorage.create()` 自动读取
|
|
720
|
+
- **UX 等价于 open-design 的"复用本地 CLI"**:登录一次,到处可用
|
|
721
|
+
2. **UI 内填 API key**
|
|
722
|
+
- 设置面板里直接填 Anthropic / OpenAI 等 key
|
|
723
|
+
- app 写入 **同一个** `~/.pi/agent/auth.json`,不是我们自己的 config 文件
|
|
724
|
+
- 测试连接按钮验证有效
|
|
725
|
+
3. **环境变量**
|
|
726
|
+
- 用户在 shell 里 `export ANTHROPIC_API_KEY=...`
|
|
727
|
+
- pi-agent SDK 自动检测
|
|
728
|
+
- 设置面板只读显示当前环境变量状态
|
|
729
|
+
|
|
730
|
+
**关键约束**:
|
|
731
|
+
- llm-wiki-agent 的 `config.json` **不存任何 key**,只存 UI 偏好、外部库登记、默认模型等元数据
|
|
732
|
+
- 想用 Claude Pro/Max 订阅的用户**零成本**接入(这是 BYOK API key 路线给不了的礼物)
|
|
733
|
+
- macOS Keychain / 1Password 等高级用法通过 auth.json 的 `!shell command` 语法支持,不需要我们额外做
|
|
734
|
+
|
|
735
|
+
### ADR-13b:不抄 open-design 的"多 CLI 子进程"模式
|
|
736
|
+
|
|
737
|
+
open-design 通过启动 CLI 子进程(Claude Code / Codex / Cursor 等 16 个)来实现"复用本地 CLI",因为它要兼容多家协议。
|
|
738
|
+
|
|
739
|
+
我们只用 pi-agent SDK,已经覆盖所有主流 provider(Anthropic / OpenAI / Google / DeepSeek / Bedrock / Azure / xAI / OpenRouter ...)。不需要再做 CLI 检测和子进程管理。
|
|
740
|
+
|
|
741
|
+
未来如果某用户极度想用某 CLI 驱动 llm-wiki,可作为可选适配层加进来,但**不进阶段一-五主线**。
|
|
742
|
+
|
|
743
|
+
### ADR-14:app 内一键新建知识库
|
|
744
|
+
|
|
745
|
+
- 用户不应该被迫开终端才能创建新库
|
|
746
|
+
- 内置 `/new-wiki` 命令调用 llm-wiki-skill 的 init 流程
|
|
747
|
+
- agent 自己跑自己的 Skill,闭环
|
|
748
|
+
|
|
749
|
+
### ADR-15:Obsidian 共存(agent 忽略非 markdown 与第三方元数据)
|
|
750
|
+
|
|
751
|
+
- 大量用户用 Obsidian 浏览同一份知识库
|
|
752
|
+
- agent 不碰 `.obsidian/`、`*.canvas`、`*.base`、`.DS_Store` 等
|
|
753
|
+
- 用户用 Obsidian 编辑 / 画 Canvas / 做 Base 不受影响
|
|
754
|
+
|
|
755
|
+
### ADR-16:长期与 llm-wiki 仓库合并(agent 是 Skill 的升级版)
|
|
756
|
+
|
|
757
|
+
**背景**:作者的 llm-wiki-skill 是 1.7k 星的成熟项目,纯提示词系统形态,没有 agent 循环 / 子 agent 分工 / 多步工具链。本项目(llm-wiki-agent)是把 Skill 升级为 agent 形态的实验。
|
|
758
|
+
|
|
759
|
+
**决策**:agent 形态成熟后,本仓库代码并入 `llm-wiki` 主仓库,作为 Skill 的 agent 升级版同时存在(保留 Skill 给纯 CLI 用户)。**当前仓库是临时仓库**。
|
|
760
|
+
|
|
761
|
+
**对架构的指导("C 混合"归属原则)**:
|
|
762
|
+
|
|
763
|
+
1. **能力归属原则**:"Skill 已有的功能调 Skill,agent 工作台新能力用 Extension"。这条原则今天和合并后都成立——今天的"spawn 外部脚本"合并后变成"同仓库内调用",调用关系不变
|
|
764
|
+
2. **拒绝重复造轮子**:llm-wiki-skill 已实现的消化能力(X / 微信 / 小红书 / 知乎 / YouTube / PDF / 本地文件)一律调 Skill,不在 agent 端重写
|
|
765
|
+
3. **拒绝塞 agent 特有命令进 Skill**:对话结晶、UI 元能力(列页面 / 读单页)、auth 管理这些"agent 工作台才有"的概念,用 Extension 实现,不污染 Skill 的"纯提示词系统"特质
|
|
766
|
+
4. **代码组织模块化**:agent 端目录结构保持清晰,未来可 lift-and-shift 直接挪进 `llm-wiki/agent/` 子目录
|
|
767
|
+
5. **不为合并提前优化**:今天该用 npm workspaces + 独立仓库就用,合并是未来的事,今天保持工程简单
|
|
768
|
+
|
|
769
|
+
**阶段 3.5 的明确例外**:批量本地文件消化为了验证"便宜模型 + 并行子代理"路线,允许子代理不调用完整 llm-wiki Skill,而是只读单个文件并输出 wiki markdown,主进程负责写盘。这个例外只覆盖阶段 3.5 的 `.md/.txt/.pdf` 批量入库场景,不推翻"Skill 已有能力优先调 Skill"的长期原则。
|
|
770
|
+
|
|
771
|
+
**未来扩展位**:媒体创作(阶段三)/ 子 agent 分工 / 多模型路由都依赖 agent 形态,是 Skill 给不了的。这些是 agent 形态存在的根本理由。
|
|
772
|
+
|
|
773
|
+
**与既有 ADR 的关系**:
|
|
774
|
+
- 强化 **ADR-7**(知识库上下文用 Extension 注入,不拼 prompt)
|
|
775
|
+
- 强化 **ADR-13b**(不抄 open-design 的多 CLI 子进程模式,因为我们最终是同仓库 agent)
|
|
776
|
+
- 兼容 **ADR-10**(pi-agent 作 npm 依赖)和 **ADR-14**(app 内一键新建知识库)
|
|
777
|
+
|
|
778
|
+
### ADR-17:阶段二新增前端依赖(react-markdown + cmdk)
|
|
779
|
+
|
|
780
|
+
**背景**:阶段二引入 markdown 渲染(右抽屉显示 wiki 页面)+ 命令补全菜单(`/` 和 `@`)。两个能力都需要新依赖。
|
|
781
|
+
|
|
782
|
+
**决策**(已在 `web/package.json` 落地):
|
|
783
|
+
|
|
784
|
+
| 依赖 | 版本 | 用途 |
|
|
785
|
+
|---|---|---|
|
|
786
|
+
| `react-markdown` | ^9 | assistant 消息 + 右抽屉的 markdown 渲染 |
|
|
787
|
+
| `remark-gfm` | ^4 | GFM 支持:表格、任务列表、自动链接 |
|
|
788
|
+
| `cmdk` | ^1 | `/` 命令菜单 + `@` 引用菜单底层(即 shadcn `<Command>` 基础) |
|
|
789
|
+
|
|
790
|
+
**拒绝项**:
|
|
791
|
+
- marked / markdown-it:生态/类型/插件不如 react-markdown 稳
|
|
792
|
+
- Radix Popover 自写:键盘导航与 a11y 都要重写,工作量大
|
|
793
|
+
|
|
794
|
+
**与 ADR-9(shadcn/ui)的关系**:cmdk 即 shadcn 官方 Command 底层;react-markdown 在 shadcn 生态里是社区主流选型。两者都与现有 UI 体系自然契合,无破坏性。
|
|
795
|
+
|
|
796
|
+
**长期**:阶段三引入产出类 Skill(docx / pdf / pptx)+ open-design 设计 Skill 时,UI 端会需要更多依赖(PPT 渲染、文件预览等)。届时再补 ADR-18+。
|
|
797
|
+
|
|
798
|
+
### ADR-18:阶段 3.5 多模型双角色 + 轻量子代理框架
|
|
799
|
+
|
|
800
|
+
**背景**:阶段 1-3 完成后两个痛点同时浮现——TBD-2(多模型路由)一直没有承载场景;阶段二的"一次喂一篇"消化模式拦住了批量进库的用户。两件事在阶段 3.5 合并解决:批量消化天然需要"便宜模型 + 并行",正好把多模型路由落地。
|
|
801
|
+
|
|
802
|
+
**决策**:
|
|
803
|
+
|
|
804
|
+
1. **双角色而非 N 角色**:只引入 `main`(聊天)+ `digest`(消化)两个角色。拒绝项:"per-task 模型路由"(消化/沉淀/产出/对话各自一个)太复杂、用户配不动;"只有一个 default model"则无法承载阶段 3.5 的核心需求
|
|
805
|
+
2. **角色配置存项目 config.json 不写 pi settings.json**:跨工具污染坏处大于好处;`~/.llm-wiki-agent/config.json` 是我们自己的偏好文件
|
|
806
|
+
3. **main 角色接管主对话**:设置里的 main 角色用于主对话创建和切换;保存 main 后重载当前活跃对话,让右上角模型显示与设置保持一致。digest 角色强制走子代理,保证"消化用便宜模型"的承诺
|
|
807
|
+
4. **子代理用 pi SDK 原生 API 而非自建框架**:`createAgentSession({ model, authStorage, modelRegistry, sessionManager: inMemory(), tools: ["read"] })` 已经够用。拒绝项:抄 omp 的 `executor.ts` / `index.ts` 那 3000 行(工作树隔离 / 嵌套子代理 / worker IPC 我们都不需要);自建独立子代理 runtime 重复造轮子
|
|
808
|
+
5. **并发控制自写 30 行**:拒绝引入 p-limit / async-pool 等并发库(一个 while 循环就能做);拒绝 `Promise.all` 一把开(N 个文件 = N 个并发模型请求会 429)
|
|
809
|
+
6. **子代理不挂业务 extension**:阶段 3.5 的批量本地文件消化是 ADR-16 的明确例外,消化是裸 prompt + 只读工具的简单任务,挂 KB / synthesis / artifacts extension 反而让 cheap 模型困惑
|
|
810
|
+
7. **写盘归主进程**:子代理只输出 wiki markdown 文本,主进程负责写到 `wiki/synthesis/sessions/`。让 cheap 模型决定文件路径风险大;主进程已知正确路径无需让 cheap 模型决策
|
|
811
|
+
8. **SSE 沿用 ADR-3 路线**:批量消化接口直接返回 `text/event-stream`,不为此开 WebSocket,也不做轮询
|
|
812
|
+
9. **拖拽优先于输入,但不假设浏览器一定暴露绝对路径**:阶段 3.5 先实测 macOS Finder 拖拽时 `DataTransfer` 是否提供 `file://`;若提供则自动填路径,若不提供则用输入框作为明确兜底。输入框不是降级体验,而是 web 沙箱下必须保留的可靠通道
|
|
813
|
+
|
|
814
|
+
**与既有 ADR 的关系**:
|
|
815
|
+
- 解决 **TBD-2**(多模型路由):选项 B 落地——通过角色映射而非任务路由
|
|
816
|
+
- 兼容 **ADR-3**(SSE):批量消化进度沿用 SSE
|
|
817
|
+
- 兼容 **ADR-7**(Extension 注入上下文):子代理不需要 KB 上下文,直接 prompt 传入;主对话保持现有 extension 注入路径
|
|
818
|
+
- 兼容 **ADR-16**(Skill 优先):本阶段对子代理批量本地文件消化做一次受控例外,不扩展到 Skill 已覆盖的完整素材消化流程
|
|
819
|
+
- 兼容 **ADR-10**(pi-agent 作 npm 依赖):完全用 SDK 原生 API,不 fork 不 patch
|
|
820
|
+
- 强化 **ADR-12**(会话绑定知识库):子代理是临时 inMemory session,不污染 KB 的对话历史
|
|
821
|
+
- 强化 **ADR-13**(凭证落 `~/.pi/agent/auth.json`):modelRoles 只存 `{provider, modelId}`,不存任何 key
|
|
822
|
+
|
|
823
|
+
**何时重新评估**:
|
|
824
|
+
- main 角色切换后如果出现历史会话恢复异常 → 回退为仅对新会话生效
|
|
825
|
+
- 用户反馈"批量消化输出格式漂移" → 引入 schema 校验 + 重试
|
|
826
|
+
- 用户反馈"并发 3 还是太慢" → 提供更高档位 + 自适应降级(429 自动退避)
|
|
827
|
+
|
|
828
|
+
### ADR-19:主对话引入“系统检索 + 上下文注入”
|
|
829
|
+
|
|
830
|
+
**背景**:阶段 3.5 批量消化后,用户进入当前知识库直接问“这些文章总结一下”,弱模型可能不会主动调用 `list_knowledge_base_pages` / `read`,而是反问用户提供文章内容。ADR-7 的“靠 Extension 工具让 agent 自觉获取上下文”在问答检索场景下不够稳定。
|
|
831
|
+
|
|
832
|
+
**决策**:
|
|
833
|
+
|
|
834
|
+
1. 主对话 `/api/prompt` 路径破例采用“后端检索 + 拼隐藏上下文”模式。
|
|
835
|
+
2. ADR-7 的“应用状态用 Extension 注入”原则仍然成立;本破例只覆盖“问答类知识库检索”,不改变 `current_knowledge_base` 等状态工具。
|
|
836
|
+
3. 同一份检索能力同时暴露为 `query_knowledge_base` 工具,保留 Extension 路径供强模型主动调用。
|
|
837
|
+
4. 每个 user turn 独立判断并检索,不跨轮复用旧结果。
|
|
838
|
+
5. 检索失败时降级为普通对话,同时通过 SSE 轻提示并写入 retrieval 日志,不中断用户输入。
|
|
839
|
+
6. **阶段 4.6 补充**:图谱增强检索不属于可见图谱交互,不占图谱候选池决策位;后续若做,归本 ADR 的检索质量演进线。
|
|
840
|
+
|
|
841
|
+
**与既有 ADR 的关系**:
|
|
842
|
+
- 破例 **ADR-7**:仅限主对话问答检索。
|
|
843
|
+
- 兼容 **ADR-3**:新增轻量 SSE 事件。
|
|
844
|
+
- 兼容 **ADR-16**:检索是 agent 工作台元能力,落在 server 端。
|
|
845
|
+
- 兼容 **ADR-18**:不影响 digest 子代理批量消化路径。
|
|
846
|
+
|
|
847
|
+
**何时重新评估**:
|
|
848
|
+
- 主流模型工具调用稳定性显著提升 → 考虑改回纯工具路径
|
|
849
|
+
- 用户大量反馈“参考页面被编造” → 强化 prompt 约束 + 引入后置校验
|
|
850
|
+
- KB 规模超过 100 篇且本地文本检索变慢 → 引入向量检索
|
|
851
|
+
|
|
852
|
+
### ADR-20:阶段四启动 monorepo 合并(丙方案)
|
|
853
|
+
|
|
854
|
+
**背景**:ADR-16 定了"agent 成熟后并入主仓库",但没定时机。阶段四的图谱引擎是两端(工作台 / Skill 离线 HTML)共享的第一块代码——共享代码出现的那一刻,分居两仓库开始产生真实摩擦(跨仓库依赖、双份维护),即合并时机成熟的信号。另两个事实强化此决策:主仓库(1.8k+ star)自 2026-05-13 停更,单人双仓库 = 注意力分裂已被证实;`llm-wiki-agent` 名字与 SamurAIGPT 同名竞品(2.9k star、活跃)撞车,不可作为独立品牌发布。
|
|
855
|
+
|
|
856
|
+
**决策**:
|
|
857
|
+
1. **丙方案**:本仓库 `git subtree add --prefix=workbench`(保留全历史)整体搬入主仓库;引擎落 `packages/graph-engine/`;主仓库根建 workspace package.json
|
|
858
|
+
2. **只做工程合并,不做品牌动作**:不发版、不改主仓库 README、不 archive 旧仓库——改名(`llm-wiki-skill` → `llm-wiki`)、双形态叙事、对外发布留给后续品牌阶段
|
|
859
|
+
3. **终局形态"一个产品、两扇门"**:产品 = 知识库文件格式 + 中文素材管线 + 方法论;Skill 与工作台是同一份知识库的两个访问端。Skill 永不砍(获客漏斗 + 格式中立性证明);工作台是长期重心(批量消化 / 多模型 / 产物 / 活图谱等 agent 形态独有能力的家)
|
|
860
|
+
4. **Tauri 打包(原阶段五)推迟**:打包是分发优化,先用 `git clone + npm run dev` 验证工作台的真实外部需求
|
|
861
|
+
5. ❗ 主仓库测试是 CommonJS,monorepo 根 package.json **不设** `"type": "module"`,ESM 声明留在 workbench 子包内
|
|
862
|
+
|
|
863
|
+
**拒绝项**:双仓库长期并行(注意力分裂);agent 另立品牌(撞名 + star 池分裂 + 格式话语权分裂);引擎放 agent 仓库做完再搬(二次搬运纯损耗)。
|
|
864
|
+
|
|
865
|
+
**与既有 ADR 的关系**:落地 ADR-16(合并愿景 → 启动执行);ADR-16 的"能力归属原则"继续生效(Skill 已有能力调 Skill,agent 元能力走 Extension);ADR-10(pi-agent npm 依赖)不受影响。
|
|
866
|
+
|
|
867
|
+
### ADR-21:图谱引擎与活地图(一个引擎、两个宿主)
|
|
868
|
+
|
|
869
|
+
**背景**:原阶段四"图谱集成"若做成 iframe 嵌 HTML,得到的是一个不能联动的孤岛。竞品图谱(Obsidian / Logseq)公认"好看不好用",根因是图谱后面没有人——只能看不能问。llm-wiki 工作台的图谱后面站着 agent,这是整个设计的支点。另:Skill 仓库 PR #44/#45 证明在静态布局上嫁接手动拖动必然失败(死布局无让位、指纹机制致重算后全部作废、localStorage 与知识库分离)。
|
|
870
|
+
|
|
871
|
+
**决策**:
|
|
872
|
+
1. **一个引擎、两个宿主**:`@llm-wiki/graph-engine`(TS,双产物 ESM/IIFE);宿主差异用 capabilities 能力注入表达,引擎核心零分叉
|
|
873
|
+
2. **新骨架、旧器官**:现有 graph-wash ~2300 行按 A(纯函数直接搬)/ B(画法拆开搬)/ C(样式抽主题 token)/ D(新写)四级处理;A 级 1:1 翻译禁止顺手优化;M1"静态复现旧版"为重构安全网
|
|
874
|
+
3. **活模拟 + 钉扎**:d3-force(单模块);预计算起点 + 低温入睡的混合布局;拖动低温让位、松手即钉、双击解钉;钉扎存知识库根 `.wiki-graph-layout.json`(只存钉的、库内相对路径为 key、模型坐标)。原则:**对知识的主观组织进库文件,浏览状态留本机**
|
|
875
|
+
4. **位置层/结构层分权**:拖动只改位置,颜色/社区/连线永远由真实 wikilink 决定;想改结构 → 通过选区提问让 agent 建链写回 wiki。图谱永不撒谎
|
|
876
|
+
5. **选区 = 批量 `@`**:结构化四式选择(点节点/点社区/+邻居/Shift 多选),砍自由套索(空间邻近无语义保证);选区面板结构事实先行、动作随性质变;动作本质是已有工作流(digest/comparisons/lint/crystallize)的空间入口;沿用 `/api/prompt` 文本通道不加新参数。阶段 4.6 修订 D4.5-6:点社区从“选中高亮其余淡化”升级为“进入社区聚焦视图并隐藏其余节点”,同时保留选区态动作。
|
|
877
|
+
6. **重算链监听文件系统而非"消化"**:变化源五个以上,只盯消化会让地图说谎;fs 监听 + 防抖 ~5s + 自家批量挂起;全量重算(子进程跑 build-graph-data.sh,不重写不做增量)+ 新旧 diff;diff 即动画剧本
|
|
878
|
+
7. **生长动画 diff 队列**:图谱可见时消费(不可见时徽标 + 打开补播);语义锚点发芽、错峰、≤3s、可跳过、尊重 prefers-reduced-motion
|
|
879
|
+
8. **图谱绑当前知识库**:与 ADR-12 会话绑库同构,切库 = 换地图;跨库图谱不做
|
|
880
|
+
9. **主题一对**:浅「数字山水」+ 深「墨夜」跟随工作台主题;不做主题商店——视觉签名的价值在"所有人记得住",不在"多数人喜欢"
|
|
881
|
+
10. **顶部工具条替代左上浮层**:阶段 4.6 后,社区列表、类型筛选、边图例、回全图等整图操作统一进入顶部工具条;工具条默认收起、半透明、浏览状态留本机。单节点操作仍留在右抽屉。
|
|
882
|
+
|
|
883
|
+
**与既有 ADR 的关系**:强化 ADR-2(对话中心:图谱是第二主屏,对话仍是第一);沿用 ADR-3(SSE 推 `graph_updated`);遵守 ADR-16 能力归属(数据管线调 Skill 脚本;选区/钉扎等工作台元能力走 server + 引擎);兼容 ADR-19(选区注入与检索注入同属"后端拼上下文"路线)。
|
|
884
|
+
|
|
885
|
+
**何时重新评估**:
|
|
886
|
+
- 力模拟在真实大库(500+ 节点)实测掉帧 → 布局计算挪 Web Worker,再不够才考虑 canvas 后端
|
|
887
|
+
- `fs.watch` recursive 在 macOS 实测不可靠 → 引入 chokidar
|
|
888
|
+
- 选区注入大社区上下文超限 → 清单截断 + 提示 agent 分批读
|
|
889
|
+
|
|
890
|
+
---
|
|
891
|
+
|
|
892
|
+
### ADR-22:图谱交互模型——点击即阅读,选区即升级
|
|
893
|
+
|
|
894
|
+
**背景**:阶段四把"点击节点"的默认响应做成了选区提问悬浮窗,作者实测确认这违背用户心智——点一个节点最常见的意图是"看它是什么"(阅读),不是"对它执行操作"(提问);且 stage-4 D6 动作映射表缺"单节点"行,单节点内部链接恒为 0 被误判进"无链接多选"剧本,产生废话统计与错位动作。
|
|
895
|
+
|
|
896
|
+
**决策**:
|
|
897
|
+
1. **单击 = 阅读**:右抽屉阅读态(标题 + 元信息行 + 双动作 + 正文),无悬浮窗;选区是阅读的升级态(Shift 多选 / 点社区 / +邻居),同一抽屉切换状态
|
|
898
|
+
2. **抽屉瘦身原则**:抽屉负责内容,图谱负责关系,凡从正文派生的信息(摘要、置信度列表、邻居列表)不重复展示;学习系统三件套不做(待真实使用后按工作台语境重新设计)
|
|
899
|
+
3. **动作映射表必须覆盖全部选区类型**(含单节点与孤岛单节点),统计卡仅 ≥2 节点显示
|
|
900
|
+
4. **画布导航是图谱的地基能力**(缩放/平移/回全图/小地图联动),引擎层实现两端同享
|
|
901
|
+
|
|
902
|
+
**与既有 ADR 的关系**:修订 ADR-21 第 5 条的选区面板形态(悬浮窗 → 抽屉态);强化 ADR-2(对话中心,图谱阅读复用工作台抽屉基建);沿用 stage-4 D9 原则(视口/图例折叠等浏览状态留本机)。
|
|
903
|
+
|
|
904
|
+
---
|
|
905
|
+
|
|
906
|
+
### ADR-23:关系边可视化采用“关系类型控制颜色、置信度控制虚实”
|
|
907
|
+
|
|
908
|
+
**背景**:阶段 4.6 要把关系词汇表真正画上图。执行前核验发现,旧边字段 `type` 实际承载的是 `EXTRACTED / INFERRED / AMBIGUOUS` 置信度,不是“实现 / 依赖 / 对比 / 矛盾 / 衍生”等关系类型。若直接拿旧 `type` 上色,会把两种语义混在一起。
|
|
909
|
+
|
|
910
|
+
**决策**:
|
|
911
|
+
1. **边数据契约分两维**:保留旧 `type=confidence` 兼容入口,同时显式输出 `confidence` 与 `relation_type`。数据管线可读取同一行 `<!-- relation: ... -->` / `<!-- relation_type: ... -->` 注释;旧链接默认 `relation_type=依赖`、`confidence=EXTRACTED`。
|
|
912
|
+
2. **颜色只表达关系类型**:矛盾用避开 ENTITY 红的品红系,对比用琥珀,顺承关系(实现 / 依赖 / 衍生)用主题中性色。
|
|
913
|
+
3. **虚实只表达置信度**:原文关系为实线,推断关系为虚线,待确认为弱虚线 / 点划,不再借颜色表达置信度。
|
|
914
|
+
4. **全局克制、局部完整**:全局图边保持低权重,避免大库变噪;进入社区聚焦视图后,边色与虚实完整呈现。
|
|
915
|
+
5. **两个宿主同享**:工作台与离线 HTML 都使用同一引擎渲染边、边图例和 hover 关系提示;离线 HTML 仍不注入提问能力。
|
|
916
|
+
|
|
917
|
+
**与既有 ADR 的关系**:强化 ADR-21 的“一个引擎、两个宿主”;延续 ADR-22 的“抽屉负责内容,图谱负责关系”;不改变 ADR-19 的检索演进线。
|
|
918
|
+
|
|
919
|
+
## 8. 给 0 代码作者的盲区与协作规则
|
|
920
|
+
|
|
921
|
+
### 8.1 环境陷阱
|
|
922
|
+
|
|
923
|
+
- macOS 默认 Node 版本可能旧。**统一用 [mise](https://mise.jdx.dev/) 或 nvm 管理 Node 版本**,锁到 **`>=22.19.0`**(pi-coding-agent 0.75.x 的硬要求)。否则 `npm install` 就直接报错
|
|
924
|
+
- 不要全局 `npm install -g`。每个项目用 `package.json` 锁版本
|
|
925
|
+
- API key **完全不进我们的仓库**,也不进 `~/.llm-wiki-agent/`。统一由 pi-agent SDK 管理,落到 `~/.pi/agent/auth.json`(权限 0600)。详见 ADR-13
|
|
926
|
+
|
|
927
|
+
### 8.2 进度陷阱
|
|
928
|
+
|
|
929
|
+
- **"差一点就跑通了"是最危险的状态**。验收标准要严格,跑不通就不进下一阶段
|
|
930
|
+
- AI 协作最大的隐性风险:你不懂代码 → AI 改 A 引起 B 坏,你不知道 → 雪球越滚越大
|
|
931
|
+
- **对策**:每阶段结束让 AI 主动列出"本次改了哪些文件、新增了什么依赖、为什么",你看明白再确认
|
|
932
|
+
- **Git 是你的安全网**。每个验收节点 commit 一次。
|
|
933
|
+
|
|
934
|
+
### 8.3 协作规则(AI 必须遵守)
|
|
935
|
+
|
|
936
|
+
- **不要自由发挥**。每次动手前先说"打算改哪些文件、为什么这么改、对其他部分有什么影响",作者确认后再动
|
|
937
|
+
- **任何要新增依赖**(npm package、Skill、配置项),先问"这是 PRODUCT.md 里规划过的吗"
|
|
938
|
+
- **任何要修改 PRODUCT.md 之外的决策**,先说明"这与 PRODUCT.md 第 X.Y 节冲突,建议修改文档为 Z",等作者拍板
|
|
939
|
+
- **作者思路断了的时候**,先读 PRODUCT.md,不要急着问"我们做到哪里了"——日志和 git 记录是事实,文档是意图,两个对照看
|
|
940
|
+
- **绝不主动跳阶段**。阶段二验收不过,不允许动阶段三的代码
|
|
941
|
+
|
|
942
|
+
### 8.4 心态陷阱
|
|
943
|
+
|
|
944
|
+
- 0 代码做出本地工具是可行的,但**"做出来"和"做得好"差距很大**
|
|
945
|
+
- 阶段一跑通会有巨大成就感,但 80% 时间在阶段二-四
|
|
946
|
+
- 桌面打包(阶段五)是难度峰值,会卡很多坑
|
|
947
|
+
- 接受"中途某个设计要推倒重来"——写进 ADR 比硬撑下去更省力
|
|
948
|
+
|
|
949
|
+
---
|
|
950
|
+
|
|
951
|
+
## 9. 待决事项
|
|
952
|
+
|
|
953
|
+
记录尚未拍板但要在未来某阶段决定的事。决定后移到 ADR。
|
|
954
|
+
|
|
955
|
+
| 编号 | 事项 | 现状 | 何时定 |
|
|
956
|
+
|---|---|---|---|
|
|
957
|
+
| ~~TBD-1~~ | ~~项目正式名~~ | **已定:`llm-wiki-agent`**。桌面应用显示名留到阶段五前再定 | ✅ |
|
|
958
|
+
| TBD-2 | 默认模型 | **阶段 3.5 已落地**:双角色 `modelRoles.{main, digest}` 写入 `~/.llm-wiki-agent/config.json`;main 角色用于主对话,digest 角色用于批量消化。详见 ADR-18 | ✅ |
|
|
959
|
+
| ~~TBD-3~~ | ~~多库会话隔离~~ | **已定:会话绑定知识库,同库支持多并行对话**(见 ADR-12) | ✅ |
|
|
960
|
+
| TBD-4 | 危险操作确认 | 删除 / 覆盖类是否弹窗 | 阶段二 |
|
|
961
|
+
| ~~TBD-5~~ | ~~API key 配置 UI~~ | **已定:三层 fallback(pi CLI 登录 / UI 填 key / env var),统一存 `~/.pi/agent/auth.json`**(见 ADR-13) | ✅ |
|
|
962
|
+
| TBD-6 | 知识库导入导出 | 是否需要打包导出格式 | 阶段四后 |
|
|
963
|
+
| ~~TBD-7~~ | ~~知识库根目录~~ | **已定:默认 `~/llm-wiki/` + 外部目录登记**(见 ADR-11) | ✅ |
|
|
964
|
+
| TBD-8 | HTML 产出 Skill | 用现成的还是自建 | 阶段三 |
|
|
965
|
+
|
|
966
|
+
---
|
|
967
|
+
|
|
968
|
+
## 10. 进度追踪
|
|
969
|
+
|
|
970
|
+
### 阶段一:主干打通 ✅ 已完成 2026-05-26
|
|
971
|
+
|
|
972
|
+
| # | 任务 | Commit |
|
|
973
|
+
|---|---|---|
|
|
974
|
+
| 1 | 仓库骨架:`package.json` / `.gitignore` / `README.md` / `LICENSE` / `tsconfig.json` | `81ddb29` |
|
|
975
|
+
| 2 | 后端骨架:Node + Hono,最小 `/api/echo` | `5ffd2c0` |
|
|
976
|
+
| 3 | 前端骨架:Vite + React + shadcn/ui + SSE echo 排练 | `3662b60` |
|
|
977
|
+
| 4 | 接入 pi-coding-agent SDK,实现真 agent 对话 | `c4e0dad` |
|
|
978
|
+
| 5 | 第一个 Extension:注入 `currentKnowledgeBase` 上下文 | `ebe054b` |
|
|
979
|
+
| 6 | 知识库扫描接口:扫 `~/llm-wiki/` + 读 `config.json` 外部库 | `daebc62` |
|
|
980
|
+
| 7 | 前端知识库选择 UI + 三栏布局雏形 | `49dc00e` |
|
|
981
|
+
| 8 | 同库多对话 + 切换 + 持久化(阶段一完结) | `75e176b` |
|
|
982
|
+
| – | review 修补:一行 `npm run dev` / auto-restore / 默认深色 / 顶部状态条占位 | `f835433` |
|
|
983
|
+
| – | TBD-2 删 Sonnet 表述 + 光标真闪烁 | `dd021bc` |
|
|
984
|
+
|
|
985
|
+
阶段一完成情况详见 §4 阶段一末尾的"完成情况"小节。
|
|
986
|
+
|
|
987
|
+
### 阶段二:核心循环(@、/、结晶、消化)✅ 已完成 2026-05-27
|
|
988
|
+
|
|
989
|
+
**最终 PR**:[#1 feat: complete stage 2 core loop](https://github.com/sdyckjq-lab/llm-wiki-agent/pull/1)(base: main, head: stage-2)
|
|
990
|
+
|
|
991
|
+
**8 step commit + 5 fix commit + 1 doc 修订 commit**:
|
|
992
|
+
|
|
993
|
+
| # | 任务 | Commit |
|
|
994
|
+
|---|---|---|
|
|
995
|
+
| 1 | `/sediment` Extension:结晶对话到 `wiki/synthesis/sessions/` | `fe54d47` |
|
|
996
|
+
| 2 | `/new-wiki` Extension:spawn `init-wiki.sh` 新建库 | `5ab13dc` |
|
|
997
|
+
| 3 | `/api/refs`:候选页面列表(递归 fingerprint 缓存) | `b0802b8` |
|
|
998
|
+
| 4 | `/api/commands`:内置 + Skill 命令合并(TBD-1 方案 B) | `202bf4d` |
|
|
999
|
+
| 5 | 设置面板:API key 三层认证 + 测试连接(TBD-2 方案 B) | `3654791` |
|
|
1000
|
+
| 6 | `/` 命令补全 UI(cmdk) | `b6dffc0` |
|
|
1001
|
+
| 7 | `@` 补全 + 右抽屉 + markdown 渲染(react-markdown) | `7801d2c` |
|
|
1002
|
+
| 8 | 消化新素材 chip | `7a46f4b` |
|
|
1003
|
+
| – | fix: 设置面板可关闭 | `c045b9e` |
|
|
1004
|
+
| – | fix: `/api/commands` 包含 Claude skill | `791d73a` |
|
|
1005
|
+
| – | fix: agent resource loader 加载 Claude skill 目录 | `f990229` |
|
|
1006
|
+
| – | fix: 新建库 UI 端点 + refs cache fingerprint 升级 + Sidebar 加按钮 | `a088b97` |
|
|
1007
|
+
| – | fix: 右抽屉支持 Esc 关闭 | `2686b51` |
|
|
1008
|
+
| – | docs(stage-2): 闭合验收 issue #2/#3/#4 + 标 TBD-3 已解决 | `208ad4d` |
|
|
1009
|
+
|
|
1010
|
+
**阶段二完成情况** ✅ 2026-05-27(合并 PR #1 后)
|
|
1011
|
+
- 范围 7 项全部交付(@、/、/sediment、/new-wiki、链接预览、消化、设置面板)
|
|
1012
|
+
- 验收 3 条全过:建库 / 消化→讨论→结晶 闭环 / API key 落 `~/.pi/agent/auth.json`
|
|
1013
|
+
- 关键架构决策:**D9 能力归属原则**(消化等知识库本职 → Skill;对话结晶等 agent 元能力 → Extension)落地,对应 ADR-16 长期合并愿景
|
|
1014
|
+
- **超出原设计的增强**:
|
|
1015
|
+
- `POST /api/knowledge-bases/new` + `NewWikiDialog`(UI 直接建库,不必先与 agent 对话)
|
|
1016
|
+
- `pages.ts` cache 升级 mtime → 递归 fingerprint(修了"嵌套新建后 refs 看不到"的潜在 bug)
|
|
1017
|
+
- `wiki-init.ts::findInitScript()` 兼容 init-wiki.sh 在 skill 根目录或 `scripts/` 两种位置
|
|
1018
|
+
- **接受的妥协**(不阻塞阶段三):
|
|
1019
|
+
- 设置面板只做认证 Tab(默认模型 / 根目录 / 外部库管理推迟)
|
|
1020
|
+
- Anthropic 测试连接未跑(缺 key),但代码路径同 DeepSeek 一致
|
|
1021
|
+
- **新增依赖**:见 §3.2 + ADR-17
|
|
1022
|
+
|
|
1023
|
+
### 阶段三:产出能力(产品亮点)✅ 已完成 2026-05-27
|
|
1024
|
+
|
|
1025
|
+
**最终分支**:`stage-3`(base: main, head: `1f1f591`)
|
|
1026
|
+
|
|
1027
|
+
**8 step commit + 1 fix commit**:
|
|
1028
|
+
|
|
1029
|
+
| # | 任务 | Commit |
|
|
1030
|
+
|---|---|---|
|
|
1031
|
+
| 1 | vendor 4 个 anthropics Skills + 收紧命令源标签 | `6d2e218` |
|
|
1032
|
+
| 2 | 产物 manifest 存储 + CRUD API | `f19687c` |
|
|
1033
|
+
| 3 | 导出按钮 + prompt 模板(3 通道触发) | `bf6b878` |
|
|
1034
|
+
| 4 | 产物右抽屉多 Tab 切换 | `bc70b2c` |
|
|
1035
|
+
| 5 | HtmlRenderer:iframe sandbox 预览 | `862265a` |
|
|
1036
|
+
| 6 | DownloadOnlyRenderer:元数据卡片 + 下载 | `38006a7` |
|
|
1037
|
+
| 7 | 全局 Skill 可见性开关(settings toggle) | `1016601` |
|
|
1038
|
+
| 8 | 产物工作流 UX 打磨 | `91a9761` |
|
|
1039
|
+
| – | fix: 修复导出工作流 review 问题 | `1f1f591` |
|
|
1040
|
+
|
|
1041
|
+
**阶段三完成情况** ✅ 2026-05-27(审查通过,合并到 main)
|
|
1042
|
+
- 范围全部交付:5 个导出按钮(PDF/Word/PPT/Excel/HTML)+ 4 个 vendored Skills + 2 个 Extension 工具 + 6 个新 API + 1 个新 SSE event
|
|
1043
|
+
- 关键架构决策:**E13(D9 落地)**——产出操作走 Skill,`prepare_artifact` / `finalize_artifact` 作为 agent 元能力 Extension;HTML 导出不依赖 Skill,由 agent 内置能力直接生成
|
|
1044
|
+
- 新增 4 个端点:`GET /api/artifacts`、`GET /api/artifacts/:id`、`GET /api/artifacts/:id/files/:filename`、`POST /api/config` + `GET /api/config` 扩展 `showUserGlobalSkills`
|
|
1045
|
+
- 安全验证通过:path traversal 防护、iframe sandbox(无 `allow-same-origin`)、UIID 验证、文件名净化
|
|
1046
|
+
- **接受的妥协**(不阻塞阶段四):
|
|
1047
|
+
- PPTX 在浏览器内无预览(DownloadOnlyRenderer),设计文档原定的 PPTXjs 方案未落地
|
|
1048
|
+
- HTML 导出不依赖外部 Skill,由 agent 内置 fs 能力直接生成(TBD-5 方案)
|
|
1049
|
+
- **新增依赖**:无(0 个新 npm package)
|
|
1050
|
+
|
|
1051
|
+
### 阶段 3.5:导航 UX 重构 + 多模型子代理批量消化 ✅ 已完成 2026-05-27
|
|
1052
|
+
|
|
1053
|
+
**当前状态**:已合并到 `main` 并推送;阶段性分支已清理
|
|
1054
|
+
|
|
1055
|
+
**7 step 概览**:
|
|
1056
|
+
|
|
1057
|
+
| # | 任务 | 状态 |
|
|
1058
|
+
|---|---|---|
|
|
1059
|
+
| 1 | 侧栏重构:统一 KB 列表 + 折叠对话子树 | ✅ |
|
|
1060
|
+
| 2 | 拖拽 + 输入框路径填充(含 inspect 端点) | ✅ |
|
|
1061
|
+
| 3 | 非 wiki 目录初始化引导 | ✅ |
|
|
1062
|
+
| 4 | 多模型双角色(main / digest) | ✅ |
|
|
1063
|
+
| 5 | 后端子代理批量消化框架 | ✅ |
|
|
1064
|
+
| 6 | 批量消化 UI + SSE 进度推送 | ✅ |
|
|
1065
|
+
| 7 | 总验收 + UX 体感打磨 | ✅ |
|
|
1066
|
+
|
|
1067
|
+
**关键风险**:
|
|
1068
|
+
- TBD-3.5-1:子代理 session 共享 `authStorage` / `modelRegistry` 的资源生命周期未实测(codex 起手第一件事写 60 行验证)
|
|
1069
|
+
- TBD-3.5-2:`init-wiki.sh` 就地初始化会写入固定文件,必须先做冲突检测与备份(Step 3 起手看源码确认文件列表)
|
|
1070
|
+
- TBD-3.5-3:main 角色已接管主对话;设置切换后重载当前活跃对话
|
|
1071
|
+
|
|
1072
|
+
**验收实况**:
|
|
1073
|
+
- `npm run --silent typecheck` 通过
|
|
1074
|
+
- `node --import tsx --test server/src/digest/concurrency.test.ts` 通过
|
|
1075
|
+
- 本地接口实测通过:目录 inspect、初始化冲突 409、就地初始化成功、模型列表、模型角色保存、批量消化参数校验
|
|
1076
|
+
- 单文件批量消化真实跑通,SSE 返回 start / file_start / file_complete / done,并写入 `wiki/synthesis/sessions/`
|
|
1077
|
+
- 验收后补强:批量消化改为逐文件失败隔离,进度面板显示每个文件状态、生成字数和结果入口;外部目录批量消化改用 inspect 扫描凭据,不再信任前端传任意 sourceRoot;初始化后批量消化可临时选择 digest 模型
|
|
1078
|
+
- 收尾补强:当前知识库自动检索已落地;批量消化后直接提问会先检索当前知识库,普通寒暄和导出指令不会误触发检索
|
|
1079
|
+
- UI 视觉迁移补强:基于本地原型 `index.html` 统一工作台视觉,补齐浅色 / 深色主题切换;保持原有侧栏、对话、引用、命令、产物抽屉、设置、批量消化流程不变,不新增依赖
|
|
1080
|
+
- 预览布局补强:侧栏可折叠为 52px 窄图标栏,右抽屉支持拖动调宽和双击恢复默认宽度;折叠状态与抽屉宽度保存在本机;移动端继续使用全屏抽屉
|
|
1081
|
+
- 设置面板补强:设置弹窗限制最大高度,标题区保留在顶部,设置内容在弹窗内部滚动;底部 Skill 加载区在较矮屏幕下也可达
|
|
1082
|
+
|
|
1083
|
+
### 阶段四:monorepo 合并 + 图谱活地图 ✅ 已完成 2026-06-12
|
|
1084
|
+
|
|
1085
|
+
**当前状态**:已在主仓库 `stage-4` 分支完成。8 个 Step 均有提交或人工验收证据,最终自动化检查全绿;视觉一致性、拖动手感、墨夜观感保留为验收人主观判断项。
|
|
1086
|
+
|
|
1087
|
+
**8 Step 概览**:
|
|
1088
|
+
|
|
1089
|
+
| # | 任务 | 状态 |
|
|
1090
|
+
|---|---|---|
|
|
1091
|
+
| 0 | monorepo 搬家(subtree + workspace 根 + 冒烟) | ✅ |
|
|
1092
|
+
| 1 | 引擎包骨架 + helpers TS 化 + 测试迁移 | ✅ |
|
|
1093
|
+
| 2 | 工作台图谱视图静态复现(安全网基线)+ 主题 token | ✅ |
|
|
1094
|
+
| 3 | 活模拟 + 钉扎 + 持久化 | ✅ |
|
|
1095
|
+
| 4 | 选区系统 + 对话联动 | ✅ |
|
|
1096
|
+
| 5 | 文件监听 + 重算链 + 生长动画 | ✅ |
|
|
1097
|
+
| 6 | Skill 离线 HTML 切换引擎产物 | ✅ |
|
|
1098
|
+
| 7 | 总验收 + 墨夜打磨 | ✅ |
|
|
1099
|
+
|
|
1100
|
+
**关键风险处理结果**(详见设计文档 §7):根 package.json 未设置 type:module;手绘路径采用帧缓存;macOS Node 22 原生 `fs.watch` recursive 实测可用,未引入 chokidar;subtree 与提交前隐私路径检查均通过。
|
|
1101
|
+
|
|
1102
|
+
**设计来源**:2026-06-12 四轮设计对话(战略定位 → 选区 → 钉扎持久化 → 生长事件链 → 引擎抽取),关键结论沉淀为 ADR-20 / ADR-21。
|
|
1103
|
+
|
|
1104
|
+
### 阶段 4.5:图谱可用性收尾 ✅ 已合入 2026-06-14
|
|
1105
|
+
|
|
1106
|
+
**当前状态**:已合入。决策记录见 ADR-22。
|
|
1107
|
+
|
|
1108
|
+
**设计来源**:作者实测五问题(缩放缺失 / 点击语义错位 / Shift 不可发现 / 无搜索图例 / 节点过胖)+ 阶段四验收的离线功能减配裁决。两处上游盲区已在设计中修正:stage-4 plan 漏列画布导航 WU;stage-4 D6 映射表缺单节点行。
|
|
1109
|
+
|
|
1110
|
+
### 阶段 4.6:图谱演进第一批 ✅ 已完成 2026-06-14
|
|
1111
|
+
|
|
1112
|
+
**当前状态**:已完成并通过总验收。关系类型和置信度已分字段,渲染用关系类型控制颜色、置信度控制虚实;社区聚焦、类型筛选、顶部工具条、边图例、双宿主分工均已落地。决策记录见 ADR-23,ADR-21 已同步 4.6 对社区交互和工具条的修订。
|
|
1113
|
+
|
|
1114
|
+
### 阶段五:未开始(Tauri 打包已决策推迟,见 ADR-20)
|
|
1115
|
+
|
|
1116
|
+
### 协作约定(持续生效)
|
|
1117
|
+
|
|
1118
|
+
每一步动手前 AI 都要先说计划,作者确认后再动。每完成一步:
|
|
1119
|
+
|
|
1120
|
+
- AI 列改动清单(文件、依赖、决策)
|
|
1121
|
+
- 作者确认理解
|
|
1122
|
+
- AI 创建 git commit(commit message 含本步范围 + 实测验收要点)
|
|
1123
|
+
- 进入下一步
|
|
1124
|
+
|
|
1125
|
+
---
|
|
1126
|
+
|
|
1127
|
+
## 附录 A:术语表
|
|
1128
|
+
|
|
1129
|
+
| 术语 | 解释 |
|
|
1130
|
+
|---|---|
|
|
1131
|
+
| **Skill** | Anthropic 提出的能力包格式:一个目录 + 一份 SKILL.md。详见 [agentskills.io](https://agentskills.io/) |
|
|
1132
|
+
| **pi-agent** | TypeScript agent runtime,原生支持 Skill 标准。`@earendil-works/pi-coding-agent` |
|
|
1133
|
+
| **SSE** | Server-Sent Events,服务器单向推送事件给浏览器的 HTTP 标准 |
|
|
1134
|
+
| **Extension** | pi-agent 的扩展机制:TS 模块,能注册自定义 tool / 命令 / 拦截事件 / 持有状态 |
|
|
1135
|
+
| **Tauri** | 用系统 webview + Rust 后端打包跨平台桌面应用的框架,二进制和内存占用通常显著低于 Electron |
|
|
1136
|
+
| **Hono** | 轻量 TypeScript web 框架,跑 Node / Bun / Deno / Cloudflare 都行 |
|
|
1137
|
+
| **shadcn/ui** | 组件库,但代码是直接复制到你仓库的(不是 npm 黑盒),方便修改 |
|
|
1138
|
+
| **结晶 / 沉淀** | 把对话内容固化为 wiki 页面的动作(继承自 llm-wiki-skill 术语) |
|
|
1139
|
+
|
|
1140
|
+
---
|
|
1141
|
+
|
|
1142
|
+
## 附录 B:参考链接
|
|
1143
|
+
|
|
1144
|
+
- pi-agent 仓库:https://github.com/earendil-works/pi
|
|
1145
|
+
- pi-agent Skill 文档:`packages/coding-agent/docs/skills.md`
|
|
1146
|
+
- pi-agent SDK 文档:`packages/coding-agent/docs/sdk.md`
|
|
1147
|
+
- pi-agent Extension 文档:`packages/coding-agent/docs/extensions.md`
|
|
1148
|
+
- llm-wiki-skill 仓库:https://github.com/sdyckjq-lab/llm-wiki-skill
|
|
1149
|
+
- Anthropic Skill 标准:https://agentskills.io/specification
|
|
1150
|
+
- Anthropic 官方 Skills:https://github.com/anthropics/skills
|
|
1151
|
+
- pi-skills:https://github.com/badlogic/pi-skills
|
|
1152
|
+
- Tauri 文档:https://tauri.app/
|
|
1153
|
+
- shadcn/ui:https://ui.shadcn.com/
|
|
1154
|
+
|
|
1155
|
+
---
|
|
1156
|
+
|
|
1157
|
+
> 本文档第一版完成于 2026-05-26。后续更新请在文末追加 changelog。
|
|
1158
|
+
|
|
1159
|
+
## Changelog
|
|
1160
|
+
|
|
1161
|
+
- **2026-06-14 v19(阶段 4.6 实施完成)**:图谱演进第一批完成并同步文档
|
|
1162
|
+
- §4 / §10 阶段 4.6 状态改为已完成,记录工具条、社区聚焦、类型筛选、关系边图例、双宿主分工的验收结果
|
|
1163
|
+
- §4 图谱演进候选池标注首批已落地项;图谱增强检索明确移交 ADR-19 检索线
|
|
1164
|
+
- §7 ADR-19 增补检索线归属说明,ADR-21 增补社区聚焦与顶部工具条修订,新增 **ADR-23**(关系边可视化:关系类型控制颜色、置信度控制虚实)
|
|
1165
|
+
- **2026-06-14 v18(阶段 4.6 立项 + plan 审查加固)**:图谱演进第一批进入执行准备
|
|
1166
|
+
- §4 新增/修正"阶段 4.6:图谱演进第一批":G1-1 改为先补齐关系类型 + 置信度边契约,再用关系类型控制颜色、置信度控制虚实;G1-2/G1-3/G1-4/G1-5 保持日常可用性方向
|
|
1167
|
+
- §10 新增阶段 4.6 状态;阶段 4.5 状态同步为已合入,避免后续执行误判基线
|
|
1168
|
+
- 图谱演进候选池修正"关系类型上边"的现状描述:关系词汇表与置信度体系已有,但当前边 `type` 不是关系类型
|
|
1169
|
+
- **2026-06-15 v18(对话工具状态体验)**:补记 `omp` 风格动态工具状态已落地
|
|
1170
|
+
- §5.4 增加工作台对话区工具状态原则:当前 assistant 回复只保留一个动态工具条,完成后折叠为分组摘要,停止时保留取消状态
|
|
1171
|
+
- §5.5 更新等待状态表述:不做空白思考动画,改用动态工具状态和流式文本
|
|
1172
|
+
- **2026-06-13 v17(图谱演进候选池)**:行业全景分析沉淀进"阶段后规划"
|
|
1173
|
+
- §4 阶段后规划新增"图谱演进候选池":统领判断(两条行业尸检教训)+ 推荐切片 7 项(局部图/路径讲解/lint 上图/关系类型上边/过滤器/导出美图/图谱增强检索)+ 远期池 4 项(绑定消化管线升级批次)+ 明确不做 3 项(3D/白板化/WebGL 重写)+ 竞品技术参考存档
|
|
1174
|
+
- 定位:4.5 之后再排期,防止思考成果丢失;4.5 范围不受影响
|
|
1175
|
+
- **2026-06-13 v16(阶段 4.5 设计完成)**:图谱可用性收尾设计定稿
|
|
1176
|
+
- §4 新增"阶段 4.5:图谱可用性收尾"小节(P0 画布导航 + P0 点击语义重构 + P1 搜索/图例/Shift + P2 节点瘦身 + 抽屉瘦身定稿)
|
|
1177
|
+
- §7 新增 **ADR-22**(图谱交互模型:"点击即阅读,选区即升级";抽屉负责内容、图谱负责关系、派生信息不重复;动作映射表必须全覆盖;画布导航为地基能力)——修订 ADR-21 第 5 条选区面板形态
|
|
1178
|
+
- §10 新增阶段 4.5 小节
|
|
1179
|
+
- 上游盲区修正记录:stage-4 plan 漏列画布导航;stage-4 D6 映射表缺单节点行
|
|
1180
|
+
- **2026-06-12 v15(阶段四实施完成)**:阶段四 8 Step 完成并回填进度
|
|
1181
|
+
- §4 / §10 阶段四状态改为完成;记录总验收自动化检查通过,主观视觉/手感项交由验收人判断
|
|
1182
|
+
- §10 阶段四 8 Step 全部打勾;补记 fs.watch、根 package 类型、路径隐私检查等关键风险处理结果
|
|
1183
|
+
- **2026-06-12 v14(阶段四设计完成)**:monorepo 合并 + 图谱活地图设计定稿
|
|
1184
|
+
- §4 阶段四整节改写:"图谱集成" → "monorepo 合并 + 图谱活地图"(8 Step + 7 条验收)
|
|
1185
|
+
- §7 新增 **ADR-20**(阶段四启动 monorepo 合并丙方案:subtree 进 `workbench/`、引擎落 `packages/graph-engine/`、只做工程合并不做品牌动作、Tauri 推迟)与 **ADR-21**(图谱引擎与活地图:一个引擎两个宿主、新骨架旧器官、活模拟+钉扎、位置/结构分权、选区=批量@、文件监听重算链、diff 生长动画、山水/墨夜双主题)
|
|
1186
|
+
- §1.3 补"阶段四起合并启动"段落(一个产品、两扇门)
|
|
1187
|
+
- §10 阶段四小节:设计完成状态 + 8 Step 占位 + 4 项关键风险;阶段五标注 Tauri 推迟
|
|
1188
|
+
- 阶段四设计细则已归档为本地资料
|
|
1189
|
+
- **2026-05-28 v13(设置面板滚动修复)**:补记设置弹窗高度与内部滚动修复
|
|
1190
|
+
- 设置面板限制最大高度,避免底部设置被屏幕遮住
|
|
1191
|
+
- 设置内容区改为内部滚动,标题和关闭按钮保留在顶部
|
|
1192
|
+
- 设置面板滚动修复的设计与验证记录已归档为本地资料
|
|
1193
|
+
- **2026-05-28 v12(阶段 3.5 预览布局收尾)**:补记可拖动预览区与侧栏折叠
|
|
1194
|
+
- 右抽屉支持拖动左边缘调整预览宽度,双击恢复默认宽度;宽度保存在本机
|
|
1195
|
+
- 左侧栏支持折叠为 52px 窄图标栏,保留核心入口并提供悬停提示;折叠状态保存在本机
|
|
1196
|
+
- 小屏幕下保持原有全屏抽屉方式,不启用拖动
|
|
1197
|
+
- 可调预览布局的设计与验证记录已归档为本地资料
|
|
1198
|
+
- **2026-05-28 v11(阶段 3.5 UI 收尾)**:补记原计划外的 UI 原型迁移
|
|
1199
|
+
- 基于本地原型 `index.html` 统一工作台视觉,覆盖侧栏、顶部状态条、对话区、输入区、`@` / `/` 菜单、右抽屉、设置和批量消化面板
|
|
1200
|
+
- 增加浅色 / 深色主题切换,默认深色,用户选择保存在本机
|
|
1201
|
+
- 保持阶段 3.5 既有产品范围,不新增 npm 依赖;本次属于收尾视觉补强,不改变知识库和 agent 行为
|
|
1202
|
+
- **2026-05-28 v10(阶段 3.5 收尾)**:阶段 3.5 收尾补强完成,准备合并推送
|
|
1203
|
+
- 新增当前知识库自动检索:主对话提问时后端先检索当前 KB 并注入上下文,避免批量消化后模型反问用户提供文章
|
|
1204
|
+
- `query_knowledge_base` 工具与 `/api/prompt` 共用同一套检索逻辑,ADR-19 已写入 §7
|
|
1205
|
+
- 检索失败降级为普通对话并写 retrieval 日志;寒暄、`/` 命令、导出产物指令不会误触发检索
|
|
1206
|
+
- 验证覆盖:检索单测、并发单测、类型检查、真实接口总结/寒暄/导出三条路径
|
|
1207
|
+
- **2026-05-27 v9(阶段 3.5 完成)**:阶段 3.5 实施完成并本地验证
|
|
1208
|
+
- 侧栏统一、拖拽/输入路径检查、非 wiki 目录初始化、多模型角色、批量消化子代理、SSE 进度浮窗均已落地
|
|
1209
|
+
- 保持零新增 npm 依赖;main 角色已接管主对话,digest 角色用于批量消化
|
|
1210
|
+
- **2026-05-27 v8(阶段 3.5 设计完成)**:阶段 3.5 设计完成,待 codex 实施
|
|
1211
|
+
- §4 新增"阶段 3.5:导航 UX 重构 + 多模型子代理批量消化"小节,列出背景、7 step 范围、5 条验收标准、设计文档指引
|
|
1212
|
+
- §7 新增 **ADR-18:阶段 3.5 多模型双角色 + 轻量子代理框架**(9 条核心决策 + 与既有 ADR 关系 + 重新评估触发条件)
|
|
1213
|
+
- §9 TBD-2 状态更新:"阶段三再做"→"阶段 3.5 落地中"
|
|
1214
|
+
- §10 新增"阶段 3.5"小节:当前分支 `stage-3.5`、设计文档链接、7 step 占位、3 个关键风险
|
|
1215
|
+
- 阶段 3.5 设计细则已归档为本地资料
|
|
1216
|
+
- **2026-05-26 v7(阶段一完成标记)**:阶段一全部 step + review 修补完成,作者确认 MVP 可用
|
|
1217
|
+
- §4 阶段一标题加 `✅ 已完成 2026-05-26`
|
|
1218
|
+
- §4 阶段一末尾新增"完成情况"小节:含最终 commit、验收实况、接受的妥协、**启动 & 运行速查表**(compact 后从这里恢复上下文)
|
|
1219
|
+
- §10 重命名 "下一步行动" → "进度追踪":阶段一 8 step + 2 review commit 全部 ✅ + commit hash 表;阶段二预占骨架(7 项待办);阶段三/四/五标 "未开始"
|
|
1220
|
+
- 协作约定移到 §10 末尾,作为持续生效条款
|
|
1221
|
+
- **2026-05-26 v6**:
|
|
1222
|
+
- TBD-2 表述改:删"阶段一固定 Claude Sonnet",改为"沿用 pi-agent 默认设置"。实际作者通过 pi-agent 的 provider 体系接入了其他 provider(如 zai/glm-5.1),llm-wiki-agent 本不该假设固定 Sonnet
|
|
1223
|
+
- §阶段后规划"多模型路由"措辞更通用,不锁死 Anthropic
|
|
1224
|
+
- 微调:ChatPanel 流式光标 `animate-pulse` → 自定义 `animate-cursor-blink`(1s steps 真闪烁,原 pulse 在 ▍ 粗块上视觉太弱)
|
|
1225
|
+
- **2026-05-26 v5(阶段一完结 review 修补)**:实际 review 阶段一代码对照文档,发现并修复 3 项硬 gap、4 项偏差对齐
|
|
1226
|
+
- 修 Gap 1:根 `package.json` 加 `npm run dev` 一行起两个服务(用 `concurrently`,符合 §4 阶段一范围第 1 条)
|
|
1227
|
+
- 修 Gap 2:`AppConfig` 加 `lastUsedKbPath`;`selectKb/selectConversation/createNewConversation` 写入;`agent.bootstrapFromConfig()` 启动时 await 恢复(符合 §5.1.1)
|
|
1228
|
+
- 修 Gap 3:`web/index.html` `<html class="dark">`(符合 §5.4 "默认深色")
|
|
1229
|
+
- §5.2 顶部状态条占位:ChatPanel header 加 `🤖 模型` 显示(disabled,从后端返回的 `active.model` 拿真实 provider/id)+ `⚙ 设置` 占位按钮,tooltip 标注"阶段二/三补"
|
|
1230
|
+
- §5.5 严禁项对齐:删除 "等待 agent 响应…" 文字提示;streaming 时最后一个 assistant 气泡显示 `▍` 光标
|
|
1231
|
+
- §5.4 等宽字体:`index.css` 加 `--font-mono` (JetBrains Mono / SF Mono stack) 给 `code/pre/kbd/samp` 元素
|
|
1232
|
+
- 后端 `/api/knowledge-base` GET/POST、`/api/conversations` POST、`/api/conversations/new` POST 全部在 `active` 上返回 `model: { provider, id } | null`
|
|
1233
|
+
- **明确推迟到阶段二/三**:§5.1 侧栏底部"图谱入口"延迟(阶段四,作者要重新构思);"设置入口"占位放在 ChatPanel header(阶段二补完整面板)
|
|
1234
|
+
- **2026-05-26 v4 (review pass)**:基于源码/文档验证,修复 5 项事实错误 + 4 项精确化 + 3 项软化/标注
|
|
1235
|
+
- 修:§3.1 架构图知识库路径 `~/wikis/` → `~/llm-wiki/`,并补充 `~/.pi/agent/auth.json`
|
|
1236
|
+
- 修:§6.2 知识库目录补 `wiki/comparisons/`、`wiki/overview.md`、`.wiki-tmp/`、`.gitignore`(依据 `scripts/init-wiki.sh` 实际行为)
|
|
1237
|
+
- 修:§8.1 删除"API key 走 config.json"过期描述,改为引用 ADR-13
|
|
1238
|
+
- 修:§9 TBD-5 已定描述同步到 ADR-13 现状
|
|
1239
|
+
- 加:Node 版本要求 `>=22.19.0`(pi-coding-agent 0.75.x 硬要求,写入 §3.2、§3.4、§8.1)
|
|
1240
|
+
- 加:§3.4 补充 Extension 注入方式(SDK 用 `bindExtensions` / `ResourceLoader`,不依赖 CLI 全局发现)
|
|
1241
|
+
- 加:§6.4 Obsidian 忽略列表补 `.wiki-tmp/` 和 dev 类目录
|
|
1242
|
+
- 加:§2.3 anthropics/skills 列出 17+ 个实际 Skill,不止"四件套"
|
|
1243
|
+
- 软:§3.2 "Tauri 比 Electron 轻 10×" → "二进制和内存通常显著低于 Electron(5-30 MB vs 100+ MB)"
|
|
1244
|
+
- 软:§3.2 mise 描述更准确为"多语言版本管理(含 Node)"
|
|
1245
|
+
- 标:§3.3 流程中的 `/api/*` 路径标注为"建议命名,最终以实现为准"
|
|
1246
|
+
- 标:§阶段三 PPTX 渲染库删除错误链接,明确"阶段三选型"
|
|
1247
|
+
- **2026-05-26 v1**:第一版完成,确立产品定位、5 阶段路线、9 条 ADR、协作规则。
|
|
1248
|
+
- **2026-05-26 v2**:
|
|
1249
|
+
- 新增 3.4 节《pi-agent 的使用方式》,明确"npm 依赖,不 clone 不 fork"
|
|
1250
|
+
- 新增 5.1.1 节《会话与切换行为》,定义并行对话与切库自动保存
|
|
1251
|
+
- 重写 6.1 节《知识库存储策略》,从单一目录改为"默认 `~/llm-wiki/` + 外部登记"混合策略
|
|
1252
|
+
- 新增 6.4 节《Obsidian 共存规则》,明确 agent 不碰的文件类型
|
|
1253
|
+
- 新增 6.6 节《中文路径与 UTF-8 铁律》
|
|
1254
|
+
- 新增 ADR-10 ~ ADR-15 六条决策
|
|
1255
|
+
- TBD-1 / TBD-3 / TBD-5 / TBD-7 关闭并归档到 ADR
|
|
1256
|
+
- TBD-2 改为阶段三才决定(阶段一固定 Sonnet)
|
|
1257
|
+
- 阶段一范围补充:知识库扫描含外部库登记、多并行对话支持
|
|
1258
|
+
- 阶段二范围补充:内置 `/new-wiki` 命令、设置面板 UI
|
|
1259
|
+
- **2026-05-26 v3**:
|
|
1260
|
+
- 新增 6.7 节《边界场景行为约定》:单实例、无网络/无 key、崩溃恢复、后端未起、目录失效
|
|
1261
|
+
- **重写 ADR-13**:模型认证完全复用 pi-agent 的 `~/.pi/agent/auth.json`,三层 fallback(pi CLI 登录 / UI 填 key / env var);`config.json` 不再存任何凭证
|
|
1262
|
+
- 新增 ADR-13b:明确不抄 open-design 的多 CLI 子进程模式
|
|
1263
|
+
- 重写 6.3 应用数据目录,澄清"应用数据 / 知识库数据 / 模型凭证"三类彻底分离
|
|
1264
|
+
- 阶段二范围细化:设置面板 UI 改为"三层认证 + 偏好",验收标准更新
|
|
1265
|
+
- **2026-05-27 v9(阶段三完成标记)**:阶段三全部 8 step + 1 fix commit 完成,审查通过合并到 main
|
|
1266
|
+
- §4 阶段三标题加 `✅ 已完成 2026-05-27`
|
|
1267
|
+
- §10 阶段三标记已完成,补充 9 commit 表 + 完成情况(范围、决策、妥协)
|
|
1268
|
+
- CLAUDE.md 更新"项目当前阶段":阶段二 → 阶段三
|