User Tools

Site Tools


tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tools [2025/08/22 14:49] – [Cite Linker Pro Chrome Extension] admintools [2025/10/17 16:55] (current) admin
Line 3: Line 3:
 {{ :tools:cite-linker-pro-v1.5.0.zip |Cite Linker Pro v1.5}} {{ :tools:cite-linker-pro-v1.5.0.zip |Cite Linker Pro v1.5}}
 This Chrome browser extension can scan a page for legal citations and provide links to internet sources for that content.  It is user-configurable to add additional link patterns and sources for those documents. This Chrome browser extension can scan a page for legal citations and provide links to internet sources for that content.  It is user-configurable to add additional link patterns and sources for those documents.
 +
 +===== AI Editing prompt =====
 +You are an experienced appellate attorney working for a state supreme court. You are careful and precise in your writing. Proofread the following text and propose edits to improve it. Focus on grammar, clarity, conciseness, and professional tone. Apply style suggestions consistent with Bryan Garner's Redbook. As additional style suggestions, consider in priority order: (1) the style reflected in opinions by Jerod Tufte of the North Dakota Supreme Court; (2) Ross Guberman's Point Taken; (3) the style of Justice Neil Gorsuch, Elena Kagan, and Clarence Thomas. For all citations to authority, check for consistency with Bluebook format. Avoid passive voice unless that makes the sentence worse or less readable. Make note of any potential dicta and unnecessary alternative rationales. Point out any potential ambiguity, especially consider potential criticism from someone who may disagree with the decision and point out passages that may be easily quoted out of context. Never use plural pronouns as a gender neutral singular -- use he, she, or it, or rephrase to avoid the pronoun. Never use and/or, never use legalese like herein, wherefore, or latin-derived words when a plain English word carries the necessary precision. Always refer to constitutions as protecting, guaranteeing, or preserving rights, and never as creating or granting them unless the text clearly declares a newly created right. Check for any logical fallacies. Use the Oxford comma where appropriate. Your response should start with the proposed revised version set off by --Begin Revised Version-- and --End Revised Version-- followed by your analysis, your explanation for changes, and any other comments that may assist the court. Please bold any words that are changed to distinguish those from passages you would not suggest changing.
 +[paste draft text here]
 +
 +===== Autohotkey v2 macro =====
 +
 +<file ahk ai-hotkeys.ahk>
 +AI_PROOFREADING_PROMPT := "You are an experienced appellate attorney working for a state supreme court. You are careful and precise in your writing. Proofread the following text and propose edits to improve it. Focus on grammar, clarity, conciseness, and professional tone. Apply style suggestions consistent with Bryan Garner's Redbook. As additional style suggestions, consider in priority order: (1) the style reflected in opinions by Jerod Tufte of the North Dakota Supreme Court; (2) Ross Guberman's Point Taken; (3) the style of Justice Neil Gorsuch, Elena Kagan, and Clarence Thomas. For all citations to authority, check for consistency with Bluebook format. Avoid passive voice unless that makes the sentence worse or less readable. Make note of any potential dicta and unnecessary alternative rationales. Point out any potential ambiguity, especially consider potential criticism from someone who may disagree with the decision and point out passages that may be easily quoted out of context. Never use plural pronouns as a gender neutral singular -- use he, she, or it, or rephrase to avoid the pronoun. Never use and/or, never use legalese like herein, wherefore, or latin-derived words when a plain English word carries the necessary precision. Always refer to constitutions as protecting, guaranteeing, or preserving rights, and never as creating or granting them unless the text clearly declares a newly created right. Check for any logical fallacies. Use the Oxford comma where appropriate. Your response should start with the proposed revised version set off by --Begin Revised Version-- and --End Revised Version-- followed by your analysis, your explanation for changes, and any other comments that may assist the court. Please bold any words that are changed to distinguish those from passages you would not suggest changing.`n`n"
 +
 +;; ==========================================================================
 +;; CLAUDE AI INTEGRATION MODULE
 +;; ==========================================================================
 +^#!c:: ; Ctrl+Win+Alt+C - Send selected text to Claude for proofreading
 +{
 +    ; Save current clipboard content
 +    ClipSaved := ClipboardAll()
 +    
 +    ; Clear the clipboard
 +    A_Clipboard := ""
 +    
 +    ; Send Ctrl+C to copy the selected text
 +    Send "^c"
 +    
 +    ; Wait for the clipboard to contain text with a longer timeout
 +    if !ClipWait(2) {
 +        MsgBox "No text was selected!"
 +        ; Restore original clipboard
 +        A_Clipboard := ClipSaved
 +        return
 +    }
 +    
 +    ; Get the selected text from clipboard
 +    selectedText := A_Clipboard
 +    
 +    ; Prepare the prompt for Claude using global definition
 +    promptText := AI_PROOFREADING_PROMPT . selectedText
 +    
 +    ; Save current mouse position
 +    MouseGetPos &xpos, &ypos
 +    
 +    ; Check if Claude is already open in a browser tab
 +    claudeFound := false
 +    
 +    ; Try to find Claude tab in common browsers
 +    for browserClass in ["Chrome_WidgetWin_1", "MozillaWindowClass", "ApplicationFrameWindow"] ; Chrome, Firefox, Edge
 +    {
 +        if WinExist("ahk_class " . browserClass)
 +        {
 +            ; Activate the browser window
 +            WinActivate
 +            Sleep 500
 +            
 +            ; Try to find Claude tab by checking window titles
 +            windowList := WinGetList("ahk_class " . browserClass)
 +            for window in windowList
 +            {
 +                title := WinGetTitle("ahk_id " . window)
 +                if InStr(title, "Claude") || InStr(title, "claude.ai")
 +                {
 +                    WinActivate("ahk_id " . window)
 +                    claudeFound := true
 +                    Sleep 1000
 +                    break
 +                }
 +            }
 +            
 +            if claudeFound
 +                break
 +        }
 +    }
 +    
 +    ; If no Claude tab found, open a new one
 +    if !claudeFound
 +    {
 +        Run "https://claude.ai/" ; was /new but that seems to have triggered some automation blocker
 +        
 +        ; Wait longer for the page to load - especially important on slower connections
 +        Sleep 3000
 +        
 +        ; Wait for any browser window to become active
 +        try {
 +            WinWait "ahk_group Browsers",, 10
 +        }
 +        catch {
 +            MsgBox "Couldn't detect browser window after 10 seconds. Try again."
 +            A_Clipboard := ClipSaved  ; Restore clipboard
 +            return
 +        }
 +        
 +        ; Make sure the window is active
 +        WinActivate "ahk_group Browsers"
 +        Sleep 1000
 +    }
 +    
 +    ; Set clipboard to the prompt text
 +    A_Clipboard := promptText
 +    Sleep 500
 +    
 +    ; Try to focus the input field using Tab then Shift+Tab
 +    ; This works better in Vivaldi and other browsers for Claude's interface
 +    Sleep 1000  ; Wait a bit for the page to finish rendering
 +    Send "{Tab}"  ; Tab once
 +    Sleep 300
 +    Send "+{Tab}"  ; Shift+Tab to focus the input field
 +    Sleep 500
 +    
 +    ; Now try to paste
 +    Send "^v"
 +    Sleep 500
 +    
 +    ; Press Enter to send the message
 +    Send "{Enter}"
 +    
 +    ; Restore original clipboard after a delay
 +    Sleep 1000
 +    A_Clipboard := ClipSaved
 +    
 +    ; Restore original mouse position
 +    MouseMove xpos, ypos
 +    
 +    ; Show notification
 +    ToolTip "Text sent to Claude for proofreading!"
 +    SetTimer () => ToolTip(), -2000  ; Hide tooltip after 2 seconds
 +}
 +
 +;; ==========================================================================
 +;; GOOGLE GEMINI INTEGRATION MODULE  
 +;; ==========================================================================
 +^#!g:: ; Ctrl+Win+Alt+G - Send selected text to Google Gemini for proofreading
 +{
 +    ; Save current clipboard content
 +    ClipSaved := ClipboardAll()
 +    
 +    ; Clear the clipboard
 +    A_Clipboard := ""
 +    
 +    ; Send Ctrl+C to copy the selected text
 +    Send "^c"
 +    
 +    ; Wait for the clipboard to contain text with a longer timeout
 +    if !ClipWait(2) {
 +        MsgBox "No text was selected!"
 +        ; Restore original clipboard
 +        A_Clipboard := ClipSaved
 +        return
 +    }
 +    
 +    ; Get the selected text from clipboard
 +    selectedText := A_Clipboard
 +    
 +    ; Prepare the prompt for Gemini using global definition (same as Claude for consistency)
 +    promptText := AI_PROOFREADING_PROMPT . selectedText
 +    
 +    ; Save current mouse position
 +    MouseGetPos &xpos, &ypos
 +    
 +    ; Check if Gemini is already open in a browser tab
 +    geminiFound := false
 +    debugInfo := "Debug: Searching for existing Gemini tabs...`n"
 +    
 +    ; Try to find Gemini tab in common browsers
 +    for browserClass in ["Chrome_WidgetWin_1", "MozillaWindowClass", "ApplicationFrameWindow"] ; Chrome, Firefox, Edge
 +    {
 +        if WinExist("ahk_class " . browserClass)
 +        {
 +            debugInfo .= "Found browser class: " . browserClass . "`n"
 +            ; Activate the browser window
 +            WinActivate
 +            Sleep 500
 +            
 +            ; Try to find Gemini tab by checking window titles
 +            windowList := WinGetList("ahk_class " . browserClass)
 +            debugInfo .= "Found " . windowList.Length . " windows for this browser`n"
 +            
 +            for window in windowList
 +            {
 +                title := WinGetTitle("ahk_id " . window)
 +                debugInfo .= "Window title: " . title . "`n"
 +                
 +                ; More comprehensive Gemini detection
 +                if InStr(title, "Gemini") || InStr(title, "gemini.google.com") || InStr(title, "Google AI")
 +                {
 +                    WinActivate("ahk_id " . window)
 +                    geminiFound := true
 +                    debugInfo .= "Found existing Gemini tab!`n"
 +                    Sleep 1000
 +                    break
 +                }
 +            }
 +            
 +            if geminiFound
 +                break
 +        }
 +    }
 +    
 +    ; Show debug info with temporary tooltip
 +    if !geminiFound {
 +        ToolTip debugInfo
 +        SetTimer () => ToolTip(), -5000  ; 5 second display
 +    }
 +    
 +    ; If no Gemini tab found, open a new one
 +    if !geminiFound
 +    {
 +        ToolTip "No existing Gemini tab found. Opening new tab..."
 +        SetTimer () => ToolTip(), -2000
 +        
 +        Run "https://gemini.google.com/"
 +        
 +        ; Wait longer for the page to load
 +        Sleep 4000  ; Increased wait time
 +        
 +        ; Wait for any browser window to become active
 +        try {
 +            WinWait "ahk_group Browsers",, 15  ; Increased timeout
 +        }
 +        catch {
 +            MsgBox "Couldn't detect browser window after 15 seconds. Try again."
 +            A_Clipboard := ClipSaved  ; Restore clipboard
 +            return
 +        }
 +        
 +        ; Make sure the window is active
 +        WinActivate "ahk_group Browsers"
 +        Sleep 1000
 +    }
 +    
 +    ; Set clipboard to the prompt text
 +    A_Clipboard := promptText
 +    Sleep 500
 +    
 +    ; Focus the input field for Gemini using Ctrl+F search method
 +    Sleep 2000  ; Wait for page to finish rendering
 +    
 +    ; Use Ctrl+F to search for "Tools" and navigate backwards to input field
 +    Send "^f"  ; Open find dialog
 +    Sleep 300
 +    Send "Tools"  ; Search for Tools button
 +    Sleep 300
 +    Send "{Enter}"  ; Find it
 +    Sleep 500
 +    Send "{Escape}"  ; Close find dialog
 +    Sleep 300
 +    
 +    ; Navigate backwards twice to reach the input field
 +    Send "+{Tab}+{Tab}"
 +    Sleep 500
 +    
 +    ; Paste the prompt text
 +    A_Clipboard := promptText
 +    Sleep 200
 +    Send "^v"
 +    Sleep 500
 +    
 +    Sleep 500
 +    
 +    ; Try to send the message
 +    ; Gemini typically uses Enter, but let's try both
 +    Send "{Enter}"
 +    Sleep 1000
 +    
 +    ; If Enter didn't work, try Ctrl+Enter
 +    Send "^{Enter}"
 +    
 +    ; Restore original clipboard after a delay
 +    Sleep 1000
 +    A_Clipboard := ClipSaved
 +    
 +    ; Restore original mouse position
 +    MouseMove xpos, ypos
 +    
 +    ; Show notification
 +    ToolTip "Text sent to Google Gemini for proofreading!"
 +    SetTimer () => ToolTip(), -2000  ; Hide tooltip after 2 seconds
 +}
 +
 +
 +
 +</file>
tools.1755874150.txt.gz · Last modified: by admin

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki