reprompt-cli 2.2.2__tar.gz → 2.3.0__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.
- reprompt_cli-2.3.0/.pre-commit-config.yaml +16 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/PKG-INFO +32 -25
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/README.md +33 -26
- reprompt_cli-2.3.0/docs/screenshots/build.svg +167 -0
- reprompt_cli-2.3.0/docs/screenshots/check-bad.svg +192 -0
- reprompt_cli-2.3.0/docs/screenshots/check-good.svg +139 -0
- reprompt_cli-2.3.0/docs/screenshots/rewrite.svg +136 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/pyproject.toml +1 -1
- reprompt_cli-2.3.0/scripts/gen_screenshots.py +192 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/extractors.py +20 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/prompt_dna.py +6 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/rewrite.py +10 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/scorer.py +16 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/compress_terminal.py +6 -1
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_suggestions.py +3 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/uv.lock +1 -1
- reprompt_cli-2.2.2/.pre-commit-config.yaml +0 -7
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.editorconfig +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/dependabot.yml +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/workflows/ci.yml +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.github/workflows/publish.yml +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.gitignore +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.pre-commit-hooks.yaml +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.testmondata-shm +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/.testmondata-wal +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/CHANGELOG.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/CODE_OF_CONDUCT.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/CONTRIBUTING.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/LICENSE +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/SECURITY.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/Screenshot 2026-03-24 at 09.45.03.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/action.yml +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/demo.gif +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon-128.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon-16.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon-256.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon-32.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon-48.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon-512.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon-96.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/brand-icon.svg +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon-128.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon-16.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon-256.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon-32.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon-48.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon-512.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon-96.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-favicon.svg +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon-128.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon-16.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon-256.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon-32.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon-48.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon-512.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon-96.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/cli-icon.svg +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon-128.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon-16.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon-256.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon-32.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon-48.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon-512.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon-96.png +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/favicon.svg +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/icons/generate.sh +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/superpowers/specs/2026-03-24-v14-command-consolidation-design.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/docs/superpowers/specs/2026-03-25-v1.5-dashboard-design.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/scripts/generate_demo_data.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/aider.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/base.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/chatgpt.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/claude_chat.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/claude_code.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/cline.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/codex.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/cursor.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/filters.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/gemini.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/adapters/openclaw.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/bridge/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/bridge/handler.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/bridge/host.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/bridge/manifest.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/bridge/protocol.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/commands/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/commands/telemetry.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/commands/wrapped.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/config.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/agent.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/analyzer.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/build.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/check.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/compress.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/conversation.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/cost.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/dashboard.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/dedup.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/digest.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/distill.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/effectiveness.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/explain.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/extractors_zh.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/insights.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/lang_detect.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/library.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/lint.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/merge_view.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/models.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/persona.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/pipeline.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/privacy.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/privacy_scan.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/recommend.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/repetition.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/segmenter.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/session_meta.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/session_quality.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/session_type.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/style.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/suggestions.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/templates.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/timeutil.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/trends.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/core/wrapped.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/demo.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/embeddings/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/embeddings/base.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/embeddings/local_embed.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/embeddings/ollama.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/embeddings/openai_embed.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/embeddings/tfidf.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/mcp.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/mcp_main.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/agent_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/build_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/chartjs.min.js +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/check_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/dashboard_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/distill_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/explain_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/export.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/html_report.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/json_out.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/markdown.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/projects_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/repetition_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/rewrite_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/sessions_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/wrapped_html.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/output/wrapped_terminal.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/py.typed +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/sharing/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/sharing/client.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/sharing/clipboard.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/storage/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/storage/db.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/telemetry/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/telemetry/collector.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/telemetry/consent.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/telemetry/events.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/telemetry/prompt.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/telemetry/queue.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/src/reprompt/telemetry/sender.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/__init__.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/conftest.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/aider_chat_history.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/chatgpt_conversations.json +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/claude_chat_export.json +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/claude_session.jsonl +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/cline_task/api_conversation_history.json +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/export/default_export.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/export/full_export.md +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/gemini_session.json +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/fixtures/openclaw_session.jsonl +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_adapter_aider.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_adapter_chatgpt.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_adapter_claude.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_adapter_claude_chat.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_adapter_cline.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_adapter_gemini.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_adapter_openclaw.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_agent.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_agent_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_analyzer.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_bridge_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_bridge_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_bridge_handler.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_bridge_integration.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_bridge_manifest.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_bridge_protocol.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_build.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_build_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_build_output.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_check.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_check_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_cli_deprecations.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_cli_library_effectiveness.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_clipboard.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_codex_adapter.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_compare_best_worst.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_compress.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_compress_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_compress_dna.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_compress_html.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_compress_insights.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_config.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_conversation.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_copy_flag.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_cost.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_coverage_boost.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_cursor_adapter.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_dashboard.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_db.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_db_digest.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_db_effectiveness.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_db_session_quality.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_db_trends.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_dedup.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_demo.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_deprecated_commands.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_digest.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_digest_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_distill.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_distill_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_distill_weights.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_effectiveness.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_embeddings_local.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_embeddings_ollama.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_embeddings_openai.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_empty_state.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_explain.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_explain_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_export.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_export_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_export_snapshot.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_extractors.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_extractors_routing.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_extractors_zh.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_extractors_zh_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_file_input.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_html_report.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_import_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_import_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_init_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_insights.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_insights_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_insights_expanded.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_install_hook.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_lang_detect.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_library.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_lint.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_lint_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_markdown.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_mcp.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_merge_view.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_models.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_output.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_parse_conversation_base.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_parse_conversation_chatgpt.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_parse_conversation_claude.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_persona.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_pipeline.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_privacy.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_privacy_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_privacy_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_privacy_output.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_privacy_scan.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_projects.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_prompt_dna.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_public_api.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_recommend.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_repetition.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_repetition_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_repetition_output.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_rewrite.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_schema_version.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_score_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_scorer.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_segmenter.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_session_quality.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_session_type.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_sessions_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_sessions_output.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_share_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_sharing_client.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_source_filter.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_style.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_style_trends.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_collector.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_consent.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_events.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_prompt.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_queue.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_telemetry_sender.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_template_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_templates.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_timeutil.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_trends.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_trends_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_use_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_wrapped.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_wrapped_cli.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_wrapped_e2e.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_wrapped_html.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_wrapped_output.py +0 -0
- {reprompt_cli-2.2.2 → reprompt_cli-2.3.0}/tests/test_wrapped_share.py +0 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
+
rev: v0.11.6
|
|
4
|
+
hooks:
|
|
5
|
+
- id: ruff
|
|
6
|
+
args: [--fix]
|
|
7
|
+
- id: ruff-format
|
|
8
|
+
- repo: local
|
|
9
|
+
hooks:
|
|
10
|
+
- id: pytest-check
|
|
11
|
+
name: pytest
|
|
12
|
+
entry: uv run pytest tests/ -x -q --tb=short
|
|
13
|
+
language: system
|
|
14
|
+
pass_filenames: false
|
|
15
|
+
always_run: true
|
|
16
|
+
stages: [pre-commit]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: reprompt-cli
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.0
|
|
4
4
|
Summary: Discover, analyze, and optimize your prompts from AI coding sessions
|
|
5
5
|
Project-URL: Homepage, https://github.com/reprompt-dev/reprompt
|
|
6
6
|
Project-URL: Repository, https://github.com/reprompt-dev/reprompt
|
|
@@ -79,21 +79,23 @@ $ reprompt rewrite "I was wondering if you could maybe help me fix the auth bug"
|
|
|
79
79
|
→ Reference specific files or functions by name
|
|
80
80
|
→ Add constraints (e.g., "Do not modify existing tests")
|
|
81
81
|
|
|
82
|
-
#
|
|
83
|
-
$ reprompt
|
|
84
|
-
|
|
85
|
-
Tip: Include the error message -- debug prompts with errors are 3.7x more effective
|
|
82
|
+
# Full diagnostic in one command
|
|
83
|
+
$ reprompt check "Fix the auth bug in src/login.ts where JWT expires"
|
|
84
|
+
GOOD · 58
|
|
86
85
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
Clarity ████████████░░░░░░░░ 15/25
|
|
87
|
+
Context ████████████████░░░░ 20/25
|
|
88
|
+
Position ████████████████████ 20/20
|
|
89
|
+
Structure ░░░░░░░░░░░░░░░░░░░░ 0/15
|
|
90
|
+
Repetition ███░░░░░░░░░░░░░░░░░ 3/15
|
|
90
91
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
Strengths
|
|
93
|
+
✓ Key instruction at the start — optimal placement
|
|
94
|
+
✓ References specific files
|
|
95
|
+
|
|
96
|
+
Improve
|
|
97
|
+
→ Add the actual error message (+6 pts)
|
|
98
|
+
→ Add constraints like "Don't modify tests" (+5 pts)
|
|
97
99
|
```
|
|
98
100
|
|
|
99
101
|
## What it does
|
|
@@ -139,15 +141,21 @@ $ reprompt
|
|
|
139
141
|
|
|
140
142
|
## Prompt Science
|
|
141
143
|
|
|
142
|
-
Scoring is calibrated against
|
|
144
|
+
Scoring is calibrated against 10 peer-reviewed papers covering 30+ features across 5 dimensions:
|
|
145
|
+
|
|
146
|
+
| Dimension | What it measures | Key papers |
|
|
147
|
+
|-----------|-----------------|------------|
|
|
148
|
+
| **Structure** | Markdown, code blocks, explicit constraints | Prompt Report ([2406.06608](https://arxiv.org/abs/2406.06608)) |
|
|
149
|
+
| **Context** | File paths, error messages, I/O specs, edge cases | Zi+ ([2508.03678](https://arxiv.org/abs/2508.03678)), Google ([2512.14982](https://arxiv.org/abs/2512.14982)) |
|
|
150
|
+
| **Position** | Instruction placement relative to context | Stanford ([2307.03172](https://arxiv.org/abs/2307.03172)), Veseli+ ([2508.07479](https://arxiv.org/abs/2508.07479)), Chowdhury ([2603.10123](https://arxiv.org/abs/2603.10123)) |
|
|
151
|
+
| **Repetition** | Redundancy that degrades model attention | Google ([2512.14982](https://arxiv.org/abs/2512.14982)) |
|
|
152
|
+
| **Clarity** | Readability, sentence length, ambiguity | SPELL (EMNLP 2023), PEEM ([2603.10477](https://arxiv.org/abs/2603.10477)) |
|
|
153
|
+
|
|
154
|
+
Cross-validated findings that inform our engine:
|
|
143
155
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
| **Context** | File paths, error messages, technical specificity | Google 2512.14982 |
|
|
148
|
-
| **Position** | Instruction placement relative to context | Stanford 2307.03172 |
|
|
149
|
-
| **Repetition** | Redundancy that degrades model attention | Google 2512.14982 |
|
|
150
|
-
| **Clarity** | Readability, sentence length, ambiguity | SPELL (EMNLP 2023) |
|
|
156
|
+
- **Position bias is architectural** — present at initialization, not learned. Front-loading instructions is effective for prompts under 50% of context window (3 papers agree)
|
|
157
|
+
- **Moderate compression improves output** — rule-based filler removal doesn't just save tokens, it enhances LLM performance ([2505.00019](https://arxiv.org/abs/2505.00019))
|
|
158
|
+
- **Prompt quality is independently measurable** — prompt-only scoring predicts output quality without seeing the response (ACL 2025, [2503.10084](https://arxiv.org/abs/2503.10084))
|
|
151
159
|
|
|
152
160
|
All analysis runs locally in <1ms per prompt. No LLM calls, no network requests.
|
|
153
161
|
|
|
@@ -189,10 +197,9 @@ pip install reprompt-cli[mcp] # + MCP server for Claude Code / Continue.de
|
|
|
189
197
|
### Quick start
|
|
190
198
|
|
|
191
199
|
```bash
|
|
200
|
+
reprompt check "your prompt here" # full diagnostic — score + lint + rewrite
|
|
192
201
|
reprompt scan # discover prompts from installed AI tools
|
|
193
202
|
reprompt # see your dashboard
|
|
194
|
-
reprompt score "your prompt here" # score any prompt instantly
|
|
195
|
-
reprompt distill --last 1 # distill your most recent conversation
|
|
196
203
|
```
|
|
197
204
|
|
|
198
205
|
### Auto-scan after every session
|
|
@@ -230,7 +237,7 @@ Captured prompts sync locally via Native Messaging -- nothing leaves your machin
|
|
|
230
237
|
# .pre-commit-config.yaml
|
|
231
238
|
repos:
|
|
232
239
|
- repo: https://github.com/reprompt-dev/reprompt
|
|
233
|
-
rev: v2.2.
|
|
240
|
+
rev: v2.2.2
|
|
234
241
|
hooks:
|
|
235
242
|
- id: reprompt-lint
|
|
236
243
|
```
|
|
@@ -34,21 +34,23 @@ $ reprompt rewrite "I was wondering if you could maybe help me fix the auth bug"
|
|
|
34
34
|
→ Reference specific files or functions by name
|
|
35
35
|
→ Add constraints (e.g., "Do not modify existing tests")
|
|
36
36
|
|
|
37
|
-
#
|
|
38
|
-
$ reprompt
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
37
|
+
# Full diagnostic in one command
|
|
38
|
+
$ reprompt check "Fix the auth bug in src/login.ts where JWT expires"
|
|
39
|
+
GOOD · 58
|
|
40
|
+
|
|
41
|
+
Clarity ████████████░░░░░░░░ 15/25
|
|
42
|
+
Context ████████████████░░░░ 20/25
|
|
43
|
+
Position ████████████████████ 20/20
|
|
44
|
+
Structure ░░░░░░░░░░░░░░░░░░░░ 0/15
|
|
45
|
+
Repetition ███░░░░░░░░░░░░░░░░░ 3/15
|
|
46
|
+
|
|
47
|
+
Strengths
|
|
48
|
+
✓ Key instruction at the start — optimal placement
|
|
49
|
+
✓ References specific files
|
|
50
|
+
|
|
51
|
+
Improve
|
|
52
|
+
→ Add the actual error message (+6 pts)
|
|
53
|
+
→ Add constraints like "Don't modify tests" (+5 pts)
|
|
52
54
|
```
|
|
53
55
|
|
|
54
56
|
## What it does
|
|
@@ -94,15 +96,21 @@ $ reprompt
|
|
|
94
96
|
|
|
95
97
|
## Prompt Science
|
|
96
98
|
|
|
97
|
-
Scoring is calibrated against
|
|
99
|
+
Scoring is calibrated against 10 peer-reviewed papers covering 30+ features across 5 dimensions:
|
|
100
|
+
|
|
101
|
+
| Dimension | What it measures | Key papers |
|
|
102
|
+
|-----------|-----------------|------------|
|
|
103
|
+
| **Structure** | Markdown, code blocks, explicit constraints | Prompt Report ([2406.06608](https://arxiv.org/abs/2406.06608)) |
|
|
104
|
+
| **Context** | File paths, error messages, I/O specs, edge cases | Zi+ ([2508.03678](https://arxiv.org/abs/2508.03678)), Google ([2512.14982](https://arxiv.org/abs/2512.14982)) |
|
|
105
|
+
| **Position** | Instruction placement relative to context | Stanford ([2307.03172](https://arxiv.org/abs/2307.03172)), Veseli+ ([2508.07479](https://arxiv.org/abs/2508.07479)), Chowdhury ([2603.10123](https://arxiv.org/abs/2603.10123)) |
|
|
106
|
+
| **Repetition** | Redundancy that degrades model attention | Google ([2512.14982](https://arxiv.org/abs/2512.14982)) |
|
|
107
|
+
| **Clarity** | Readability, sentence length, ambiguity | SPELL (EMNLP 2023), PEEM ([2603.10477](https://arxiv.org/abs/2603.10477)) |
|
|
108
|
+
|
|
109
|
+
Cross-validated findings that inform our engine:
|
|
98
110
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
| **Context** | File paths, error messages, technical specificity | Google 2512.14982 |
|
|
103
|
-
| **Position** | Instruction placement relative to context | Stanford 2307.03172 |
|
|
104
|
-
| **Repetition** | Redundancy that degrades model attention | Google 2512.14982 |
|
|
105
|
-
| **Clarity** | Readability, sentence length, ambiguity | SPELL (EMNLP 2023) |
|
|
111
|
+
- **Position bias is architectural** — present at initialization, not learned. Front-loading instructions is effective for prompts under 50% of context window (3 papers agree)
|
|
112
|
+
- **Moderate compression improves output** — rule-based filler removal doesn't just save tokens, it enhances LLM performance ([2505.00019](https://arxiv.org/abs/2505.00019))
|
|
113
|
+
- **Prompt quality is independently measurable** — prompt-only scoring predicts output quality without seeing the response (ACL 2025, [2503.10084](https://arxiv.org/abs/2503.10084))
|
|
106
114
|
|
|
107
115
|
All analysis runs locally in <1ms per prompt. No LLM calls, no network requests.
|
|
108
116
|
|
|
@@ -144,10 +152,9 @@ pip install reprompt-cli[mcp] # + MCP server for Claude Code / Continue.de
|
|
|
144
152
|
### Quick start
|
|
145
153
|
|
|
146
154
|
```bash
|
|
155
|
+
reprompt check "your prompt here" # full diagnostic — score + lint + rewrite
|
|
147
156
|
reprompt scan # discover prompts from installed AI tools
|
|
148
157
|
reprompt # see your dashboard
|
|
149
|
-
reprompt score "your prompt here" # score any prompt instantly
|
|
150
|
-
reprompt distill --last 1 # distill your most recent conversation
|
|
151
158
|
```
|
|
152
159
|
|
|
153
160
|
### Auto-scan after every session
|
|
@@ -185,7 +192,7 @@ Captured prompts sync locally via Native Messaging -- nothing leaves your machin
|
|
|
185
192
|
# .pre-commit-config.yaml
|
|
186
193
|
repos:
|
|
187
194
|
- repo: https://github.com/reprompt-dev/reprompt
|
|
188
|
-
rev: v2.2.
|
|
195
|
+
rev: v2.2.2
|
|
189
196
|
hooks:
|
|
190
197
|
- id: reprompt-lint
|
|
191
198
|
```
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
<svg class="rich-terminal" viewBox="0 0 1092 708.8" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- Generated with Rich https://www.textualize.io -->
|
|
3
|
+
<style>
|
|
4
|
+
|
|
5
|
+
@font-face {
|
|
6
|
+
font-family: "Fira Code";
|
|
7
|
+
src: local("FiraCode-Regular"),
|
|
8
|
+
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Regular.woff2") format("woff2"),
|
|
9
|
+
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Regular.woff") format("woff");
|
|
10
|
+
font-style: normal;
|
|
11
|
+
font-weight: 400;
|
|
12
|
+
}
|
|
13
|
+
@font-face {
|
|
14
|
+
font-family: "Fira Code";
|
|
15
|
+
src: local("FiraCode-Bold"),
|
|
16
|
+
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff2/FiraCode-Bold.woff2") format("woff2"),
|
|
17
|
+
url("https://cdnjs.cloudflare.com/ajax/libs/firacode/6.2.0/woff/FiraCode-Bold.woff") format("woff");
|
|
18
|
+
font-style: bold;
|
|
19
|
+
font-weight: 700;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.terminal-3925241903-matrix {
|
|
23
|
+
font-family: Fira Code, monospace;
|
|
24
|
+
font-size: 20px;
|
|
25
|
+
line-height: 24.4px;
|
|
26
|
+
font-variant-east-asian: full-width;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.terminal-3925241903-title {
|
|
30
|
+
font-size: 18px;
|
|
31
|
+
font-weight: bold;
|
|
32
|
+
font-family: arial;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.terminal-3925241903-r1 { fill: #c5c8c6 }
|
|
36
|
+
.terminal-3925241903-r2 { fill: #98a84b;font-weight: bold }
|
|
37
|
+
.terminal-3925241903-r3 { fill: #98a84b }
|
|
38
|
+
.terminal-3925241903-r4 { fill: #c5c8c6;font-weight: bold }
|
|
39
|
+
.terminal-3925241903-r5 { fill: #68a0b3;font-weight: bold }
|
|
40
|
+
.terminal-3925241903-r6 { fill: #d0b344 }
|
|
41
|
+
</style>
|
|
42
|
+
|
|
43
|
+
<defs>
|
|
44
|
+
<clipPath id="terminal-3925241903-clip-terminal">
|
|
45
|
+
<rect x="0" y="0" width="1072.6" height="657.8" />
|
|
46
|
+
</clipPath>
|
|
47
|
+
<clipPath id="terminal-3925241903-line-0">
|
|
48
|
+
<rect x="0" y="1.5" width="1073.6" height="24.65"/>
|
|
49
|
+
</clipPath>
|
|
50
|
+
<clipPath id="terminal-3925241903-line-1">
|
|
51
|
+
<rect x="0" y="25.9" width="1073.6" height="24.65"/>
|
|
52
|
+
</clipPath>
|
|
53
|
+
<clipPath id="terminal-3925241903-line-2">
|
|
54
|
+
<rect x="0" y="50.3" width="1073.6" height="24.65"/>
|
|
55
|
+
</clipPath>
|
|
56
|
+
<clipPath id="terminal-3925241903-line-3">
|
|
57
|
+
<rect x="0" y="74.7" width="1073.6" height="24.65"/>
|
|
58
|
+
</clipPath>
|
|
59
|
+
<clipPath id="terminal-3925241903-line-4">
|
|
60
|
+
<rect x="0" y="99.1" width="1073.6" height="24.65"/>
|
|
61
|
+
</clipPath>
|
|
62
|
+
<clipPath id="terminal-3925241903-line-5">
|
|
63
|
+
<rect x="0" y="123.5" width="1073.6" height="24.65"/>
|
|
64
|
+
</clipPath>
|
|
65
|
+
<clipPath id="terminal-3925241903-line-6">
|
|
66
|
+
<rect x="0" y="147.9" width="1073.6" height="24.65"/>
|
|
67
|
+
</clipPath>
|
|
68
|
+
<clipPath id="terminal-3925241903-line-7">
|
|
69
|
+
<rect x="0" y="172.3" width="1073.6" height="24.65"/>
|
|
70
|
+
</clipPath>
|
|
71
|
+
<clipPath id="terminal-3925241903-line-8">
|
|
72
|
+
<rect x="0" y="196.7" width="1073.6" height="24.65"/>
|
|
73
|
+
</clipPath>
|
|
74
|
+
<clipPath id="terminal-3925241903-line-9">
|
|
75
|
+
<rect x="0" y="221.1" width="1073.6" height="24.65"/>
|
|
76
|
+
</clipPath>
|
|
77
|
+
<clipPath id="terminal-3925241903-line-10">
|
|
78
|
+
<rect x="0" y="245.5" width="1073.6" height="24.65"/>
|
|
79
|
+
</clipPath>
|
|
80
|
+
<clipPath id="terminal-3925241903-line-11">
|
|
81
|
+
<rect x="0" y="269.9" width="1073.6" height="24.65"/>
|
|
82
|
+
</clipPath>
|
|
83
|
+
<clipPath id="terminal-3925241903-line-12">
|
|
84
|
+
<rect x="0" y="294.3" width="1073.6" height="24.65"/>
|
|
85
|
+
</clipPath>
|
|
86
|
+
<clipPath id="terminal-3925241903-line-13">
|
|
87
|
+
<rect x="0" y="318.7" width="1073.6" height="24.65"/>
|
|
88
|
+
</clipPath>
|
|
89
|
+
<clipPath id="terminal-3925241903-line-14">
|
|
90
|
+
<rect x="0" y="343.1" width="1073.6" height="24.65"/>
|
|
91
|
+
</clipPath>
|
|
92
|
+
<clipPath id="terminal-3925241903-line-15">
|
|
93
|
+
<rect x="0" y="367.5" width="1073.6" height="24.65"/>
|
|
94
|
+
</clipPath>
|
|
95
|
+
<clipPath id="terminal-3925241903-line-16">
|
|
96
|
+
<rect x="0" y="391.9" width="1073.6" height="24.65"/>
|
|
97
|
+
</clipPath>
|
|
98
|
+
<clipPath id="terminal-3925241903-line-17">
|
|
99
|
+
<rect x="0" y="416.3" width="1073.6" height="24.65"/>
|
|
100
|
+
</clipPath>
|
|
101
|
+
<clipPath id="terminal-3925241903-line-18">
|
|
102
|
+
<rect x="0" y="440.7" width="1073.6" height="24.65"/>
|
|
103
|
+
</clipPath>
|
|
104
|
+
<clipPath id="terminal-3925241903-line-19">
|
|
105
|
+
<rect x="0" y="465.1" width="1073.6" height="24.65"/>
|
|
106
|
+
</clipPath>
|
|
107
|
+
<clipPath id="terminal-3925241903-line-20">
|
|
108
|
+
<rect x="0" y="489.5" width="1073.6" height="24.65"/>
|
|
109
|
+
</clipPath>
|
|
110
|
+
<clipPath id="terminal-3925241903-line-21">
|
|
111
|
+
<rect x="0" y="513.9" width="1073.6" height="24.65"/>
|
|
112
|
+
</clipPath>
|
|
113
|
+
<clipPath id="terminal-3925241903-line-22">
|
|
114
|
+
<rect x="0" y="538.3" width="1073.6" height="24.65"/>
|
|
115
|
+
</clipPath>
|
|
116
|
+
<clipPath id="terminal-3925241903-line-23">
|
|
117
|
+
<rect x="0" y="562.7" width="1073.6" height="24.65"/>
|
|
118
|
+
</clipPath>
|
|
119
|
+
<clipPath id="terminal-3925241903-line-24">
|
|
120
|
+
<rect x="0" y="587.1" width="1073.6" height="24.65"/>
|
|
121
|
+
</clipPath>
|
|
122
|
+
<clipPath id="terminal-3925241903-line-25">
|
|
123
|
+
<rect x="0" y="611.5" width="1073.6" height="24.65"/>
|
|
124
|
+
</clipPath>
|
|
125
|
+
</defs>
|
|
126
|
+
|
|
127
|
+
<rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1090" height="706.8" rx="8"/><text class="terminal-3925241903-title" fill="#c5c8c6" text-anchor="middle" x="545" y="27">reprompt build</text>
|
|
128
|
+
<g transform="translate(26,22)">
|
|
129
|
+
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
|
|
130
|
+
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
|
|
131
|
+
<circle cx="44" cy="0" r="7" fill="#28c840"/>
|
|
132
|
+
</g>
|
|
133
|
+
|
|
134
|
+
<g transform="translate(9, 41)" clip-path="url(#terminal-3925241903-clip-terminal)">
|
|
135
|
+
|
|
136
|
+
<g class="terminal-3925241903-matrix">
|
|
137
|
+
<text class="terminal-3925241903-r1" x="1073.6" y="20" textLength="12.2" clip-path="url(#terminal-3925241903-line-0)">
|
|
138
|
+
</text><text class="terminal-3925241903-r2" x="24.4" y="44.4" textLength="48.8" clip-path="url(#terminal-3925241903-line-1)">GOOD</text><text class="terminal-3925241903-r1" x="73.2" y="44.4" textLength="36.6" clip-path="url(#terminal-3925241903-line-1)"> · </text><text class="terminal-3925241903-r2" x="109.8" y="44.4" textLength="24.4" clip-path="url(#terminal-3925241903-line-1)">60</text><text class="terminal-3925241903-r1" x="1073.6" y="44.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-1)">
|
|
139
|
+
</text><text class="terminal-3925241903-r1" x="1073.6" y="68.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-2)">
|
|
140
|
+
</text><text class="terminal-3925241903-r3" x="0" y="93.2" textLength="24.4" clip-path="url(#terminal-3925241903-line-3)">╭─</text><text class="terminal-3925241903-r3" x="24.4" y="93.2" textLength="427" clip-path="url(#terminal-3925241903-line-3)">───────────────────────────────────</text><text class="terminal-3925241903-r3" x="451.4" y="93.2" textLength="170.8" clip-path="url(#terminal-3925241903-line-3)"> Built Prompt </text><text class="terminal-3925241903-r3" x="622.2" y="93.2" textLength="427" clip-path="url(#terminal-3925241903-line-3)">───────────────────────────────────</text><text class="terminal-3925241903-r3" x="1049.2" y="93.2" textLength="24.4" clip-path="url(#terminal-3925241903-line-3)">─╮</text><text class="terminal-3925241903-r1" x="1073.6" y="93.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-3)">
|
|
141
|
+
</text><text class="terminal-3925241903-r3" x="0" y="117.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-4)">│</text><text class="terminal-3925241903-r1" x="24.4" y="117.6" textLength="329.4" clip-path="url(#terminal-3925241903-line-4)">Fix the JWT expiration bug.</text><text class="terminal-3925241903-r3" x="1061.4" y="117.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-4)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="117.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-4)">
|
|
142
|
+
</text><text class="terminal-3925241903-r3" x="0" y="142" textLength="12.2" clip-path="url(#terminal-3925241903-line-5)">│</text><text class="terminal-3925241903-r3" x="1061.4" y="142" textLength="12.2" clip-path="url(#terminal-3925241903-line-5)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="142" textLength="12.2" clip-path="url(#terminal-3925241903-line-5)">
|
|
143
|
+
</text><text class="terminal-3925241903-r3" x="0" y="166.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-6)">│</text><text class="terminal-3925241903-r1" x="24.4" y="166.4" textLength="341.6" clip-path="url(#terminal-3925241903-line-6)">File: src/auth/middleware.ts</text><text class="terminal-3925241903-r3" x="1061.4" y="166.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-6)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="166.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-6)">
|
|
144
|
+
</text><text class="terminal-3925241903-r3" x="0" y="190.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-7)">│</text><text class="terminal-3925241903-r3" x="1061.4" y="190.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-7)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="190.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-7)">
|
|
145
|
+
</text><text class="terminal-3925241903-r3" x="0" y="215.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-8)">│</text><text class="terminal-3925241903-r1" x="24.4" y="215.2" textLength="695.4" clip-path="url(#terminal-3925241903-line-8)">Error: TypeError: Cannot read property 'exp' of undefined</text><text class="terminal-3925241903-r3" x="1061.4" y="215.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-8)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="215.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-8)">
|
|
146
|
+
</text><text class="terminal-3925241903-r3" x="0" y="239.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-9)">│</text><text class="terminal-3925241903-r3" x="1061.4" y="239.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-9)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="239.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-9)">
|
|
147
|
+
</text><text class="terminal-3925241903-r3" x="0" y="264" textLength="12.2" clip-path="url(#terminal-3925241903-line-10)">│</text><text class="terminal-3925241903-r1" x="24.4" y="264" textLength="146.4" clip-path="url(#terminal-3925241903-line-10)">Constraints:</text><text class="terminal-3925241903-r3" x="1061.4" y="264" textLength="12.2" clip-path="url(#terminal-3925241903-line-10)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="264" textLength="12.2" clip-path="url(#terminal-3925241903-line-10)">
|
|
148
|
+
</text><text class="terminal-3925241903-r3" x="0" y="288.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-11)">│</text><text class="terminal-3925241903-r1" x="24.4" y="288.4" textLength="414.8" clip-path="url(#terminal-3925241903-line-11)">- don't modify refresh token tests</text><text class="terminal-3925241903-r3" x="1061.4" y="288.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-11)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="288.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-11)">
|
|
149
|
+
</text><text class="terminal-3925241903-r3" x="0" y="312.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-12)">│</text><text class="terminal-3925241903-r1" x="24.4" y="312.8" textLength="353.8" clip-path="url(#terminal-3925241903-line-12)">- keep backward compatibility</text><text class="terminal-3925241903-r3" x="1061.4" y="312.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-12)">│</text><text class="terminal-3925241903-r1" x="1073.6" y="312.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-12)">
|
|
150
|
+
</text><text class="terminal-3925241903-r3" x="0" y="337.2" textLength="1073.6" clip-path="url(#terminal-3925241903-line-13)">╰──────────────────────────────────────────────────────────────────────────────────────╯</text><text class="terminal-3925241903-r1" x="1073.6" y="337.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-13)">
|
|
151
|
+
</text><text class="terminal-3925241903-r1" x="1073.6" y="361.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-14)">
|
|
152
|
+
</text><text class="terminal-3925241903-r4" x="24.4" y="386" textLength="122" clip-path="url(#terminal-3925241903-line-15)">Components</text><text class="terminal-3925241903-r4" x="158.6" y="386" textLength="12.2" clip-path="url(#terminal-3925241903-line-15)">(</text><text class="terminal-3925241903-r5" x="170.8" y="386" textLength="12.2" clip-path="url(#terminal-3925241903-line-15)">4</text><text class="terminal-3925241903-r4" x="183" y="386" textLength="12.2" clip-path="url(#terminal-3925241903-line-15)">)</text><text class="terminal-3925241903-r1" x="1073.6" y="386" textLength="12.2" clip-path="url(#terminal-3925241903-line-15)">
|
|
153
|
+
</text><text class="terminal-3925241903-r3" x="24.4" y="410.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-16)">✓</text><text class="terminal-3925241903-r1" x="36.6" y="410.4" textLength="61" clip-path="url(#terminal-3925241903-line-16)"> task</text><text class="terminal-3925241903-r1" x="1073.6" y="410.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-16)">
|
|
154
|
+
</text><text class="terminal-3925241903-r3" x="24.4" y="434.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-17)">✓</text><text class="terminal-3925241903-r1" x="36.6" y="434.8" textLength="73.2" clip-path="url(#terminal-3925241903-line-17)"> files</text><text class="terminal-3925241903-r1" x="1073.6" y="434.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-17)">
|
|
155
|
+
</text><text class="terminal-3925241903-r3" x="24.4" y="459.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-18)">✓</text><text class="terminal-3925241903-r1" x="36.6" y="459.2" textLength="73.2" clip-path="url(#terminal-3925241903-line-18)"> error</text><text class="terminal-3925241903-r1" x="1073.6" y="459.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-18)">
|
|
156
|
+
</text><text class="terminal-3925241903-r3" x="24.4" y="483.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-19)">✓</text><text class="terminal-3925241903-r1" x="36.6" y="483.6" textLength="146.4" clip-path="url(#terminal-3925241903-line-19)"> constraints</text><text class="terminal-3925241903-r1" x="1073.6" y="483.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-19)">
|
|
157
|
+
</text><text class="terminal-3925241903-r1" x="1073.6" y="508" textLength="12.2" clip-path="url(#terminal-3925241903-line-20)">
|
|
158
|
+
</text><text class="terminal-3925241903-r4" x="24.4" y="532.4" textLength="97.6" clip-path="url(#terminal-3925241903-line-21)">Add more</text><text class="terminal-3925241903-r1" x="1073.6" y="532.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-21)">
|
|
159
|
+
</text><text class="terminal-3925241903-r6" x="24.4" y="556.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-22)">→</text><text class="terminal-3925241903-r1" x="36.6" y="556.8" textLength="512.4" clip-path="url(#terminal-3925241903-line-22)"> Add --context for background information </text><text class="terminal-3925241903-r4" x="549" y="556.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-22)">(</text><text class="terminal-3925241903-r1" x="561.2" y="556.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-22)">+</text><text class="terminal-3925241903-r5" x="573.4" y="556.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-22)">4</text><text class="terminal-3925241903-r1" x="585.6" y="556.8" textLength="48.8" clip-path="url(#terminal-3925241903-line-22)"> pts</text><text class="terminal-3925241903-r4" x="634.4" y="556.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-22)">)</text><text class="terminal-3925241903-r1" x="1073.6" y="556.8" textLength="12.2" clip-path="url(#terminal-3925241903-line-22)">
|
|
160
|
+
</text><text class="terminal-3925241903-r6" x="24.4" y="581.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-23)">→</text><text class="terminal-3925241903-r1" x="36.6" y="581.2" textLength="512.4" clip-path="url(#terminal-3925241903-line-23)"> Add --example with expected input/output </text><text class="terminal-3925241903-r4" x="549" y="581.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-23)">(</text><text class="terminal-3925241903-r1" x="561.2" y="581.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-23)">+</text><text class="terminal-3925241903-r5" x="573.4" y="581.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-23)">3</text><text class="terminal-3925241903-r1" x="585.6" y="581.2" textLength="48.8" clip-path="url(#terminal-3925241903-line-23)"> pts</text><text class="terminal-3925241903-r4" x="634.4" y="581.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-23)">)</text><text class="terminal-3925241903-r1" x="1073.6" y="581.2" textLength="12.2" clip-path="url(#terminal-3925241903-line-23)">
|
|
161
|
+
</text><text class="terminal-3925241903-r6" x="24.4" y="605.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-24)">→</text><text class="terminal-3925241903-r1" x="36.6" y="605.6" textLength="488" clip-path="url(#terminal-3925241903-line-24)"> Add --role to set the AI's perspective </text><text class="terminal-3925241903-r4" x="524.6" y="605.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-24)">(</text><text class="terminal-3925241903-r1" x="536.8" y="605.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-24)">+</text><text class="terminal-3925241903-r5" x="549" y="605.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-24)">3</text><text class="terminal-3925241903-r1" x="561.2" y="605.6" textLength="48.8" clip-path="url(#terminal-3925241903-line-24)"> pts</text><text class="terminal-3925241903-r4" x="610" y="605.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-24)">)</text><text class="terminal-3925241903-r1" x="1073.6" y="605.6" textLength="12.2" clip-path="url(#terminal-3925241903-line-24)">
|
|
162
|
+
</text><text class="terminal-3925241903-r6" x="24.4" y="630" textLength="12.2" clip-path="url(#terminal-3925241903-line-25)">→</text><text class="terminal-3925241903-r1" x="36.6" y="630" textLength="622.2" clip-path="url(#terminal-3925241903-line-25)"> Add --output-format to specify response structure </text><text class="terminal-3925241903-r4" x="658.8" y="630" textLength="12.2" clip-path="url(#terminal-3925241903-line-25)">(</text><text class="terminal-3925241903-r1" x="671" y="630" textLength="12.2" clip-path="url(#terminal-3925241903-line-25)">+</text><text class="terminal-3925241903-r5" x="683.2" y="630" textLength="12.2" clip-path="url(#terminal-3925241903-line-25)">2</text><text class="terminal-3925241903-r1" x="695.4" y="630" textLength="48.8" clip-path="url(#terminal-3925241903-line-25)"> pts</text><text class="terminal-3925241903-r4" x="744.2" y="630" textLength="12.2" clip-path="url(#terminal-3925241903-line-25)">)</text><text class="terminal-3925241903-r1" x="1073.6" y="630" textLength="12.2" clip-path="url(#terminal-3925241903-line-25)">
|
|
163
|
+
</text><text class="terminal-3925241903-r1" x="1073.6" y="654.4" textLength="12.2" clip-path="url(#terminal-3925241903-line-26)">
|
|
164
|
+
</text>
|
|
165
|
+
</g>
|
|
166
|
+
</g>
|
|
167
|
+
</svg>
|