Add ready-to-use configuration files with (?) placeholders#3
Add ready-to-use configuration files with (?) placeholders#3AceCastro28 wants to merge 1 commit intoaffaan-m:mainfrom
Conversation
Created user-friendly configuration files that only require replacing (?) markers with actual credentials/paths: - mcp-servers-ready-to-use.json: 4 placeholders for API keys and paths - hooks-ready-to-use.json: 1 optional placeholder for editor choice - INSTALLATION-GUIDE.md: Comprehensive step-by-step setup instructions - QUICK-SETUP.md: Quick reference for finding and replacing placeholders All sensitive data uses (?) placeholders to make it obvious where users need to input their own information while keeping all other configuration ready to use.
📝 WalkthroughWalkthroughFour new files introduce ready-to-use setup templates and guides for Claude Code integration: comprehensive installation documentation, quick setup instructions with find-and-replace workflow, hook pipeline configurations for pre/post-tool-use actions, and MCP server definitions with placeholder values. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Fix all issues with AI agents
In `@hooks/hooks-ready-to-use.json`:
- Around line 26-33: The hook script currently consumes Git's stdin and leaves a
raw "(?)" token that will error; change the command hook so it captures stdin
into a variable (e.g. input="$(cat)") at the start, use a safe no-op placeholder
instead of "(?)" (for example ":" or a commented example editor line), and
before prompting/reading restore the captured stdin back to stdout with echo
"$input" so Git receives the original hook input and the push can proceed;
update the existing "command" block (the bash script in the hook entry) to
implement input="$(cat)", replace "(?)" with a no-op or commented editor
examples, and echo "$input" just before the prompt/read.
- Around line 112-116: Update the "_requirements" entry to list jq as a required
dependency so hooks that call jq (e.g., uses like jq -r '.tool_input.command')
will work; add a sentence similar to the existing entries indicating how to
install jq (for example: install via package manager or provide link), and
ensure the new requirement mirrors the style of the other items in the
"_requirements" object so the file remains "ready to use."
In `@INSTALLATION-GUIDE.md`:
- Around line 35-38: Replace all realistic-looking example API tokens (e.g., the
string "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_abc123XYZ456def789") with clearly
fake placeholders that cannot match secret patterns (for example use
"<GITHUB_PAT_PLACEHOLDER>" or "ghp_FAKE_TOKEN_EXAMPLE"). Update every occurrence
referenced in the comment (the current examples at the shown diff and the other
instances) so sample values are non-secret, do not conform to real token
formats, and are clearly marked as placeholders.
In `@QUICK-SETUP.md`:
- Around line 59-70: The fenced code blocks in QUICK-SETUP.md (the checklist
block and the other example blocks around lines referenced) are missing a
language specifier and trigger MD040; update each triple-backtick fence to
include a language (e.g., add `text` after the opening ``` for the checklist,
the "Can you check my GitHub repositories?" block, the "Edit any .ts file"
block, and the other blocks at the same sections noted) so all fenced blocks
include a language identifier.
- Around line 16-29: The markdown contains bare URLs (e.g., the lines "Get from:
https://github.com/settings/tokens", "Get from: https://firecrawl.dev", and "Get
from: https://supabase.com/dashboard → Settings → General") which violate MD034;
update these occurrences by wrapping each URL in angle brackets (e.g.,
<https://...>) or converting them to explicit markdown links with descriptive
text, ensuring you change every matching "Get from:" line (also apply same
change to the other occurrences mentioned around lines 286–290).
🧹 Nitpick comments (1)
mcp-configs/mcp-servers-ready-to-use.json (1)
19-23: Pin MCP server package versions instead of@latest.Lines 21 and 76 use
@latest, which can change behavior without warning. For a ready-to-use template, pin tested versions:@supabase/mcp-server-supabase@0.5.2and@magicuidesign/mcp@1.0.6(current stable releases).♻️ Suggested change
- "args": ["-y", "@supabase/mcp-server-supabase@latest", "--project-ref=(?)"], + "args": ["-y", "@supabase/mcp-server-supabase@0.5.2", "--project-ref=(?)"], ... - "args": ["-y", "@magicuidesign/mcp@latest"], + "args": ["-y", "@magicuidesign/mcp@1.0.6"],Also applies to: 74-77
| "matcher": "tool == \"Bash\" && tool_input.command matches \"git push\"", | ||
| "hooks": [ | ||
| { | ||
| "type": "command", | ||
| "command": "#!/bin/bash\n# Open editor for review before pushing\necho '[Hook] Review changes before push...' >&2\n# OPTIONAL: Uncomment your preferred editor below (replace the (?) line with one of these):\n# zed . 2>/dev/null\n# code . 2>/dev/null\n# cursor . 2>/dev/null\n# vim .\n# nano .\n(?)\necho '[Hook] Press Enter to continue with push or Ctrl+C to abort...' >&2\nread -r" | ||
| } | ||
| ], | ||
| "description": "Pause before git push to review changes | OPTIONAL: Replace (?) with your editor command (or delete the (?) line to skip auto-opening editor)" |
There was a problem hiding this comment.
Git push hook won’t resume the command and the (?) line will error.
Line 30 never echoes the original hook input back to stdout, so git push won’t proceed after the prompt. Also, the raw (?) line executes as a command if left unchanged, which breaks the “optional” replacement flow.
🐛 Proposed fix
- "command": "#!/bin/bash\n# Open editor for review before pushing\necho '[Hook] Review changes before push...' >&2\n# OPTIONAL: Uncomment your preferred editor below (replace the (?) line with one of these):\n# zed . 2>/dev/null\n# code . 2>/dev/null\n# cursor . 2>/dev/null\n# vim .\n# nano .\n(?)\necho '[Hook] Press Enter to continue with push or Ctrl+C to abort...' >&2\nread -r"
+ "command": "#!/bin/bash\ninput=$(cat)\n# Open editor for review before pushing\necho '[Hook] Review changes before push...' >&2\n# OPTIONAL: Uncomment your preferred editor below (replace the (?) line with one of these):\n# zed . 2>/dev/null\n# code . 2>/dev/null\n# cursor . 2>/dev/null\n# vim .\n# nano .\n# (?)\necho '[Hook] Press Enter to continue with push or Ctrl+C to abort...' >&2\nread -r < /dev/tty || true\n\necho \"$input\""🤖 Prompt for AI Agents
In `@hooks/hooks-ready-to-use.json` around lines 26 - 33, The hook script
currently consumes Git's stdin and leaves a raw "(?)" token that will error;
change the command hook so it captures stdin into a variable (e.g.
input="$(cat)") at the start, use a safe no-op placeholder instead of "(?)" (for
example ":" or a commented example editor line), and before prompting/reading
restore the captured stdin back to stdout with echo "$input" so Git receives the
original hook input and the push can proceed; update the existing "command"
block (the bash script in the hook entry) to implement input="$(cat)", replace
"(?)" with a no-op or commented editor examples, and echo "$input" just before
the prompt/read.
| "_requirements": { | ||
| "prettier": "Install globally: npm install -g prettier (for auto-formatting hook)", | ||
| "typescript": "Install in your project: npm install --save-dev typescript (for TypeScript check hook)", | ||
| "tmux": "Optional but recommended for dev server management", | ||
| "gh_cli": "Optional for PR creation hooks: https://cli.github.com/" |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, let's explore the repository structure
find . -type f -name "*.json" | head -20Repository: affaan-m/everything-claude-code
Length of output: 240
🏁 Script executed:
# List files in the hooks directory
ls -la hooks/ 2>/dev/null || echo "hooks directory not found"Repository: affaan-m/everything-claude-code
Length of output: 323
🏁 Script executed:
# Search for jq usage in the repository
rg 'jq' --type-list | head -5
rg 'jq' -t json -t sh -t bashRepository: affaan-m/everything-claude-code
Length of output: 493
🏁 Script executed:
# Search for jq in the hooks files
rg 'jq' hooks/Repository: affaan-m/everything-claude-code
Length of output: 6724
🏁 Script executed:
# Read the hooks-ready-to-use.json file to see the _requirements section
cat hooks/hooks-ready-to-use.json | head -150Repository: affaan-m/everything-claude-code
Length of output: 9264
Add jq to the _requirements section.
All six hooks in this file use jq to parse JSON input (e.g., jq -r '.tool_input.command'). Without it, these hooks will fail. The file claims to be "ready to use," but omits this critical dependency.
Proposed update
"_requirements": {
"prettier": "Install globally: npm install -g prettier (for auto-formatting hook)",
"typescript": "Install in your project: npm install --save-dev typescript (for TypeScript check hook)",
+ "jq": "Required to parse hook input JSON (e.g., brew install jq / apt-get install jq)",
"tmux": "Optional but recommended for dev server management",
"gh_cli": "Optional for PR creation hooks: https://cli.github.com/"
},🤖 Prompt for AI Agents
In `@hooks/hooks-ready-to-use.json` around lines 112 - 116, Update the
"_requirements" entry to list jq as a required dependency so hooks that call jq
(e.g., uses like jq -r '.tool_input.command') will work; add a sentence similar
to the existing entries indicating how to install jq (for example: install via
package manager or provide link), and ensure the new requirement mirrors the
style of the other items in the "_requirements" object so the file remains
"ready to use."
| **Example:** | ||
| ```json | ||
| "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_abc123XYZ456def789" | ||
| ``` |
There was a problem hiding this comment.
Replace example API tokens with clearly fake placeholders.
Gitleaks flags the sample tokens at Lines 37, 55, and 354. These can break CI or trigger security alerts. Use placeholders that don’t match secret patterns.
🔒 Proposed fix
-"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_abc123XYZ456def789"
+"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_TOKEN_HERE"
...
-"FIRECRAWL_API_KEY": "fc_abc123XYZ456"
+"FIRECRAWL_API_KEY": "YOUR_FIRECRAWL_KEY_HERE"
...
-"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_abc123XYZ" // DON'T COMMIT THIS!
+"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_TOKEN_HERE" // DON'T COMMIT THIS!Also applies to: 53-56, 352-355
🧰 Tools
🪛 Gitleaks (8.30.0)
[high] 37-37: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.
(generic-api-key)
🤖 Prompt for AI Agents
In `@INSTALLATION-GUIDE.md` around lines 35 - 38, Replace all realistic-looking
example API tokens (e.g., the string "GITHUB_PERSONAL_ACCESS_TOKEN":
"ghp_abc123XYZ456def789") with clearly fake placeholders that cannot match
secret patterns (for example use "<GITHUB_PAT_PLACEHOLDER>" or
"ghp_FAKE_TOKEN_EXAMPLE"). Update every occurrence referenced in the comment
(the current examples at the shown diff and the other instances) so sample
values are non-secret, do not conform to real token formats, and are clearly
marked as placeholders.
| Get from: https://github.com/settings/tokens | ||
|
|
||
| ✅ REPLACEMENT #2 - Firecrawl Key | ||
| "FIRECRAWL_API_KEY": "(?)", | ||
| ↑↑↑ | ||
| Replace with: fc_YourActualKeyHere | ||
| Get from: https://firecrawl.dev | ||
|
|
||
| ✅ REPLACEMENT #3 - Supabase Project ID | ||
| "--project-ref=(?)" | ||
| ↑↑↑ | ||
| Replace with: --project-ref=abcdefghijklmnop | ||
| Get from: https://supabase.com/dashboard → Settings → General | ||
|
|
There was a problem hiding this comment.
Wrap bare URLs to satisfy MD034.
Markdownlint flags the bare URLs in these sections. Please wrap them in angle brackets or use Markdown links.
🔧 Proposed fix
- Get from: https://github.com/settings/tokens
+ Get from: <https://github.com/settings/tokens>
...
- Get from: https://firecrawl.dev
+ Get from: <https://firecrawl.dev>
...
-Get from: https://supabase.com/dashboard → Settings → General
+Get from: <https://supabase.com/dashboard> → Settings → General
...
-- Original Repo: https://github.com/AffanMustafa/everything-claude-code
+- Original Repo: <https://github.com/AffanMustafa/everything-claude-code>Also applies to: 286-290
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
29-29: Bare URL used
(MD034, no-bare-urls)
🤖 Prompt for AI Agents
In `@QUICK-SETUP.md` around lines 16 - 29, The markdown contains bare URLs (e.g.,
the lines "Get from: https://github.com/settings/tokens", "Get from:
https://firecrawl.dev", and "Get from: https://supabase.com/dashboard → Settings
→ General") which violate MD034; update these occurrences by wrapping each URL
in angle brackets (e.g., <https://...>) or converting them to explicit markdown
links with descriptive text, ensuring you change every matching "Get from:" line
(also apply same change to the other occurrences mentioned around lines
286–290).
| ``` | ||
| [ ] 1. Replace (?) with GitHub token | ||
| [ ] 2. Replace (?) with Firecrawl key (or delete this MCP server) | ||
| [ ] 3. Replace (?) with Supabase project ID (or delete this MCP server) | ||
| [ ] 4. Replace (?) with your projects directory path | ||
| [ ] 5. Replace or delete (?) in git push hook | ||
| [ ] 6. Copy mcpServers object to ~/.claude/settings.json | ||
| [ ] 7. Copy hooks object to ~/.claude/settings.json | ||
| [ ] 8. Save ~/.claude/settings.json | ||
| [ ] 9. Restart Claude Code | ||
| [ ] 10. Test: Ask Claude "Can you check my GitHub repos?" | ||
| ``` |
There was a problem hiding this comment.
Add a language to fenced blocks (MD040).
These fenced blocks are missing a language specifier. Add text (or another appropriate language) to satisfy MD040.
🔧 Proposed fix
-```
+```text
[ ] 1. Replace (?) with GitHub token
[ ] 2. Replace (?) with Firecrawl key (or delete this MCP server)
[ ] 3. Replace (?) with Supabase project ID (or delete this MCP server)
[ ] 4. Replace (?) with your projects directory path
[ ] 5. Replace or delete (?) in git push hook
[ ] 6. Copy mcpServers object to ~/.claude/settings.json
[ ] 7. Copy hooks object to ~/.claude/settings.json
[ ] 8. Save ~/.claude/settings.json
[ ] 9. Restart Claude Code
[ ] 10. Test: Ask Claude "Can you check my GitHub repos?"...
- +text
Can you check my GitHub repositories?
...
-```
+```text
Edit any .ts file
</details>
Also applies to: 249-252, 258-261
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.18.1)</summary>
68-68: Bare URL used
(MD034, no-bare-urls)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
In @QUICK-SETUP.md around lines 59 - 70, The fenced code blocks in
QUICK-SETUP.md (the checklist block and the other example blocks around lines
referenced) are missing a language specifier and trigger MD040; update each
triple-backtick fence to include a language (e.g., add text after the opening
"Edit any .ts file" block, and the other blocks at the same sections noted) so
all fenced blocks include a language identifier.
675db95 feat: unify commands and skills (v1.2.0) ca584e2 fix: escape pipe in markdown table for markdownlint a44a055 fix: resolve ESLint errors and update tests for project-name fallback c9ef02b docs: add requirements section and hooks field warning 0c53ad8 Revert "docs: update shorthand to shortform terminology" c3430bd docs: add Traditional Chinese translation fbe2e56 docs: add simplified Chinese README 7c0bc25 feat: add comprehensive CI/CD pipeline 58a97c8 docs: update shorthand to shortform terminology 04ee208 docs: add plugin manifest validation notes e3a1306 fix: remove duplicate hooks declaration from plugin.json 81003b1 feat: use project name as session filename fallback 8996303 fix: prevent command injection in Prettier hook (affaan-m#102) 8894e1b docs: update README with skill-create and instinct commands 9bc587a feat: add skill-create and continuous-learning-v2 commands 0ced59a Merge pull request affaan-m#91 from Hor1zonZzz/fix/readme-rules-limitation 2563d1e Merge pull request affaan-m#92 from jhsong-musinsa/fix/plugin-manifest-validation 5dc1edb Merge pull request affaan-m#93 from pangerlkr/patch-3 2aac2d9 Create PLUGIN_SCHEMA_NOTES.md cdf987d fix: use explicit file paths for agents in plugin.json 384b255 docs: add note about rules limitation in plugin installation accbb47 feat: add proper header banner to shortform guide ff67b03 feat: add images and rename guides to the-shortform-guide.md and the-longform-guide.md 7fc5ef1 Merge pull request affaan-m#83 from msyahidin/claude/add-golang-support-frw0Z 779085e fix: add missing agents and hooks declarations to plugin.json 5e1835a Merge pull request affaan-m#81 from pangerlkr/patch-2 2abefe6 Merge pull request affaan-m#79 from pangerlkr/patch-1 4bca615 Merge pull request affaan-m#80 from lichengzhe/fix/stop-hook-shell-error a1f47f1 Merge pull request affaan-m#85 from roeiba/add-license-file 01ad21b docs: add missing MIT LICENSE file c6c32cd fix: add language labels to fenced code blocks for MD040 compliance 75e1e46 feat: add comprehensive Golang language support 2feac5a docs: add The Longform Guide to Everything Claude Code a0b84f7 Fix: Move Stop hook inline code to separate script file 1564213 docs: add The Shorthand Guide to Everything Claude Code 56ff5d4 fix: use correct unscoped agent-browser package name (affaan-m#77) 5c63fa9 feat: v1.1.0 release - session ID tracking, async hooks, new skills 5670fcd Fix plugin manifest validation errors (affaan-m#75) 1c9fa0b Add hooks.md to documentation index (affaan-m#40) 2bfd2fb feat: add cloud infrastructure security skill (affaan-m#44) fae9716 feat(agents): add database-reviewer agent with Supabase patterns (affaan-m#48) a2087a8 fix: remove unnecessary .sh hooks (affaan-m#41) b9b7831 fix: multiple community-reported issues 660e0d3 fix: security and documentation fixes a7bc5f2 revert: remove hooks declaration - auto-loaded by convention 22ad036 fix: add hooks declaration to plugin.json for proper hook loading 5230892 fix: remove version fields from marketplace.json 970f8bf feat: cross-platform support with Node.js scripts 4ec7a6b fix: remove version field to enable automatic plugin updates 0d438dd style: side-by-side guide layout matching profile README 7f4f622 feat: add star history chart and minimal badge bar c3f1594 fix: move session-end hooks from Stop to SessionEnd 19345df fix: remove duplicate hooks field from plugin.json 73bda1a fix: use ${CLAUDE_PLUGIN_ROOT} for hook script paths ecfbbd3 fix: use relative path './' for plugin source instead of GitHub object ee5affb fix: remove agents field temporarily to debug validation d362ae6 fix: use string format for repository field in plugin.json 9e8006c fix: use GitHub source object in marketplace.json 5010f82 feat: package as Claude Code plugin with marketplace distribution 4491f15 Clarify README description of the repository e6440d3 docs: restructure README to flow shorthand → longform guides together fa0928a Enhance README with update section and resources 2d6fd70 feat: add strategic-compact hook and update hooks.json with all hooks f96ef1e feat: add memory persistence hooks and context files 7d3ea0f feat: add strategic compact skill 6bf102d feat: add continuous learning skill with session examples 3c1e7d9 Clarify repository purpose and additional resources 62a80df Update README with image and guide link 6eefb41 Update README with guide reading reminder d7cf890 Fix formatting in README.md for guide link e57979c Update README with image and guide link 45959c3 Initial release: Complete Claude Code configuration collection REVERT: 69c0b1a Add link to Agent Skills specification website (affaan-m#160) REVERT: be229a5 Fix links in agent skills specification (affaan-m#159) REVERT: f232228 Split agent-skills-spec into separate authoring and client integration guides (affaan-m#148) REVERT: 0075614 Add doc-coauthoring skill and update example skills (affaan-m#134) REVERT: ef74077 Move example skills into dedicated folder and create minimal top-level folder structure (affaan-m#129) REVERT: 0f77e50 Update example skills and rename 'artifacts-builder' (affaan-m#112) REVERT: e5c6015 Add 'frontend-design' example skill (affaan-m#98) REVERT: c74d647 Clarify Claude Code installation in README.md (#20) REVERT: 0877bae Updates to README.md (affaan-m#9) REVERT: b118d29 Add Claude Claude instructions to the readme (#8) REVERT: 4d1e3f3 Add Claude Code Marketplace (affaan-m#5) REVERT: 9b61003 Small tweak to blog link (#7) REVERT: 10e0fbe Add initial Agent Skills Spec (#2) REVERT: ec84104 Add 3rd Party notices (affaan-m#4) REVERT: 67ada86 Adding more details to README (affaan-m#3) REVERT: 83291af Reorganize the example skills (affaan-m#1) REVERT: 37292f3 init repo git-subtree-dir: upstream/anthropics-skills git-subtree-split: 675db95
…again Fix markdownlint errors: MD038, MD058, MD025, MD034
Address 8 PR review issues from cubic-dev-ai and coderabbitai: - Separate require()/run() try/catch in run-with-flags to prevent double-execution on run() errors (affaan-m#1) - Resolve filePath to absolute in quality-gate (#2) - Detect prettier key in package.json (affaan-m#3) - Use `output != null` instead of truthy check (affaan-m#4) - Add gofmt strict mode logging (affaan-m#5) - Return null for unknown formatter in resolveFormatterBin (#6) - Track and cleanup temp dirs in tests (#7) - Add JSDoc to exported functions (#8)
Address 8 PR review issues from cubic-dev-ai and coderabbitai: - Separate require()/run() try/catch in run-with-flags to prevent double-execution on run() errors (affaan-m#1) - Resolve filePath to absolute in quality-gate (#2) - Detect prettier key in package.json (affaan-m#3) - Use `output != null` instead of truthy check (affaan-m#4) - Add gofmt strict mode logging (affaan-m#5) - Return null for unknown formatter in resolveFormatterBin (#6) - Track and cleanup temp dirs in tests (#7) - Add JSDoc to exported functions (#8)
Created user-friendly configuration files that only require replacing (?) markers with actual credentials/paths:
All sensitive data uses (?) placeholders to make it obvious where users need to input their own information while keeping all other configuration ready to use.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.