Repository Analysis

linshenkx/prompt-optimizer

An AI prompt optimizer for writing better prompts and getting better AI results.

0.4 Likely human-written View on GitHub
0.4
Adjusted Score
0.4
Raw Score
100%
Time Factor
2026-05-28
Last Push
30,108
Stars
TypeScript
Language
404,139
Lines of Code
1727
Files
149
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 8MEDIUM 0LOW 141

Pattern Findings

149 matches across 5 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers124 hits · 124 pts
SeverityFileLineSnippet
LOWtests/e2e/favorite-management.spec.ts78async function closeFavoritesDrawerIfOpen(page: Page): Promise<void> {
LOWtests/e2e/favorite-management.spec.ts86async function createFavoriteWithReproData(
LOWtests/e2e/fixtures.ts14function shouldIgnoreConsoleMessage(message: string): boolean {
LOWtests/e2e/e2e-vcr-guide.md133function getFixtureNameFromRequest(request: any): string {
LOWtests/e2e/analysis/pro-multi.spec.ts20async function getPromptPanelEvaluationScore(page: Page): Promise<number> {
LOWtests/e2e/analysis/pro-multi.spec.ts41async function triggerPromptPanelAnalyze(page: Page): Promise<void> {
LOWtests/e2e/analysis/pro-multi.spec.ts48async function expectPromptAnalysisStarted(page: Page): Promise<void> {
LOWtests/e2e/test/image-text2image-generate.spec.ts20async function openSelectAndWaitForVisibleOptions(page: any, select: any) {
LOWtests/e2e/test/image-image2image-generate.spec.ts8async function openSelectAndWaitForVisibleOptions(page: any, select: any) {
LOWtests/e2e/test/image-image2image-generate.spec.ts60async function selectPreferredMultimodalTextModel(page: any, select: any) {
LOWtests/e2e/helpers/vcr.ts113export function throwIfCurrentTestHasVCRFailure(): void {
LOWtests/e2e/helpers/vcr.ts126export async function waitForConditionOrVCRFailure(
LOWtests/e2e/helpers/evaluation.ts6export async function clickEvaluateButtonWithin(container: Locator): Promise<void> {
LOWtests/e2e/helpers/evaluation.ts46export async function openEvaluationDrawerFromBadge(badge: Locator): Promise<Locator> {
LOWtests/e2e/helpers/evaluation.ts91export async function openEvaluationDrawerFromHoverCard(page: Page): Promise<Locator> {
LOWtests/e2e/helpers/evaluation.ts132export async function expectStructuredCompareDrawer(drawer: Locator): Promise<void> {
LOWtests/e2e/helpers/evaluation.ts155export async function expectPromptVersionTagVisible(
LOWtests/e2e/helpers/analysis.ts167export async function closeEvaluationPanelIfOpen(page: Page): Promise<void> {
LOWtests/e2e/helpers/analysis.ts190export async function verifyAnalyzeButtonDisabledWhenEmpty(
LOWtests/e2e/helpers/optimize.ts119export async function expectOutputByTestIdNotEmpty(page: Page, testId: string, opts?: { timeoutMs?: number }) {
LOWtests/e2e/helpers/optimize.ts139export async function expectOptimizedResultNotEmpty(page: Page, mode: OptimizeWorkspaceMode) {
LOWtests/e2e/helpers/optimize.ts207export async function verifyOptimizeButtonDisabledWhenEmpty(page: Page, mode: OptimizeWorkspaceMode) {
LOWtests/e2e/helpers/optimize.ts245export async function selectProMultiMessageForOptimization(page: Page, index: number) {
LOWtests/e2e/helpers/optimize.ts255export async function clickProMultiOptimizeButton(page: Page) {
LOW…ssion-persistence/model-default-and-cross-mode.spec.ts114async function openSelectAndWaitForOptions(page: any, select: any) {
LOW…on-persistence/template-default-and-cross-mode.spec.ts108async function openSelectAndWaitForOptions(page: any, select: any) {
LOW…2e/session-persistence/workspace-clear-content.spec.ts79async function expectOriginalPromptValue(page: Page, mode: ClearableWorkspaceMode, value: string) {
LOW…2e/session-persistence/workspace-clear-content.spec.ts119async function expectTestInputClearedIfAvailable(page: Page, mode: ClearableWorkspaceMode) {
LOW…2e/session-persistence/workspace-clear-content.spec.ts126async function seedAndPersistDerivedState(page: Page, mode: ClearableWorkspaceMode) {
LOW…2e/session-persistence/workspace-clear-content.spec.ts278async function fillPromptWithoutWaitingForActions(page: Page, mode: ClearableWorkspaceMode, value: string) {
LOW…2e/session-persistence/workspace-clear-content.spec.ts313async function expectProMultiSeedMessage(page: Page, visible: boolean) {
LOW…ssion-persistence/image-multiimage-persistence.spec.ts23async function expectMultiImagePromptValue(
LOW…-single-source-refactor/bug-fix-testresults-display.md494export function useBasicWorkspaceOperations(options: {
LOW…sion-persistence-plans/architecture-migration-guide.md194export function useBasicWorkspaceOperations(options: UseBasicWorkspaceOperationsOptions) {
LOW…n-persistence-plans/architecture-migration-analysis.md260export function useBasicWorkspaceOperations(options) {
LOW…hives/118-desktop-auto-update-system/implementation.md223function createDetailedErrorResponse(error) {
LOW…es/127-multi-turn-dialogue-mode-optimization/design.md690export function useConversationOptimization(
LOWdocs/archives/117-pinia-refactoring/fix-plan.md184export function createPreferenceServiceStub(
LOW…s/archives/117-pinia-refactoring/code-review-claude.md105export function createScopedPiniaServices() {
LOW…-import-export-architecture-refactor/implementation.md24class DataManager {
LOWdocs/testing/e2e-selector-strategy.md280export async function verifyAnalyzeButtonDisabledWhenEmpty(
LOWdocs/architecture/import-export-interface-design.md126class DataManager {
LOWdocs/architecture/storage-refactoring-summary.md106export function createTemplateLanguageService(storageProvider: IStorageProvider): TemplateLanguageService {
LOWdocs/architecture/storage-refactoring-summary.md111export function createTemplateLanguageService(
LOWdocs/architecture/llm-refactor.md188export async function convertLegacyToTextModelConfigWithRegistry(
LOWscripts/release-notes.js66function getReleaseNotesRelativePath(version, locale, cwd = process.cwd()) {
LOWscripts/release-notes.js154function isNoChangeProductSubsection(body) {
LOWscripts/release-notes.js190function validateProductSubsectionOrder(content, locale) {
LOWscripts/release-notes.js236function validateReleaseNotesContent(content, version, locale, options = {}) {
LOWscripts/release-notes.js428function buildReleaseNotesTemplate({ version, locale, commitDraft = [] }) {
LOWscripts/release-notes.js556function prepareReleaseNotesForGitHubBody(content, version, cwd = process.cwd()) {
LOW…/tests/unit/components/TemporaryVariablesPanel.spec.ts174function createPanelManagerFixture() {
LOWpackages/ui/tests/utils/pinia-test-helpers.ts32export function createPreferenceServiceStub(
LOW…ges/ui/src/composables/app/useAppPromptGardenImport.ts893async function buildStorableGardenSnapshot(
LOW…rc/composables/variable/useVariableAwareInputBridge.ts62export function useVariableAwareInputBridge(params: UseVariableAwareInputBridgeParams) {
LOW…src/composables/variable/useVariableValueGeneration.ts46export function useVariableValueGeneration(
LOW…omposables/variable/useSmartVariableValueGeneration.ts53export function buildVariableValueGenerationPlan(
LOW…omposables/variable/useSmartVariableValueGeneration.ts96export function useSmartVariableValueGeneration(
LOW…i/src/composables/prompt/useLocalPromptPreviewPanel.ts31export function useLocalPromptPreviewPanel(
LOW…ages/ui/src/composables/prompt/useEvaluationContext.ts70export function useEvaluationContextOptional(): UseEvaluationReturn | null {
64 more matches not shown…
Magic Placeholder Names8 hits · 40 pts
SeverityFileLineSnippet
HIGHdocs/development/mcp-server-progress.md112MCP_DEFAULT_MODEL_API_KEY=your-api-key
HIGHdocs/development/mcp-server-progress.md133 "MCP_DEFAULT_MODEL_API_KEY": "your-api-key"
HIGHdocs/user/multi-custom-models_en.md22VITE_CUSTOM_API_KEY_<suffix>=your-api-key # Required
HIGHdocs/user/multi-custom-models.md22VITE_CUSTOM_API_KEY_<suffix>=your-api-key # 必需
HIGHdocs/archives/121-multi-custom-models-support/README.md123VITE_CUSTOM_API_KEY_qwen3=your-api-key
HIGHdocs/archives/121-multi-custom-models-support/README.md128VITE_CUSTOM_API_KEY_qwen2_5=your-api-key
HIGHpackages/core/tests/helpers/real-llm.ts194 console.log('例如:VITE_OPENAI_API_KEY=your_api_key');
HIGHmkdocs/docs/en/deployment/docker-basic.md21VITE_CUSTOM_API_KEY_<suffix>=your-api-key
Over-Commented Block14 hits · 14 pts
SeverityFileLineSnippet
LOW…es/127-multi-turn-dialogue-mode-optimization/design.md561---
LOW…es/127-multi-turn-dialogue-mode-optimization/design.md581
LOW…es/127-multi-turn-dialogue-mode-optimization/design.md641await optimizeMessage("v3");
LOW…es/127-multi-turn-dialogue-mode-optimization/design.md661// 7. 用户打开历史记录面板
LOWdocs/testing/ai-automation/electron-mcp-guide.md261
LOWpackages/ui/src/components/TemplateManager.vue1221// a.click();
LOW…es/ui/src/components/app-layout/PromptOptimizerApp.vue441
LOW…core/tests/integration/storage-implementations.test.ts61 // createProvider: () => new DexieStorageProvider(),
LOWpackages/core/tests/helpers/README.md181```typescript
LOWpackages/core/src/services/prompt/service.ts1021 } catch (fallbackError) {
LOW…ore/src/services/model/advancedParameterDefinitions.ts201// advancedParameterDefinitions.reduce((acc, def) => {
LOWpackages/core/src/services/evaluation/types.ts521 callbacks: EvaluationStreamHandlers
LOWpackages/core/src/services/evaluation/types.ts541// - evaluation-pro-multi-prompt-iterate (Pro模式/多消息模式/迭代需求评估)
LOWpackages/desktop/dev-app-update.yml1provider: github
Overly Generic Function Names2 hits · 2 pts
SeverityFileLineSnippet
LOW…tes/optimize/context/context-analytical-optimize_en.ts60def process_data(data):
LOW…plates/optimize/context/context-analytical-optimize.ts69def process_data(data):
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippet
LOWpackages/ui/docs/COMPONENT_API.md268 arguments: { to: 'user@example.com', subject: 'Test' },