diff --git a/.cursorrules b/.cursorrules
new file mode 100644
index 0000000..ede21d3
--- /dev/null
+++ b/.cursorrules
@@ -0,0 +1,22 @@
+# Project Configuration
+
+## Project Type
+- Static Site Generator: Jekyll
+- Hosting: GitHub Pages
+
+## Build Commands
+- `bundle install`: Install dependencies
+- `bundle exec jekyll serve`: Run development server
+- `bundle exec jekyll build`: Build site for production
+
+## Important Files
+- `_config.yml`: Jekyll configuration
+- `Gemfile`: Ruby dependencies
+- `_site/`: Build output directory (generated)
+- `_posts/`: Blog posts directory
+- `_layouts/`: Template layouts
+- `_includes/`: Reusable components
+
+## GitHub Pages Settings
+- Branch: gh-pages (or main/master, depending on your setup)
+- Build Source: Jekyll
\ No newline at end of file
diff --git a/.github/contentcodex.png b/.github/contentcodex.png
deleted file mode 100644
index 3374a41..0000000
Binary files a/.github/contentcodex.png and /dev/null differ
diff --git a/.github/workflows/csv_linter.yml b/.github/workflows/csv_linter.yml
index f07553d..df217ad 100644
--- a/.github/workflows/csv_linter.yml
+++ b/.github/workflows/csv_linter.yml
@@ -9,31 +9,69 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
+
- name: Set up Python
uses: actions/setup-python@v2
with:
- python-version: 3.8
+ python-version: '3.8'
+
- name: Install dependencies
run: |
+ python -m pip install --upgrade pip
python -m pip install csvkit
-
- - name: Lint CSV files
- run: find . -name "*.csv" -exec csvclean -n -u 2 {} +
- env:
- CI: true
- - name: Check for errors
- if: always()
+
+ - name: Validate CSV structure
run: |
- if ! grep -q "No errors." <(find . -name "*.csv" -exec csvclean -n -u 2 {} + | grep -v "^$"); then
- echo "Errors were found in one or more CSV files."
+ echo "Checking CSV structure..."
+ if ! csvclean -n prompts.csv 2>&1 | tee /tmp/csv_errors.log; then
+ echo "::error::CSV validation failed"
+ cat /tmp/csv_errors.log
exit 1
fi
+
+ - name: Check CSV format
+ run: |
+ echo "Checking CSV format..."
+ if ! python -c '
+ import csv
+ with open("prompts.csv", "r", encoding="utf-8") as f:
+ reader = csv.reader(f)
+ headers = next(reader)
+ if headers != ["act", "prompt"]:
+ print("Error: CSV headers must be exactly [act, prompt]")
+ exit(1)
+ for row_num, row in enumerate(reader, 2):
+ if len(row) != 2:
+ print(f"Error: Row {row_num} has {len(row)} columns, expected 2")
+ exit(1)
+ if not row[0] or not row[1]:
+ print(f"Error: Row {row_num} has empty values")
+ exit(1)
+ '; then
+ echo "::error::CSV format check failed"
+ exit 1
+ fi
+
- name: Check Trailing Whitespaces
run: |
- # Check if the special file contains any trailing whitespaces
- if grep -q "[[:space:]]$" ./prompts.csv; then
- echo "ERROR: Found trailing whitespaces in prompts.csv"
+ echo "Checking for trailing whitespaces..."
+ if grep -q "[[:space:]]$" prompts.csv; then
+ echo "::error::Found trailing whitespaces in prompts.csv"
+ grep -n "[[:space:]]$" prompts.csv | while read -r line; do
+ echo "Line with trailing whitespace: $line"
+ done
+ exit 1
+ fi
+ echo "No trailing whitespaces found"
+
+ - name: Check for UTF-8 BOM and line endings
+ run: |
+ echo "Checking for UTF-8 BOM and line endings..."
+ if file prompts.csv | grep -q "with BOM"; then
+ echo "::error::File contains UTF-8 BOM marker"
+ exit 1
+ fi
+ if file prompts.csv | grep -q "CRLF"; then
+ echo "::error::File contains Windows-style (CRLF) line endings"
exit 1
- else
- echo "No trailing whitespaces found in prompts.csv"
fi
\ No newline at end of file
diff --git a/.github/workflows/pr_title_improver.yml b/.github/workflows/pr_title_improver.yml
new file mode 100644
index 0000000..e23c083
--- /dev/null
+++ b/.github/workflows/pr_title_improver.yml
@@ -0,0 +1,58 @@
+name: Improve PR Title
+
+on:
+ pull_request:
+ types: [opened, edited, synchronize]
+
+jobs:
+ improve-title:
+ runs-on: ubuntu-latest
+ permissions:
+ pull-requests: write
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Get PR Content
+ id: pr-content
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const { data: pr } = await github.rest.pulls.get({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ pull_number: context.issue.number
+ });
+ const content = `${pr.title}\n\n${pr.body}`;
+ return content;
+
+ - name: Generate Better Title
+ id: generate-title
+ uses: openai/openai-api@v1
+ with:
+ api-key: ${{ secrets.OPENAI_API_KEY }}
+ model: gpt-3.5-turbo
+ messages: |
+ [
+ {
+ "role": "system",
+ "content": "You are a helpful assistant that improves pull request titles. Make titles concise, descriptive, and following conventional commit message style."
+ },
+ {
+ "role": "user",
+ "content": "Based on this pull request content, generate a better title:\n\n${{ steps.pr-content.outputs.result }}"
+ }
+ ]
+
+ - name: Update PR Title
+ if: steps.generate-title.outputs.response != ''
+ uses: actions/github-script@v6
+ with:
+ script: |
+ const newTitle = ${{ steps.generate-title.outputs.response }}.choices[0].message.content.trim();
+ await github.rest.pulls.update({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ pull_number: context.issue.number,
+ title: newTitle
+ });
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..57510a2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+_site/
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..84800ed
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,4 @@
+source "https://rubygems.org"
+
+gem "jekyll"
+gem "github-pages", group: :jekyll_plugins
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..a347a5f
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,309 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ activesupport (8.0.1)
+ base64
+ benchmark (>= 0.3)
+ bigdecimal
+ concurrent-ruby (~> 1.0, >= 1.3.1)
+ connection_pool (>= 2.2.5)
+ drb
+ i18n (>= 1.6, < 2)
+ logger (>= 1.4.2)
+ minitest (>= 5.1)
+ securerandom (>= 0.3)
+ tzinfo (~> 2.0, >= 2.0.5)
+ uri (>= 0.13.1)
+ addressable (2.8.7)
+ public_suffix (>= 2.0.2, < 7.0)
+ base64 (0.2.0)
+ benchmark (0.4.0)
+ bigdecimal (3.1.9)
+ coffee-script (2.4.1)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.12.2)
+ colorator (1.1.0)
+ commonmarker (0.23.11)
+ concurrent-ruby (1.3.4)
+ connection_pool (2.4.1)
+ csv (3.3.2)
+ dnsruby (1.72.3)
+ base64 (~> 0.2.0)
+ simpleidn (~> 0.2.1)
+ drb (2.2.1)
+ em-websocket (0.5.3)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0)
+ ethon (0.16.0)
+ ffi (>= 1.15.0)
+ eventmachine (1.2.7)
+ execjs (2.10.0)
+ faraday (2.12.2)
+ faraday-net_http (>= 2.0, < 3.5)
+ json
+ logger
+ faraday-net_http (3.4.0)
+ net-http (>= 0.5.0)
+ ffi (1.17.1-aarch64-linux-gnu)
+ ffi (1.17.1-aarch64-linux-musl)
+ ffi (1.17.1-arm-linux-gnu)
+ ffi (1.17.1-arm-linux-musl)
+ ffi (1.17.1-arm64-darwin)
+ ffi (1.17.1-x86_64-darwin)
+ ffi (1.17.1-x86_64-linux-gnu)
+ ffi (1.17.1-x86_64-linux-musl)
+ forwardable-extended (2.6.0)
+ gemoji (4.1.0)
+ github-pages (232)
+ github-pages-health-check (= 1.18.2)
+ jekyll (= 3.10.0)
+ jekyll-avatar (= 0.8.0)
+ jekyll-coffeescript (= 1.2.2)
+ jekyll-commonmark-ghpages (= 0.5.1)
+ jekyll-default-layout (= 0.1.5)
+ jekyll-feed (= 0.17.0)
+ jekyll-gist (= 1.5.0)
+ jekyll-github-metadata (= 2.16.1)
+ jekyll-include-cache (= 0.2.1)
+ jekyll-mentions (= 1.6.0)
+ jekyll-optional-front-matter (= 0.3.2)
+ jekyll-paginate (= 1.1.0)
+ jekyll-readme-index (= 0.3.0)
+ jekyll-redirect-from (= 0.16.0)
+ jekyll-relative-links (= 0.6.1)
+ jekyll-remote-theme (= 0.4.3)
+ jekyll-sass-converter (= 1.5.2)
+ jekyll-seo-tag (= 2.8.0)
+ jekyll-sitemap (= 1.4.0)
+ jekyll-swiss (= 1.0.0)
+ jekyll-theme-architect (= 0.2.0)
+ jekyll-theme-cayman (= 0.2.0)
+ jekyll-theme-dinky (= 0.2.0)
+ jekyll-theme-hacker (= 0.2.0)
+ jekyll-theme-leap-day (= 0.2.0)
+ jekyll-theme-merlot (= 0.2.0)
+ jekyll-theme-midnight (= 0.2.0)
+ jekyll-theme-minimal (= 0.2.0)
+ jekyll-theme-modernist (= 0.2.0)
+ jekyll-theme-primer (= 0.6.0)
+ jekyll-theme-slate (= 0.2.0)
+ jekyll-theme-tactile (= 0.2.0)
+ jekyll-theme-time-machine (= 0.2.0)
+ jekyll-titles-from-headings (= 0.5.3)
+ jemoji (= 0.13.0)
+ kramdown (= 2.4.0)
+ kramdown-parser-gfm (= 1.1.0)
+ liquid (= 4.0.4)
+ mercenary (~> 0.3)
+ minima (= 2.5.1)
+ nokogiri (>= 1.16.2, < 2.0)
+ rouge (= 3.30.0)
+ terminal-table (~> 1.4)
+ webrick (~> 1.8)
+ github-pages-health-check (1.18.2)
+ addressable (~> 2.3)
+ dnsruby (~> 1.60)
+ octokit (>= 4, < 8)
+ public_suffix (>= 3.0, < 6.0)
+ typhoeus (~> 1.3)
+ html-pipeline (2.14.3)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ http_parser.rb (0.8.0)
+ i18n (1.14.6)
+ concurrent-ruby (~> 1.0)
+ jekyll (3.10.0)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ csv (~> 3.0)
+ em-websocket (~> 0.5)
+ i18n (>= 0.7, < 2)
+ jekyll-sass-converter (~> 1.0)
+ jekyll-watch (~> 2.0)
+ kramdown (>= 1.17, < 3)
+ liquid (~> 4.0)
+ mercenary (~> 0.3.3)
+ pathutil (~> 0.9)
+ rouge (>= 1.7, < 4)
+ safe_yaml (~> 1.0)
+ webrick (>= 1.0)
+ jekyll-avatar (0.8.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-coffeescript (1.2.2)
+ coffee-script (~> 2.2)
+ coffee-script-source (~> 1.12)
+ jekyll-commonmark (1.4.0)
+ commonmarker (~> 0.22)
+ jekyll-commonmark-ghpages (0.5.1)
+ commonmarker (>= 0.23.7, < 1.1.0)
+ jekyll (>= 3.9, < 4.0)
+ jekyll-commonmark (~> 1.4.0)
+ rouge (>= 2.0, < 5.0)
+ jekyll-default-layout (0.1.5)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-feed (0.17.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-gist (1.5.0)
+ octokit (~> 4.2)
+ jekyll-github-metadata (2.16.1)
+ jekyll (>= 3.4, < 5.0)
+ octokit (>= 4, < 7, != 4.4.0)
+ jekyll-include-cache (0.2.1)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-mentions (1.6.0)
+ html-pipeline (~> 2.3)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-optional-front-matter (0.3.2)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-paginate (1.1.0)
+ jekyll-readme-index (0.3.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-redirect-from (0.16.0)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-relative-links (0.6.1)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-remote-theme (0.4.3)
+ addressable (~> 2.0)
+ jekyll (>= 3.5, < 5.0)
+ jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
+ rubyzip (>= 1.3.0, < 3.0)
+ jekyll-sass-converter (1.5.2)
+ sass (~> 3.4)
+ jekyll-seo-tag (2.8.0)
+ jekyll (>= 3.8, < 5.0)
+ jekyll-sitemap (1.4.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-swiss (1.0.0)
+ jekyll-theme-architect (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-cayman (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-dinky (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-hacker (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-leap-day (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-merlot (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-midnight (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-minimal (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-modernist (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-primer (0.6.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-github-metadata (~> 2.9)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-slate (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-tactile (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-time-machine (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-titles-from-headings (0.5.3)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ jemoji (0.13.0)
+ gemoji (>= 3, < 5)
+ html-pipeline (~> 2.2)
+ jekyll (>= 3.0, < 5.0)
+ json (2.9.1)
+ kramdown (2.4.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.4)
+ listen (3.9.0)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ logger (1.6.4)
+ mercenary (0.3.6)
+ minima (2.5.1)
+ jekyll (>= 3.5, < 5.0)
+ jekyll-feed (~> 0.9)
+ jekyll-seo-tag (~> 2.1)
+ minitest (5.25.4)
+ net-http (0.6.0)
+ uri
+ nokogiri (1.18.1-aarch64-linux-gnu)
+ racc (~> 1.4)
+ nokogiri (1.18.1-aarch64-linux-musl)
+ racc (~> 1.4)
+ nokogiri (1.18.1-arm-linux-gnu)
+ racc (~> 1.4)
+ nokogiri (1.18.1-arm-linux-musl)
+ racc (~> 1.4)
+ nokogiri (1.18.1-arm64-darwin)
+ racc (~> 1.4)
+ nokogiri (1.18.1-x86_64-darwin)
+ racc (~> 1.4)
+ nokogiri (1.18.1-x86_64-linux-gnu)
+ racc (~> 1.4)
+ nokogiri (1.18.1-x86_64-linux-musl)
+ racc (~> 1.4)
+ octokit (4.25.1)
+ faraday (>= 1, < 3)
+ sawyer (~> 0.9)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ public_suffix (5.1.1)
+ racc (1.8.1)
+ rb-fsevent (0.11.2)
+ rb-inotify (0.11.1)
+ ffi (~> 1.0)
+ rexml (3.4.0)
+ rouge (3.30.0)
+ rubyzip (2.4)
+ safe_yaml (1.0.5)
+ sass (3.7.4)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ sawyer (0.9.2)
+ addressable (>= 2.3.5)
+ faraday (>= 0.17.3, < 3)
+ securerandom (0.4.1)
+ simpleidn (0.2.3)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ typhoeus (1.4.1)
+ ethon (>= 0.9.0)
+ tzinfo (2.0.6)
+ concurrent-ruby (~> 1.0)
+ unicode-display_width (1.8.0)
+ uri (1.0.2)
+ webrick (1.9.1)
+
+PLATFORMS
+ aarch64-linux-gnu
+ aarch64-linux-musl
+ arm-linux-gnu
+ arm-linux-musl
+ arm64-darwin
+ x86_64-darwin
+ x86_64-linux-gnu
+ x86_64-linux-musl
+
+DEPENDENCIES
+ github-pages
+ jekyll
+
+BUNDLED WITH
+ 2.5.16
diff --git a/README.md b/README.md
index 3112ad1..dde7f54 100644
--- a/README.md
+++ b/README.md
@@ -13,44 +13,34 @@
- Be my sponsor and your logo will be here and prompts.chat!
+ Be my sponsor and your logo will be here!
World's First & Most Famous Prompts Directory
+ +