{"id":50779926,"url":"https://github.com/basvdberg/cursor-config","last_synced_at":"2026-06-12T02:30:32.114Z","repository":{"id":359360698,"uuid":"1245729578","full_name":"basvdberg/cursor-config","owner":"basvdberg","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-08T20:04:43.000Z","size":192,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T22:06:59.583Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basvdberg.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-21T13:54:33.000Z","updated_at":"2026-06-08T20:04:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/basvdberg/cursor-config","commit_stats":null,"previous_names":["basvdberg/cursor-config"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/basvdberg/cursor-config","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvdberg%2Fcursor-config","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvdberg%2Fcursor-config/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvdberg%2Fcursor-config/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvdberg%2Fcursor-config/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basvdberg","download_url":"https://codeload.github.com/basvdberg/cursor-config/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basvdberg%2Fcursor-config/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34226629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-12T02:30:31.496Z","updated_at":"2026-06-12T02:30:32.108Z","avatar_url":"https://github.com/basvdberg.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cursor-config\n\n## Table of contents\n\n\u003c!-- markdown-toc:start --\u003e\n- [Layout](#layout)\n- [One-time setup](#one-time-setup)\n  - [1. Clone beside your projects](#1-clone-beside-your-projects)\n  - [2. Install Cursor skills](#2-install-cursor-skills)\n  - [3. Enable Git hooks in each consumer repo](#3-enable-git-hooks-in-each-consumer-repo)\n- [Manual commands](#manual-commands)\n- [Environment](#environment)\n- [Related repositories](#related-repositories)\n\u003c!-- markdown-toc:end --\u003e\n\nVersioned Cursor automation for the Data Engineering workspace: agent rules, skills, Markdown TOC/structure updaters, `prompts.md` generation, and Git pre/post-commit hooks.\n\nRepository: [github.com/basvdberg/cursor-config](https://github.com/basvdberg/cursor-config) (push this folder after clone).\n\n## Layout\n\n| Path | Purpose |\n|------|---------|\n| `rules/` | Shared Cursor rules (`.mdc`); single copy only—no per-repo `.cursor/rules` |\n| `scripts/` | Python tools and install scripts (`install-cursor.ps1`, `update_markdown_docs.py`, …) |\n| `githooks/` | Shared `pre-commit` and `post-commit` hooks for consumer repos |\n| `skills/` | Cursor agent skills (`create-skill`, `markdown-toc`, `release-details-updater`, `release-retrospective`, `troubleshooting-error-log`, …) |\n| `browser-bookmarks-sync.json` | Paths to Chrome/Brave profiles and the Floccus Git repo |\n\nConsumer repositories keep repo-specific files only, for example `project-structure-external.json` and `project-structure-descriptions.json` at their own roots.\n\n## One-time setup\n\n### 1. Clone beside your projects\n\n```text\nData Engineering 2.0/\n  cursor-config/\n  browser-bookmarks-sync/   # private Floccus target (in workspace)\n  data-solution-2026/\n  data-engineering-2026/\n  data-engineering-design-patterns/\n```\n\n### 2. Install Cursor skills\n\nFrom this repository:\n\n```powershell\n.\\scripts\\install-cursor.ps1\n```\n\nLinks each skill under `%USERPROFILE%\\.cursor\\skills\\` to `skills/` in this repo.\n\n**Rules** stay in `cursor-config/rules/` only. Do not add `.cursor/rules` in consumer repositories. Open the parent workspace (or add the `cursor-config` folder to your Cursor workspace) so agents resolve shared rules from this path.\n\nRe-run after adding a new skill.\n\n### 3. Enable Git hooks in each consumer repo\n\nFrom the consumer repository root:\n\n```powershell\n..\\cursor-config\\scripts\\setup-githooks.ps1 .\n```\n\nOr add `.cursor-config.json`:\n\n```json\n{\n  \"cursorConfig\": \"../cursor-config\",\n  \"preCommit\": \"standard\"\n}\n```\n\nUse `\"preCommit\": \"strict\"` for naming and marker validation (default for `data-engineering-design-patterns`).\n\n## Manual commands\n\nRun from a **consumer** Git root:\n\n```powershell\n$cfg = Resolve-Path ..\\cursor-config\npython \"$cfg\\scripts\\update_markdown_docs.py\" --root (Get-Location)\npython \"$cfg\\scripts\\update_markdown_docs.py\" --toc-only\npython \"$cfg\\scripts\\update_prompts.py\"   # root prompts.md, or release/details/\u003cversion\u003e/ when release/VERSION exists\npython \"$cfg\\scripts\\review_markdown.py\" .\n```\n\nBrowser bookmarks (Chrome + Brave → Floccus via Git):\n\n```powershell\n$env:CURSOR_CONFIG_ROOT = $cfg\npython \"$cfg\\scripts\\sync_browser_bookmarks.py\" --basnas --commit --push\n```\n\nSkill wrappers (after `install-skills.ps1`):\n\n```powershell\npython $env:USERPROFILE\\.cursor\\skills\\markdown-toc\\scripts\\update_toc.py\n```\n\n## Environment\n\n| Variable | Purpose |\n|----------|---------|\n| `CURSOR_CONFIG_ROOT` | Absolute path to this repo when it is not a sibling of the consumer |\n\nGit config `cursor.configPath` is set automatically by `setup-githooks`.\n\n## Related repositories\n\n- [Data Solution 2026](https://github.com/basvdberg/data-solution-2026)\n- [Data Engineering 2026](https://github.com/basvdberg/data-engineering-2026)\n- [Data Engineering Design Patterns](https://github.com/basvdberg/data-engineering-design-patterns)\n- [Browser bookmarks sync](https://github.com/basvdberg/browser-bookmarks-sync) (private; Floccus)\n\n## Project structure\n\n\u003c!-- markdown-project-structure:start --\u003e\n- [cursor-config](readme.md)\n  - Githooks\n  - Rules\n  - Skills\n    - Browser Bookmarks Sync\n      - [Browser bookmarks sync](skills/browser-bookmarks-sync/SKILL.md)\n    - Create Design Pattern\n      - [Create design pattern](skills/create-design-pattern/SKILL.md)\n      - [{Title}](skills/create-design-pattern/TEMPLATE.md)\n    - Create Skill\n      - [Create skill (cursor-config)](skills/create-skill/SKILL.md)\n    - Basnas Ssh\n      - [BasNAS SSH (docker and git)](skills/basnas-ssh/SKILL.md)\n    - Deploy Basnas Container\n      - Templates\n      - [Fix admin hostname not resolving](skills/deploy-basnas-container/dns-basnas-setup.md)\n      - [Examples](skills/deploy-basnas-container/examples.md)\n      - [NGINX as HTTPS edge on port 443 (local server / QNAP)](skills/deploy-basnas-container/nginx-on-443.md)\n      - [local server deployment reference](skills/deploy-basnas-container/reference.md)\n      - [Deploy container service on local server](skills/deploy-basnas-container/SKILL.md)\n      - [Troubleshooting “Your connection is not private” (*.example)](skills/deploy-basnas-container/troubleshooting-tls.md)\n      - [local server URL map](skills/deploy-basnas-container/url-map.md)\n    - Markdown Project Structure\n      - [Markdown project structure](skills/markdown-project-structure/SKILL.md)\n    - Markdown Toc\n      - [Markdown table of contents](skills/markdown-toc/SKILL.md)\n    - Naming Convention Files Folders\n      - [Naming convention for files and folders](skills/naming-convention-files-folders/SKILL.md)\n    - Pretty Color Logging\n      - [Pretty Color Logging](skills/pretty-color-logging/SKILL.md)\n    - Release Details Updater\n      - [Release Details Updater](skills/release-details-updater/SKILL.md)\n    - Review Markdown Structure\n      - [Review Markdown structure](skills/review-markdown-structure/SKILL.md)\n    - Troubleshooting Error Log\n      - [Examples](skills/troubleshooting-error-log/examples.md)\n      - [Troubleshooting error reference](skills/troubleshooting-error-log/reference.md)\n      - [Troubleshooting error log](skills/troubleshooting-error-log/SKILL.md)\n- Related repositories\n  - [Data Engineering 2026](https://github.com/basvdberg/data-engineering-2026) — Course and learning materials\n  - [Data Engineering Design Patterns](https://github.com/basvdberg/data-engineering-design-patterns) — Design pattern catalogue\n  - [Data Solution 2026](https://github.com/basvdberg/data-solution-2026) — Data solution proof of concept\n\u003c!-- markdown-project-structure:end --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasvdberg%2Fcursor-config","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasvdberg%2Fcursor-config","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasvdberg%2Fcursor-config/lists"}