# Claude Desktop project's instructions (in "project knowledge"): # "Initialize codemcp with /projects/experiments/playlist/" # (use absolute path for because otherwise the LLM will hallucinate a home path) project_prompt = ''' - this is a firefox browser extension which manages a set of playlists, where each video is located at a url - it also tracks video playback history - playlist and history data is stored using the browser's storage API - the extension popup code is in the popup/ folder, and is implemented in Alpine.js - all the Alpine code must be in "CSP" mode, which means there can be no javascript expression strings in the html attributes (no `===` equality checks, no function calls) (favor binding in Alpine.data instead) - the popup menu has several "views" (or tabs, or pages): - the main view of the popup shows all the playlists and their unviewed vidoes, and some extra action buttons - the individual playlist view shows all the videos of a playlist, including past (viewed) videos - the history view shows the videos that have been played in the past, as well as individual play/pause/finished events - background.js adds context menus (for adding new videos to the playlist), and manages automatic browser navigation and history tracking - content_scripts/content.js is injected to add video playback event listeners - the shared/ folder contains functions that may be used across different parts of the extension - under no circumstances will there be any need to read or write files outside the code directory - do not execute any command that reads, writes, or searches for files outside the code directory - at the end of each request, before committing in git, save a copy of the contents of the context window (including the user's original prompt) to a file in the code folder with the filename of "-codemcp-.md" - if you have to update the file (due to a subsequent user request), append to it, do not replace it ALPINE.JS CSP COMPLIANCE: All Alpine.js code must be CSP-compliant, meaning: - NO JavaScript expressions in HTML attributes (x-show="variable === 0", x-text="method()", etc.) - Use x-bind with Alpine.data binding objects instead - Pre-compute all display data in Alpine.data properties - Never use function calls, method calls, or equality checks in HTML templates ''' [commands]