onetool-mcp 1.0.0b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- onetool_mcp-1.0.0b1/.chunkhound.json +37 -0
- onetool_mcp-1.0.0b1/.claude/commands/openspec/apply.md +23 -0
- onetool_mcp-1.0.0b1/.claude/commands/openspec/archive.md +27 -0
- onetool_mcp-1.0.0b1/.claude/commands/openspec/proposal.md +28 -0
- onetool_mcp-1.0.0b1/.claude/commands/proj/consult.md +63 -0
- onetool_mcp-1.0.0b1/.claude/commands/proj/doc-sync.md +165 -0
- onetool_mcp-1.0.0b1/.claude/commands/proj/prime.md +8 -0
- onetool_mcp-1.0.0b1/.claude/commands/proj/quick-apply.md +183 -0
- onetool_mcp-1.0.0b1/.claude/commands/proj/review-py.md +252 -0
- onetool_mcp-1.0.0b1/.claude/commands/proj/sanity.md +65 -0
- onetool_mcp-1.0.0b1/.claude/skills/humanizer/SKILL.md +437 -0
- onetool_mcp-1.0.0b1/.gitattributes +1 -0
- onetool_mcp-1.0.0b1/.github/workflows/docs.yml +71 -0
- onetool_mcp-1.0.0b1/.github/workflows/publish.yml +63 -0
- onetool_mcp-1.0.0b1/.gitignore +109 -0
- onetool_mcp-1.0.0b1/.gitleaks.toml +19 -0
- onetool_mcp-1.0.0b1/.markdownlint.json +7 -0
- onetool_mcp-1.0.0b1/AGENTS.md +1 -0
- onetool_mcp-1.0.0b1/AGENTS_PRIME.md +16 -0
- onetool_mcp-1.0.0b1/AGENTS_RULES.md +60 -0
- onetool_mcp-1.0.0b1/CHANGELOG.md +40 -0
- onetool_mcp-1.0.0b1/CLAUDE.md +54 -0
- onetool_mcp-1.0.0b1/LICENSE.txt +687 -0
- onetool_mcp-1.0.0b1/NOTICE.txt +64 -0
- onetool_mcp-1.0.0b1/PKG-INFO +163 -0
- onetool_mcp-1.0.0b1/README.md +113 -0
- onetool_mcp-1.0.0b1/demo/.onetool/config/bench.yaml +21 -0
- onetool_mcp-1.0.0b1/demo/.onetool/config/onetool.yaml +78 -0
- onetool_mcp-1.0.0b1/demo/.onetool/stats/stats.jsonl +30 -0
- onetool_mcp-1.0.0b1/demo/.onetool/tools/demo/demo_tools.py +94 -0
- onetool_mcp-1.0.0b1/demo/README.md +67 -0
- onetool_mcp-1.0.0b1/demo/bench/compare.yaml +231 -0
- onetool_mcp-1.0.0b1/demo/bench/features.yaml +273 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_brave_search.yaml +80 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_code_search.yaml +85 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_context7.yaml +53 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_convert.yaml +140 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_db.yaml +72 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_diagram.yaml +280 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_excel.yaml +99 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_file.yaml +131 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_github.yaml +73 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_grounding_search.yaml +127 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_package.yaml +56 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_ripgrep.yaml +126 -0
- onetool_mcp-1.0.0b1/demo/bench/tool_web_fetch.yaml +87 -0
- onetool_mcp-1.0.0b1/demo/data/file_example_1MB.docx +0 -0
- onetool_mcp-1.0.0b1/demo/data/file_example_PPT_1MB.pptx +0 -0
- onetool_mcp-1.0.0b1/demo/data/file_example_XLS_1000.xlsx +0 -0
- onetool_mcp-1.0.0b1/demo/data/sample_sales.xlsx +0 -0
- onetool_mcp-1.0.0b1/demo/justfile +63 -0
- onetool_mcp-1.0.0b1/demo/prompts/onetool-in-action.md +202 -0
- onetool_mcp-1.0.0b1/docs/CNAME +1 -0
- onetool_mcp-1.0.0b1/docs/_internal/bento-demo.html +424 -0
- onetool_mcp-1.0.0b1/docs/_internal/brand/brand.md +194 -0
- onetool_mcp-1.0.0b1/docs/_internal/brand/claims.md +55 -0
- onetool_mcp-1.0.0b1/docs/_internal/brand/references.md +27 -0
- onetool_mcp-1.0.0b1/docs/_internal/brand/release-v1.0.0b1.md +49 -0
- onetool_mcp-1.0.0b1/docs/_internal/brand/tool-packs.md +22 -0
- onetool_mcp-1.0.0b1/docs/_internal/features-layout.md +412 -0
- onetool_mcp-1.0.0b1/docs/_internal/ideas/linkedin-article.md +57 -0
- onetool_mcp-1.0.0b1/docs/_internal/ideas/why-onetool-source.md +356 -0
- onetool_mcp-1.0.0b1/docs/_internal/ideas/write-ideas.md +109 -0
- onetool_mcp-1.0.0b1/docs/_internal/why-onetool.md +80 -0
- onetool_mcp-1.0.0b1/docs/about.md +18 -0
- onetool_mcp-1.0.0b1/docs/assets/logo-blue.png +0 -0
- onetool_mcp-1.0.0b1/docs/assets/logo-white.png +0 -0
- onetool_mcp-1.0.0b1/docs/assets/ml.svg +31 -0
- onetool_mcp-1.0.0b1/docs/assets/onetool-favicon-64.png +0 -0
- onetool_mcp-1.0.0b1/docs/assets/onetool-logo.png +0 -0
- onetool_mcp-1.0.0b1/docs/extending/creating-clis.md +368 -0
- onetool_mcp-1.0.0b1/docs/extending/creating-tools.md +481 -0
- onetool_mcp-1.0.0b1/docs/extending/extensions.md +374 -0
- onetool_mcp-1.0.0b1/docs/extending/index.md +5 -0
- onetool_mcp-1.0.0b1/docs/extending/logging.md +253 -0
- onetool_mcp-1.0.0b1/docs/extending/testing.md +246 -0
- onetool_mcp-1.0.0b1/docs/features.md +231 -0
- onetool_mcp-1.0.0b1/docs/index.md +54 -0
- onetool_mcp-1.0.0b1/docs/learn/comparison.md +33 -0
- onetool_mcp-1.0.0b1/docs/learn/configuration.md +627 -0
- onetool_mcp-1.0.0b1/docs/learn/database-queries.md +94 -0
- onetool_mcp-1.0.0b1/docs/learn/examples.md +90 -0
- onetool_mcp-1.0.0b1/docs/learn/explicit-calls.md +196 -0
- onetool_mcp-1.0.0b1/docs/learn/index.md +5 -0
- onetool_mcp-1.0.0b1/docs/learn/installation.md +242 -0
- onetool_mcp-1.0.0b1/docs/learn/prompting-best-practices.md +84 -0
- onetool_mcp-1.0.0b1/docs/learn/quickstart.md +41 -0
- onetool_mcp-1.0.0b1/docs/learn/security.md +237 -0
- onetool_mcp-1.0.0b1/docs/llms.txt +65 -0
- onetool_mcp-1.0.0b1/docs/overrides/partials/integrations/analytics/posthog.html +15 -0
- onetool_mcp-1.0.0b1/docs/reference/cli/bench.md +128 -0
- onetool_mcp-1.0.0b1/docs/reference/cli/index.md +8 -0
- onetool_mcp-1.0.0b1/docs/reference/cli/onetool.md +103 -0
- onetool_mcp-1.0.0b1/docs/reference/index.md +5 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/brave.md +60 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/code.md +119 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/context7.md +70 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/convert.md +204 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/db.md +66 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/diagram.md +133 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/excel.md +187 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/file.md +206 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/firecrawl.md +91 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/ground.md +77 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/index.md +29 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/llm.md +79 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/ot.md +268 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/package.md +61 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/ripgrep.md +105 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/scaffold.md +65 -0
- onetool_mcp-1.0.0b1/docs/reference/tools/web.md +84 -0
- onetool_mcp-1.0.0b1/docs/results/result-20260119.csv +8 -0
- onetool_mcp-1.0.0b1/docs/stylesheets/extra.css +40 -0
- onetool_mcp-1.0.0b1/justfile +182 -0
- onetool_mcp-1.0.0b1/licenses/brave-search-mcp-server-LICENSE +25 -0
- onetool_mcp-1.0.0b1/licenses/chunkhound-LICENSE +24 -0
- onetool_mcp-1.0.0b1/licenses/context7-LICENSE +24 -0
- onetool_mcp-1.0.0b1/licenses/excel-mcp-server-LICENSE +21 -0
- onetool_mcp-1.0.0b1/licenses/mcp-alchemy-LICENSE +373 -0
- onetool_mcp-1.0.0b1/licenses/mcp-package-version-LICENSE +21 -0
- onetool_mcp-1.0.0b1/licenses/trafilatura-LICENSE +182 -0
- onetool_mcp-1.0.0b1/mkdocs.yml +184 -0
- onetool_mcp-1.0.0b1/openspec/AGENTS.md +473 -0
- onetool_mcp-1.0.0b1/openspec/README.md +578 -0
- onetool_mcp-1.0.0b1/openspec/project.md +79 -0
- onetool_mcp-1.0.0b1/openspec/specs/INDEX.md +133 -0
- onetool_mcp-1.0.0b1/openspec/specs/_nf-conventions/spec.md +485 -0
- onetool_mcp-1.0.0b1/openspec/specs/_nf-docs/spec.md +437 -0
- onetool_mcp-1.0.0b1/openspec/specs/_nf-observability/spec.md +440 -0
- onetool_mcp-1.0.0b1/openspec/specs/_nf-paths/spec.md +413 -0
- onetool_mcp-1.0.0b1/openspec/specs/_nf-testing/spec.md +242 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench/spec.md +233 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench-config/spec.md +158 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench-csv/spec.md +35 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench-evaluators/spec.md +69 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench-logging/spec.md +183 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench-metrics/spec.md +63 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench-tasks/spec.md +116 -0
- onetool_mcp-1.0.0b1/openspec/specs/bench-tui/spec.md +84 -0
- onetool_mcp-1.0.0b1/openspec/specs/onetool-cli/spec.md +111 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-code-validation/spec.md +250 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-configuration/spec.md +1276 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-mcp-discoverability/spec.md +92 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-mcp-proxy/spec.md +188 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-output-sanitization/spec.md +103 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-prompts/spec.md +197 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-run-tool/spec.md +421 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-stats/spec.md +183 -0
- onetool_mcp-1.0.0b1/openspec/specs/serve-tools-packages/spec.md +60 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-brave-search/spec.md +178 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-code-search/spec.md +217 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-context7/spec.md +164 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-convert/spec.md +370 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-db/spec.md +188 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-diagram/spec.md +333 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-excel/spec.md +391 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-execution/spec.md +98 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-file/spec.md +387 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-firecrawl/spec.md +250 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-grounding-search/spec.md +204 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-internal/spec.md +111 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-notify/spec.md +98 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-ot/spec.md +528 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-package/spec.md +155 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-ripgrep/spec.md +220 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-scaffold/spec.md +149 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-sdk/spec.md +27 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-transform/spec.md +180 -0
- onetool_mcp-1.0.0b1/openspec/specs/tool-web-fetch/spec.md +238 -0
- onetool_mcp-1.0.0b1/pyproject.toml +198 -0
- onetool_mcp-1.0.0b1/resources/docker/kroki/docker-compose.yaml +60 -0
- onetool_mcp-1.0.0b1/src/bench/__init__.py +5 -0
- onetool_mcp-1.0.0b1/src/bench/cli.py +69 -0
- onetool_mcp-1.0.0b1/src/bench/harness/__init__.py +66 -0
- onetool_mcp-1.0.0b1/src/bench/harness/client.py +692 -0
- onetool_mcp-1.0.0b1/src/bench/harness/config.py +397 -0
- onetool_mcp-1.0.0b1/src/bench/harness/csv_writer.py +109 -0
- onetool_mcp-1.0.0b1/src/bench/harness/evaluate.py +512 -0
- onetool_mcp-1.0.0b1/src/bench/harness/metrics.py +283 -0
- onetool_mcp-1.0.0b1/src/bench/harness/runner.py +899 -0
- onetool_mcp-1.0.0b1/src/bench/py.typed +0 -0
- onetool_mcp-1.0.0b1/src/bench/reporter.py +629 -0
- onetool_mcp-1.0.0b1/src/bench/run.py +487 -0
- onetool_mcp-1.0.0b1/src/bench/secrets.py +101 -0
- onetool_mcp-1.0.0b1/src/bench/utils.py +16 -0
- onetool_mcp-1.0.0b1/src/onetool/__init__.py +4 -0
- onetool_mcp-1.0.0b1/src/onetool/cli.py +391 -0
- onetool_mcp-1.0.0b1/src/onetool/py.typed +0 -0
- onetool_mcp-1.0.0b1/src/ot/__init__.py +37 -0
- onetool_mcp-1.0.0b1/src/ot/__main__.py +6 -0
- onetool_mcp-1.0.0b1/src/ot/_cli.py +107 -0
- onetool_mcp-1.0.0b1/src/ot/_tui.py +53 -0
- onetool_mcp-1.0.0b1/src/ot/config/__init__.py +46 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/bench.yaml +4 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/diagram-templates/api-flow.mmd +33 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/diagram-templates/c4-context.puml +30 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/diagram-templates/class-diagram.mmd +87 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/diagram-templates/feature-mindmap.mmd +70 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/diagram-templates/microservices.d2 +81 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/diagram-templates/project-gantt.mmd +37 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/diagram-templates/state-machine.mmd +42 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/onetool.yaml +25 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/prompts.yaml +97 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/servers.yaml +7 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/snippets.yaml +4 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/tool_templates/__init__.py +7 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/tool_templates/extension.py +52 -0
- onetool_mcp-1.0.0b1/src/ot/config/defaults/tool_templates/isolated.py +61 -0
- onetool_mcp-1.0.0b1/src/ot/config/dynamic.py +121 -0
- onetool_mcp-1.0.0b1/src/ot/config/global_templates/__init__.py +2 -0
- onetool_mcp-1.0.0b1/src/ot/config/global_templates/bench-secrets-template.yaml +6 -0
- onetool_mcp-1.0.0b1/src/ot/config/global_templates/bench.yaml +9 -0
- onetool_mcp-1.0.0b1/src/ot/config/global_templates/onetool.yaml +27 -0
- onetool_mcp-1.0.0b1/src/ot/config/global_templates/secrets-template.yaml +44 -0
- onetool_mcp-1.0.0b1/src/ot/config/global_templates/servers.yaml +18 -0
- onetool_mcp-1.0.0b1/src/ot/config/global_templates/snippets.yaml +235 -0
- onetool_mcp-1.0.0b1/src/ot/config/loader.py +1087 -0
- onetool_mcp-1.0.0b1/src/ot/config/mcp.py +145 -0
- onetool_mcp-1.0.0b1/src/ot/config/secrets.py +190 -0
- onetool_mcp-1.0.0b1/src/ot/config/tool_config.py +125 -0
- onetool_mcp-1.0.0b1/src/ot/decorators.py +116 -0
- onetool_mcp-1.0.0b1/src/ot/executor/__init__.py +35 -0
- onetool_mcp-1.0.0b1/src/ot/executor/base.py +16 -0
- onetool_mcp-1.0.0b1/src/ot/executor/fence_processor.py +83 -0
- onetool_mcp-1.0.0b1/src/ot/executor/linter.py +142 -0
- onetool_mcp-1.0.0b1/src/ot/executor/pack_proxy.py +260 -0
- onetool_mcp-1.0.0b1/src/ot/executor/param_resolver.py +140 -0
- onetool_mcp-1.0.0b1/src/ot/executor/pep723.py +288 -0
- onetool_mcp-1.0.0b1/src/ot/executor/result_store.py +369 -0
- onetool_mcp-1.0.0b1/src/ot/executor/runner.py +496 -0
- onetool_mcp-1.0.0b1/src/ot/executor/simple.py +163 -0
- onetool_mcp-1.0.0b1/src/ot/executor/tool_loader.py +396 -0
- onetool_mcp-1.0.0b1/src/ot/executor/validator.py +398 -0
- onetool_mcp-1.0.0b1/src/ot/executor/worker_pool.py +388 -0
- onetool_mcp-1.0.0b1/src/ot/executor/worker_proxy.py +189 -0
- onetool_mcp-1.0.0b1/src/ot/http_client.py +145 -0
- onetool_mcp-1.0.0b1/src/ot/logging/__init__.py +37 -0
- onetool_mcp-1.0.0b1/src/ot/logging/config.py +315 -0
- onetool_mcp-1.0.0b1/src/ot/logging/entry.py +213 -0
- onetool_mcp-1.0.0b1/src/ot/logging/format.py +188 -0
- onetool_mcp-1.0.0b1/src/ot/logging/span.py +349 -0
- onetool_mcp-1.0.0b1/src/ot/meta.py +1555 -0
- onetool_mcp-1.0.0b1/src/ot/paths.py +453 -0
- onetool_mcp-1.0.0b1/src/ot/prompts.py +218 -0
- onetool_mcp-1.0.0b1/src/ot/proxy/__init__.py +21 -0
- onetool_mcp-1.0.0b1/src/ot/proxy/manager.py +396 -0
- onetool_mcp-1.0.0b1/src/ot/py.typed +0 -0
- onetool_mcp-1.0.0b1/src/ot/registry/__init__.py +189 -0
- onetool_mcp-1.0.0b1/src/ot/registry/models.py +57 -0
- onetool_mcp-1.0.0b1/src/ot/registry/parser.py +269 -0
- onetool_mcp-1.0.0b1/src/ot/registry/registry.py +413 -0
- onetool_mcp-1.0.0b1/src/ot/server.py +315 -0
- onetool_mcp-1.0.0b1/src/ot/shortcuts/__init__.py +15 -0
- onetool_mcp-1.0.0b1/src/ot/shortcuts/aliases.py +87 -0
- onetool_mcp-1.0.0b1/src/ot/shortcuts/snippets.py +258 -0
- onetool_mcp-1.0.0b1/src/ot/stats/__init__.py +35 -0
- onetool_mcp-1.0.0b1/src/ot/stats/html.py +250 -0
- onetool_mcp-1.0.0b1/src/ot/stats/jsonl_writer.py +283 -0
- onetool_mcp-1.0.0b1/src/ot/stats/reader.py +354 -0
- onetool_mcp-1.0.0b1/src/ot/stats/timing.py +57 -0
- onetool_mcp-1.0.0b1/src/ot/support.py +63 -0
- onetool_mcp-1.0.0b1/src/ot/tools.py +114 -0
- onetool_mcp-1.0.0b1/src/ot/utils/__init__.py +81 -0
- onetool_mcp-1.0.0b1/src/ot/utils/batch.py +161 -0
- onetool_mcp-1.0.0b1/src/ot/utils/cache.py +120 -0
- onetool_mcp-1.0.0b1/src/ot/utils/deps.py +403 -0
- onetool_mcp-1.0.0b1/src/ot/utils/exceptions.py +23 -0
- onetool_mcp-1.0.0b1/src/ot/utils/factory.py +179 -0
- onetool_mcp-1.0.0b1/src/ot/utils/format.py +65 -0
- onetool_mcp-1.0.0b1/src/ot/utils/http.py +202 -0
- onetool_mcp-1.0.0b1/src/ot/utils/platform.py +45 -0
- onetool_mcp-1.0.0b1/src/ot/utils/sanitize.py +130 -0
- onetool_mcp-1.0.0b1/src/ot/utils/truncate.py +69 -0
- onetool_mcp-1.0.0b1/src/ot_tools/__init__.py +4 -0
- onetool_mcp-1.0.0b1/src/ot_tools/_convert/__init__.py +12 -0
- onetool_mcp-1.0.0b1/src/ot_tools/_convert/excel.py +279 -0
- onetool_mcp-1.0.0b1/src/ot_tools/_convert/pdf.py +254 -0
- onetool_mcp-1.0.0b1/src/ot_tools/_convert/powerpoint.py +268 -0
- onetool_mcp-1.0.0b1/src/ot_tools/_convert/utils.py +358 -0
- onetool_mcp-1.0.0b1/src/ot_tools/_convert/word.py +283 -0
- onetool_mcp-1.0.0b1/src/ot_tools/brave_search.py +604 -0
- onetool_mcp-1.0.0b1/src/ot_tools/code_search.py +736 -0
- onetool_mcp-1.0.0b1/src/ot_tools/context7.py +495 -0
- onetool_mcp-1.0.0b1/src/ot_tools/convert.py +614 -0
- onetool_mcp-1.0.0b1/src/ot_tools/db.py +415 -0
- onetool_mcp-1.0.0b1/src/ot_tools/diagram.py +1604 -0
- onetool_mcp-1.0.0b1/src/ot_tools/diagram.yaml +167 -0
- onetool_mcp-1.0.0b1/src/ot_tools/excel.py +1372 -0
- onetool_mcp-1.0.0b1/src/ot_tools/file.py +1348 -0
- onetool_mcp-1.0.0b1/src/ot_tools/firecrawl.py +732 -0
- onetool_mcp-1.0.0b1/src/ot_tools/grounding_search.py +646 -0
- onetool_mcp-1.0.0b1/src/ot_tools/package.py +604 -0
- onetool_mcp-1.0.0b1/src/ot_tools/py.typed +0 -0
- onetool_mcp-1.0.0b1/src/ot_tools/ripgrep.py +544 -0
- onetool_mcp-1.0.0b1/src/ot_tools/scaffold.py +471 -0
- onetool_mcp-1.0.0b1/src/ot_tools/transform.py +213 -0
- onetool_mcp-1.0.0b1/src/ot_tools/web_fetch.py +384 -0
- onetool_mcp-1.0.0b1/tests/.onetool/config/onetool.yaml +15 -0
- onetool_mcp-1.0.0b1/tests/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/conftest.py +235 -0
- onetool_mcp-1.0.0b1/tests/integration/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/integration/bench/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/integration/bench/test_context_metrics.py +371 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/conftest.py +14 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_brave_search.py +33 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_context7.py +40 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_convert.py +414 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_firecrawl.py +53 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_grounding_search.py +33 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_package.py +112 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_ripgrep.py +54 -0
- onetool_mcp-1.0.0b1/tests/integration/tools/test_web_fetch.py +41 -0
- onetool_mcp-1.0.0b1/tests/sanity/test_sanity-hints.md +41 -0
- onetool_mcp-1.0.0b1/tests/sanity/test_sanity.md +107 -0
- onetool_mcp-1.0.0b1/tests/sanity/test_sanity_status.yaml +203 -0
- onetool_mcp-1.0.0b1/tests/smoke/test_cli_bench.py +35 -0
- onetool_mcp-1.0.0b1/tests/smoke/test_cli_onetool.py +53 -0
- onetool_mcp-1.0.0b1/tests/smoke/test_config.py +43 -0
- onetool_mcp-1.0.0b1/tests/smoke/test_registry.py +44 -0
- onetool_mcp-1.0.0b1/tests/unit/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/unit/bench/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/unit/bench/test_csv_writer.py +212 -0
- onetool_mcp-1.0.0b1/tests/unit/bench/test_evaluate.py +337 -0
- onetool_mcp-1.0.0b1/tests/unit/bench/test_metrics.py +264 -0
- onetool_mcp-1.0.0b1/tests/unit/core/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/unit/core/conftest.py +47 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_code_linter.py +183 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_code_validator.py +445 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_config_loader.py +963 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_config_settings.py +33 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_features_config.py +151 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_features_python.py +170 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_features_triggers.py +243 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_format.py +203 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_http_client.py +203 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_log_format.py +150 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_meta_help.py +287 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_meta_timed.py +48 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_param_resolver.py +202 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_paths.py +91 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_pep723.py +291 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_platform_utils.py +90 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_proxy_manager.py +176 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_python_exec.py +708 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_result_store.py +560 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_sanitize.py +243 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_secrets.py +225 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_shortcuts.py +313 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_stats.py +442 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_support.py +38 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_tool_loader.py +103 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_tools.py +73 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_worker_pool.py +164 -0
- onetool_mcp-1.0.0b1/tests/unit/core/test_worker_proxy.py +197 -0
- onetool_mcp-1.0.0b1/tests/unit/serve/test_tool_registry.py +239 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/__init__.py +0 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_brave_search.py +572 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_code_search.py +775 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_context7.py +541 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_convert.py +462 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_excel.py +951 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_file.py +688 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_firecrawl.py +581 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_grounding_search.py +711 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_info.py +778 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_notify.py +163 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_package.py +821 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_ripgrep.py +729 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_scaffold.py +584 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_transform.py +544 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/test_web_fetch.py +478 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/tool_db/test_db.py +475 -0
- onetool_mcp-1.0.0b1/tests/unit/tools/tool_diagram/test_diagram.py +441 -0
- onetool_mcp-1.0.0b1/uv.lock +3916 -0
- onetool_mcp-1.0.0b1/workspace.code-workspace +33 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"database": {
|
|
3
|
+
"provider": "duckdb"
|
|
4
|
+
},
|
|
5
|
+
"embedding": {
|
|
6
|
+
"provider": "openai",
|
|
7
|
+
"model": "text-embedding-3-small",
|
|
8
|
+
"base_url": "https://openrouter.ai/api/v1"
|
|
9
|
+
},
|
|
10
|
+
"indexing": {
|
|
11
|
+
"include": [
|
|
12
|
+
"**/*.py",
|
|
13
|
+
"**/*.md",
|
|
14
|
+
"**/*.yaml",
|
|
15
|
+
"**/*.toml",
|
|
16
|
+
"**/*.json"
|
|
17
|
+
],
|
|
18
|
+
"exclude": [
|
|
19
|
+
"**/node_modules/**",
|
|
20
|
+
"**/__pycache__/**",
|
|
21
|
+
"**/.venv/**",
|
|
22
|
+
"**/dist/**",
|
|
23
|
+
"**/build/**",
|
|
24
|
+
"**/*.egg-info/**",
|
|
25
|
+
"**/.git/**",
|
|
26
|
+
"**/.local/**",
|
|
27
|
+
"**/htmlcov/**",
|
|
28
|
+
"**/.mypy_cache/**",
|
|
29
|
+
"**/.pytest_cache/**",
|
|
30
|
+
"**/.ruff_cache/**"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"mcp": {
|
|
34
|
+
"transport": "stdio"
|
|
35
|
+
},
|
|
36
|
+
"debug": false
|
|
37
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: OpenSpec: Apply
|
|
3
|
+
description: Implement an approved OpenSpec change and keep tasks in sync.
|
|
4
|
+
category: OpenSpec
|
|
5
|
+
tags: [openspec, apply]
|
|
6
|
+
---
|
|
7
|
+
<!-- OPENSPEC:START -->
|
|
8
|
+
**Guardrails**
|
|
9
|
+
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
|
|
10
|
+
- Keep changes tightly scoped to the requested outcome.
|
|
11
|
+
- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications.
|
|
12
|
+
|
|
13
|
+
**Steps**
|
|
14
|
+
Track these steps as TODOs and complete them one by one.
|
|
15
|
+
1. Read `changes/<id>/proposal.md`, `design.md` (if present), and `tasks.md` to confirm scope and acceptance criteria.
|
|
16
|
+
2. Work through tasks sequentially, keeping edits minimal and focused on the requested change.
|
|
17
|
+
3. Confirm completion before updating statuses—make sure every item in `tasks.md` is finished.
|
|
18
|
+
4. Update the checklist after all work is done so each task is marked `- [x]` and reflects reality.
|
|
19
|
+
5. Reference `openspec list` or `openspec show <item>` when additional context is required.
|
|
20
|
+
|
|
21
|
+
**Reference**
|
|
22
|
+
- Use `openspec show <id> --json --deltas-only` if you need additional context from the proposal while implementing.
|
|
23
|
+
<!-- OPENSPEC:END -->
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: OpenSpec: Archive
|
|
3
|
+
description: Archive a deployed OpenSpec change and update specs.
|
|
4
|
+
category: OpenSpec
|
|
5
|
+
tags: [openspec, archive]
|
|
6
|
+
---
|
|
7
|
+
<!-- OPENSPEC:START -->
|
|
8
|
+
**Guardrails**
|
|
9
|
+
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
|
|
10
|
+
- Keep changes tightly scoped to the requested outcome.
|
|
11
|
+
- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications.
|
|
12
|
+
|
|
13
|
+
**Steps**
|
|
14
|
+
1. Determine the change ID to archive:
|
|
15
|
+
- If this prompt already includes a specific change ID (for example inside a `<ChangeId>` block populated by slash-command arguments), use that value after trimming whitespace.
|
|
16
|
+
- If the conversation references a change loosely (for example by title or summary), run `openspec list` to surface likely IDs, share the relevant candidates, and confirm which one the user intends.
|
|
17
|
+
- Otherwise, review the conversation, run `openspec list`, and ask the user which change to archive; wait for a confirmed change ID before proceeding.
|
|
18
|
+
- If you still cannot identify a single change ID, stop and tell the user you cannot archive anything yet.
|
|
19
|
+
2. Validate the change ID by running `openspec list` (or `openspec show <id>`) and stop if the change is missing, already archived, or otherwise not ready to archive.
|
|
20
|
+
3. Run `openspec archive <id> --yes` so the CLI moves the change and applies spec updates without prompts (use `--skip-specs` only for tooling-only work).
|
|
21
|
+
4. Review the command output to confirm the target specs were updated and the change landed in `changes/archive/`.
|
|
22
|
+
5. Validate with `openspec validate --strict` and inspect with `openspec show <id>` if anything looks off.
|
|
23
|
+
|
|
24
|
+
**Reference**
|
|
25
|
+
- Use `openspec list` to confirm change IDs before archiving.
|
|
26
|
+
- Inspect refreshed specs with `openspec list --specs` and address any validation issues before handing off.
|
|
27
|
+
<!-- OPENSPEC:END -->
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: OpenSpec: Proposal
|
|
3
|
+
description: Scaffold a new OpenSpec change and validate strictly.
|
|
4
|
+
category: OpenSpec
|
|
5
|
+
tags: [openspec, change]
|
|
6
|
+
---
|
|
7
|
+
<!-- OPENSPEC:START -->
|
|
8
|
+
**Guardrails**
|
|
9
|
+
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
|
|
10
|
+
- Keep changes tightly scoped to the requested outcome.
|
|
11
|
+
- Refer to `openspec/AGENTS.md` (located inside the `openspec/` directory—run `ls openspec` or `openspec update` if you don't see it) if you need additional OpenSpec conventions or clarifications.
|
|
12
|
+
- Identify any vague or ambiguous details and ask the necessary follow-up questions before editing files.
|
|
13
|
+
- Do not write any code during the proposal stage. Only create design documents (proposal.md, tasks.md, design.md, and spec deltas). Implementation happens in the apply stage after approval.
|
|
14
|
+
|
|
15
|
+
**Steps**
|
|
16
|
+
1. Review `openspec/project.md`, run `openspec list` and `openspec list --specs`, and inspect related code or docs (e.g., via `rg`/`ls`) to ground the proposal in current behaviour; note any gaps that require clarification.
|
|
17
|
+
2. Choose a unique verb-led `change-id` and scaffold `proposal.md`, `tasks.md`, and `design.md` (when needed) under `openspec/changes/<id>/`.
|
|
18
|
+
3. Map the change into concrete capabilities or requirements, breaking multi-scope efforts into distinct spec deltas with clear relationships and sequencing.
|
|
19
|
+
4. Capture architectural reasoning in `design.md` when the solution spans multiple systems, introduces new patterns, or demands trade-off discussion before committing to specs.
|
|
20
|
+
5. Draft spec deltas in `changes/<id>/specs/<capability>/spec.md` (one folder per capability) using `## ADDED|MODIFIED|REMOVED Requirements` with at least one `#### Scenario:` per requirement and cross-reference related capabilities when relevant.
|
|
21
|
+
6. Draft `tasks.md` as an ordered list of small, verifiable work items that deliver user-visible progress, include validation (tests, tooling), and highlight dependencies or parallelizable work.
|
|
22
|
+
7. Validate with `openspec validate <id> --strict` and resolve every issue before sharing the proposal.
|
|
23
|
+
|
|
24
|
+
**Reference**
|
|
25
|
+
- Use `openspec show <id> --json --deltas-only` or `openspec show <spec> --type spec` to inspect details when validation fails.
|
|
26
|
+
- Search existing requirements with `rg -n "Requirement:|Scenario:" openspec/specs` before writing new ones.
|
|
27
|
+
- Explore the codebase with `rg <keyword>`, `ls`, or direct file reads so proposals align with current implementation realities.
|
|
28
|
+
<!-- OPENSPEC:END -->
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Consult
|
|
3
|
+
description: Interactive consultation mode for research and Q&A. Can save findings on explicit request.
|
|
4
|
+
category: onetool
|
|
5
|
+
tags: [consultation, research, qa, findings]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**Assumptions**
|
|
9
|
+
- Uses openspec (`openspec/project.md` for context)
|
|
10
|
+
- Language agnostic
|
|
11
|
+
|
|
12
|
+
**Guardrails**
|
|
13
|
+
- This is primarily a READ-ONLY consultation session. You MUST NOT:
|
|
14
|
+
- Make git commits or push changes
|
|
15
|
+
- Run commands that modify the system (e.g., `git commit`, `rm`, `mv`, `npm install`)
|
|
16
|
+
- Modify existing project source code
|
|
17
|
+
- You CAN and SHOULD:
|
|
18
|
+
- Read files, search code, and explore the codebase
|
|
19
|
+
- Run read-only commands (e.g., `git log`, `git status`, `git diff`, `ls`, `cat`)
|
|
20
|
+
- Use web search for up-to-date information
|
|
21
|
+
- Answer questions thoroughly with code references
|
|
22
|
+
- Ask clarifying questions to understand user needs
|
|
23
|
+
- **Writing Findings (on explicit request only)**:
|
|
24
|
+
- When the user explicitly asks to save, write, or document findings (e.g., "save these findings", "write this up", "document what we found"):
|
|
25
|
+
- Suggest a descriptive filename based on the topic discussed
|
|
26
|
+
- Write findings to `plan/consult/<name>.md` (create directory if needed)
|
|
27
|
+
- Unless user specifies a different location
|
|
28
|
+
- Use a clear heading with date/time and topic
|
|
29
|
+
- Include key discoveries, code references, and conclusions
|
|
30
|
+
- Do NOT write findings unless the user explicitly requests it
|
|
31
|
+
- The session continues until the user explicitly ends it (e.g., "end consultation", "done consulting", "exit consult mode").
|
|
32
|
+
|
|
33
|
+
**Steps**
|
|
34
|
+
1. Begin the consultation:
|
|
35
|
+
- Acknowledge entering consultation mode.
|
|
36
|
+
- Briefly explain the read-only constraints.
|
|
37
|
+
- Ask what the user would like to explore or discuss.
|
|
38
|
+
2. Handle each question:
|
|
39
|
+
- Listen to the user's question or topic.
|
|
40
|
+
- Use read-only tools (Read, Glob, Grep, WebSearch, WebFetch, Task with Explore agent) to research.
|
|
41
|
+
- Provide clear, detailed answers with file references where relevant.
|
|
42
|
+
- Ask follow-up questions if clarification is needed.
|
|
43
|
+
3. Continue the dialogue:
|
|
44
|
+
- After answering, check if the user has more questions.
|
|
45
|
+
- Offer to dive deeper into related topics.
|
|
46
|
+
- Suggest areas that might be worth exploring.
|
|
47
|
+
4. Save findings (on explicit request):
|
|
48
|
+
- When user asks to save/document findings:
|
|
49
|
+
- Suggest a filename: "I'll save this as `plan/consult/<topic>.md` - sound good?"
|
|
50
|
+
- Create `plan/consult/` directory if it doesn't exist
|
|
51
|
+
- Write with dated heading and key discoveries
|
|
52
|
+
- Confirm what was written
|
|
53
|
+
5. End the session:
|
|
54
|
+
- When the user signals they are done (e.g., "end consultation", "done", "exit"):
|
|
55
|
+
- Summarize key findings from the session.
|
|
56
|
+
- Suggest next steps if applicable (e.g., creating a proposal, making changes).
|
|
57
|
+
- Confirm the session has ended.
|
|
58
|
+
|
|
59
|
+
**Reference**
|
|
60
|
+
- Use exploration agents (Task with subagent_type=Explore) for open-ended codebase questions.
|
|
61
|
+
- Reference files using markdown link format: `[filename.ts](path/to/file.ts)`.
|
|
62
|
+
- For web research, cite sources in your answers.
|
|
63
|
+
- Cross-reference with `openspec/project.md` for project context when relevant.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Doc Sync
|
|
3
|
+
description: Check code and ensure documentation is in sync with implementation.
|
|
4
|
+
category: onetool
|
|
5
|
+
tags: [documentation, sync, review, tools, cli]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Verify that all documentation accurately reflects the current implementation by reviewing CLI commands and tools against their documentation.
|
|
11
|
+
|
|
12
|
+
## Scope
|
|
13
|
+
- README.md
|
|
14
|
+
- All docs in `/docs`
|
|
15
|
+
- `docs/llms.txt`
|
|
16
|
+
|
|
17
|
+
**Guardrails**
|
|
18
|
+
- DO NOT make changes without explicit user confirmation
|
|
19
|
+
- DO NOT create commits - this is a review command
|
|
20
|
+
- Present findings clearly in a table format
|
|
21
|
+
- Code is the source of truth - docs should match implementation
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Step 1: CLI Documentation Sync
|
|
26
|
+
|
|
27
|
+
Review each CLI command against its documentation.
|
|
28
|
+
|
|
29
|
+
### 1.1 onetool
|
|
30
|
+
|
|
31
|
+
Compare `src/onetool/` implementation with:
|
|
32
|
+
- `docs/reference/cli/onetool.md`
|
|
33
|
+
- README.md CLI section
|
|
34
|
+
- `docs/llms.txt` CLI section
|
|
35
|
+
|
|
36
|
+
Check for:
|
|
37
|
+
- Command line flags and options match implementation
|
|
38
|
+
- Default values are accurate
|
|
39
|
+
- Environment variables are documented
|
|
40
|
+
- Usage examples work correctly
|
|
41
|
+
|
|
42
|
+
### 1.2 bench
|
|
43
|
+
|
|
44
|
+
Compare `src/bench/` implementation with:
|
|
45
|
+
- `docs/reference/cli/bench.md`
|
|
46
|
+
- README.md CLI section (if mentioned)
|
|
47
|
+
- `docs/llms.txt` CLI section
|
|
48
|
+
|
|
49
|
+
Check for:
|
|
50
|
+
- Command line flags and options match implementation
|
|
51
|
+
- Default values are accurate
|
|
52
|
+
- Environment variables are documented
|
|
53
|
+
- Usage examples work correctly
|
|
54
|
+
|
|
55
|
+
### 1.3 Other CLIs
|
|
56
|
+
|
|
57
|
+
Check for any additional CLI entry points in `pyproject.toml` and verify they are documented.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Step 2: Tool Documentation Sync
|
|
62
|
+
|
|
63
|
+
Review each tool namespace against its documentation.
|
|
64
|
+
|
|
65
|
+
For each tool in `src/ot_tools/`:
|
|
66
|
+
|
|
67
|
+
### 2.1 Read the Implementation
|
|
68
|
+
|
|
69
|
+
- Read the tool source file
|
|
70
|
+
- Note the `namespace` variable
|
|
71
|
+
- List all public functions with their signatures
|
|
72
|
+
- Extract docstrings and parameter descriptions
|
|
73
|
+
- Note default values and required parameters
|
|
74
|
+
|
|
75
|
+
### 2.2 Compare with Documentation
|
|
76
|
+
|
|
77
|
+
Compare against:
|
|
78
|
+
- `docs/reference/tools/<namespace>.md`
|
|
79
|
+
- `docs/llms.txt` tool listing
|
|
80
|
+
- README.md (if tool is mentioned in features/capabilities)
|
|
81
|
+
|
|
82
|
+
Check for:
|
|
83
|
+
- Function names match documentation
|
|
84
|
+
- Parameter names and types match
|
|
85
|
+
- Default values are accurate
|
|
86
|
+
- Docstrings align with documentation descriptions
|
|
87
|
+
- All public functions are documented
|
|
88
|
+
- No documented functions that don't exist in code
|
|
89
|
+
|
|
90
|
+
### 2.3 Tools to Review
|
|
91
|
+
|
|
92
|
+
Process each tool file in `src/ot_tools/`:
|
|
93
|
+
|
|
94
|
+
1. `brave_search.py` → `docs/reference/tools/brave-search.md`
|
|
95
|
+
2. `web_fetch.py` → `docs/reference/tools/web-fetch.md`
|
|
96
|
+
3. `context7.py` → `docs/reference/tools/context7.md`
|
|
97
|
+
4. `code_search.py` → `docs/reference/tools/code-search.md`
|
|
98
|
+
5. `transform.py` → `docs/reference/tools/transform.md`
|
|
99
|
+
6. `db.py` → `docs/reference/tools/database.md`
|
|
100
|
+
7. `package.py` → `docs/reference/tools/package.md`
|
|
101
|
+
8. `ripgrep.py` → `docs/reference/tools/ripgrep.md`
|
|
102
|
+
9. `excel.py` → `docs/reference/tools/excel.md`
|
|
103
|
+
10. `file.py` → `docs/reference/tools/file.md`
|
|
104
|
+
11. `diagram.py` → `docs/reference/tools/diagram.md`
|
|
105
|
+
12. `convert.py` → `docs/reference/tools/convert.md`
|
|
106
|
+
13. `grounding_search.py` → `docs/reference/tools/grounding-search.md`
|
|
107
|
+
14. `internal.py` → `docs/reference/tools/ot.md`
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Step 3: Cross-Document Consistency
|
|
112
|
+
|
|
113
|
+
### 3.1 README.md
|
|
114
|
+
|
|
115
|
+
Verify README accurately reflects:
|
|
116
|
+
- List of namespaces/tools matches actual tools
|
|
117
|
+
- Feature descriptions match implementation
|
|
118
|
+
- Installation instructions work
|
|
119
|
+
- Quick start examples are accurate
|
|
120
|
+
- Links to docs are valid
|
|
121
|
+
|
|
122
|
+
### 3.2 docs/llms.txt
|
|
123
|
+
|
|
124
|
+
Verify `docs/llms.txt` reflects:
|
|
125
|
+
- All namespaces are listed
|
|
126
|
+
- Function names for each namespace are accurate
|
|
127
|
+
- No missing or extra functions
|
|
128
|
+
- Quick invocation examples work
|
|
129
|
+
|
|
130
|
+
### 3.3 Index Pages
|
|
131
|
+
|
|
132
|
+
Check that index pages list all relevant items:
|
|
133
|
+
- `docs/reference/tools/index.md` lists all tool docs
|
|
134
|
+
- `docs/reference/cli/index.md` lists all CLI docs
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Step 4: Present Findings
|
|
139
|
+
|
|
140
|
+
After completing all reviews, present a consolidated findings table:
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
| # | Area | Doc File | Issue Type | Description | Suggested Fix |
|
|
144
|
+
|---|------|----------|------------|-------------|---------------|
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Issue Types:
|
|
148
|
+
- `missing` - Feature/function exists in code but not documented
|
|
149
|
+
- `outdated` - Documentation exists but doesn't match current implementation
|
|
150
|
+
- `incorrect` - Documentation contains wrong information
|
|
151
|
+
- `removed` - Documentation describes something that no longer exists
|
|
152
|
+
- `broken` - Examples or links that don't work
|
|
153
|
+
|
|
154
|
+
Group findings by:
|
|
155
|
+
1. CLI issues
|
|
156
|
+
2. Tool issues (grouped by namespace)
|
|
157
|
+
3. Cross-document issues
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Step 5: Apply Fixes
|
|
162
|
+
|
|
163
|
+
Present the numbered list and ASK: "Which issues would you like me to fix? (e.g., '1, 3, 5', 'all', 'none')"
|
|
164
|
+
|
|
165
|
+
Apply only the confirmed fixes, then show a summary of changes made.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Prime
|
|
3
|
+
description: Load project context from AGENTS_PRIME.md
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Read and present the contents of `AGENTS_PRIME.md` to prime the conversation with project context.
|
|
7
|
+
|
|
8
|
+
After reading, briefly confirm the context is loaded and ask what the user would like to work on.
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Quick Apply
|
|
3
|
+
description: Plan and apply small changes across code, tests, specs, docs, and config in one pass.
|
|
4
|
+
category: onetool
|
|
5
|
+
tags: [apply, quick, change, all-in-one]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Streamlined workflow for small-to-medium changes that don't warrant full OpenSpec proposal scaffolding. Combines planning, implementation, spec updates, doc sync, and config migration into a single pass.
|
|
11
|
+
|
|
12
|
+
**Use this for:**
|
|
13
|
+
- Bug fixes with clear scope
|
|
14
|
+
- Small features or enhancements
|
|
15
|
+
- Refactoring with known boundaries
|
|
16
|
+
- Config migrations
|
|
17
|
+
- Documentation updates with code changes
|
|
18
|
+
|
|
19
|
+
**Use OpenSpec proposal instead for:**
|
|
20
|
+
- Breaking changes
|
|
21
|
+
- New capabilities spanning multiple systems
|
|
22
|
+
- Architectural decisions needing design review
|
|
23
|
+
- Changes requiring stakeholder approval
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Input
|
|
28
|
+
|
|
29
|
+
This command accepts either:
|
|
30
|
+
1. **Direct instruction** - Describe the change in the conversation
|
|
31
|
+
2. **Markdown file** - Reference a file with change details (e.g., `plan/consult/some-fix.md`)
|
|
32
|
+
|
|
33
|
+
If input is unclear, ASK the user to clarify before proceeding.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Guardrails
|
|
38
|
+
|
|
39
|
+
- Keep changes tightly scoped to the requested outcome
|
|
40
|
+
- Favor straightforward, minimal implementations
|
|
41
|
+
- Code is the source of truth - specs and docs follow implementation
|
|
42
|
+
- DO NOT create commits unless explicitly requested
|
|
43
|
+
- Present a plan before making changes
|
|
44
|
+
- ASK before proceeding to each major phase
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Step 1: Understand the Change
|
|
49
|
+
|
|
50
|
+
1. Read any referenced files or instructions
|
|
51
|
+
2. Explore relevant code with `rg` or file reads to understand current state
|
|
52
|
+
3. Identify all affected areas:
|
|
53
|
+
- Source files to modify
|
|
54
|
+
- Tests to add/update
|
|
55
|
+
- Specs to update
|
|
56
|
+
- Docs to sync
|
|
57
|
+
- Config to migrate
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Step 2: Present the Plan
|
|
62
|
+
|
|
63
|
+
Show a concise plan:
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
## Change: <one-line summary>
|
|
67
|
+
|
|
68
|
+
### Code Changes
|
|
69
|
+
- [ ] file.py: <what changes>
|
|
70
|
+
|
|
71
|
+
### Test Changes
|
|
72
|
+
- [ ] test_file.py: <what changes>
|
|
73
|
+
|
|
74
|
+
### Spec Updates
|
|
75
|
+
- [ ] openspec/specs/<spec>/spec.md: <what changes>
|
|
76
|
+
|
|
77
|
+
### Doc Updates
|
|
78
|
+
- [ ] docs/<file>.md: <what changes>
|
|
79
|
+
- [ ] README.md: <if affected>
|
|
80
|
+
|
|
81
|
+
### Config Changes
|
|
82
|
+
- [ ] <config file>: <what changes>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
ASK: "Does this plan look correct? Reply 'yes' to proceed or suggest changes."
|
|
86
|
+
|
|
87
|
+
Wait for confirmation before proceeding.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Step 3: Apply Code Changes
|
|
92
|
+
|
|
93
|
+
1. Make the code changes as planned
|
|
94
|
+
2. Keep edits minimal and focused
|
|
95
|
+
3. Run linting/type checks if configured
|
|
96
|
+
4. Report any issues encountered
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Step 4: Apply Test Changes
|
|
101
|
+
|
|
102
|
+
1. Add or update tests for the changed behavior
|
|
103
|
+
2. Follow project testing conventions (see `AGENTS.md`)
|
|
104
|
+
3. Ensure tests have proper markers (smoke/unit/integration, component tags)
|
|
105
|
+
4. Run affected tests to verify they pass
|
|
106
|
+
|
|
107
|
+
Report test results before proceeding.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Step 5: Update Specs
|
|
112
|
+
|
|
113
|
+
If specs exist for the changed functionality:
|
|
114
|
+
|
|
115
|
+
1. Locate relevant specs in `openspec/specs/`
|
|
116
|
+
2. Update requirements to match new implementation
|
|
117
|
+
3. Update or add scenarios as needed
|
|
118
|
+
4. Run `openspec validate --strict` if available
|
|
119
|
+
|
|
120
|
+
Skip this step if no specs are affected.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Step 6: Sync Documentation
|
|
125
|
+
|
|
126
|
+
Review and update affected docs:
|
|
127
|
+
|
|
128
|
+
### 6.1 README.md
|
|
129
|
+
- Update if features, usage, or examples changed
|
|
130
|
+
|
|
131
|
+
### 6.2 docs/ files
|
|
132
|
+
- Update relevant documentation pages
|
|
133
|
+
- Ensure code examples are accurate
|
|
134
|
+
- Update CLI flags or API signatures
|
|
135
|
+
|
|
136
|
+
### 6.3 docs/llms.txt
|
|
137
|
+
- Update if tool functions or CLI changed
|
|
138
|
+
|
|
139
|
+
### 6.4 Docstrings
|
|
140
|
+
- Ensure function docstrings match new behavior
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Step 7: Config Migration
|
|
145
|
+
|
|
146
|
+
If config changes are needed:
|
|
147
|
+
|
|
148
|
+
1. Update default config values
|
|
149
|
+
2. Add migration logic if breaking existing configs
|
|
150
|
+
3. Update config documentation
|
|
151
|
+
4. Test config loading with new values
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Step 8: OpenSpec spec check
|
|
156
|
+
|
|
157
|
+
Verify that any specs in `openspec/specs/` affected by your changes are accurate and complete. Code is the source of truth—specs must match the implementation.
|
|
158
|
+
|
|
159
|
+
## Step 9: Summary
|
|
160
|
+
|
|
161
|
+
Present a summary of all changes:
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
|
|
165
|
+
## Summary of Applied Changes
|
|
166
|
+
|
|
167
|
+
### Code
|
|
168
|
+
- ✅ file.py: <summary>
|
|
169
|
+
|
|
170
|
+
### Tests
|
|
171
|
+
- ✅ test_file.py: <summary>
|
|
172
|
+
- Test results: X passed
|
|
173
|
+
|
|
174
|
+
### Specs
|
|
175
|
+
- ✅ spec.md: <summary>
|
|
176
|
+
|
|
177
|
+
### Docs
|
|
178
|
+
- ✅ README.md: <summary>
|
|
179
|
+
|
|
180
|
+
### Config
|
|
181
|
+
- ✅ config.yaml: <summary>
|
|
182
|
+
|
|
183
|
+
```
|