cc-codeconductor 0.4.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +2642 -226
  3. package/package.json +1 -1
  4. package/presets/agy/skills/evaluation/SKILL.md +6 -0
  5. package/presets/agy/skills/openspec/SKILL.md +32 -0
  6. package/presets/agy/workflows/cc-openspec.md +62 -0
  7. package/presets/agy/workflows/cc-scorecard.md +17 -0
  8. package/presets/claude/commands/cc/openspec.md +144 -0
  9. package/presets/claude/commands/cc/review.md +13 -2
  10. package/presets/claude/commands/cc/scorecard.md +65 -0
  11. package/presets/claude/skills/evaluation/SKILL.md +42 -0
  12. package/presets/claude/skills/openspec/SKILL.md +54 -0
  13. package/presets/codex/AGENTS.md +57 -0
  14. package/presets/cursor/.cursorignore +15 -0
  15. package/presets/cursor/AGENTS.md +504 -0
  16. package/presets/cursor/agents/architect.md +211 -0
  17. package/presets/cursor/agents/complexity-auditor.md +76 -0
  18. package/presets/cursor/agents/contract-builder.md +75 -0
  19. package/presets/cursor/agents/docs.md +180 -0
  20. package/presets/cursor/agents/goal-planner.md +71 -0
  21. package/presets/cursor/agents/implementer.md +161 -0
  22. package/presets/cursor/agents/orchestrator.md +377 -0
  23. package/presets/cursor/agents/repo-explorer.md +100 -0
  24. package/presets/cursor/agents/reviewer.md +237 -0
  25. package/presets/cursor/agents/security-reviewer.md +113 -0
  26. package/presets/cursor/agents/task-coach.md +145 -0
  27. package/presets/cursor/agents/tester.md +241 -0
  28. package/presets/cursor/commands/cc/api-contract.md +58 -0
  29. package/presets/cursor/commands/cc/db-migration.md +58 -0
  30. package/presets/cursor/commands/cc/feature.md +115 -0
  31. package/presets/cursor/commands/cc/fix.md +121 -0
  32. package/presets/cursor/commands/cc/openspec.md +144 -0
  33. package/presets/cursor/commands/cc/pagespeed.md +103 -0
  34. package/presets/cursor/commands/cc/refactor.md +148 -0
  35. package/presets/cursor/commands/cc/review.md +137 -0
  36. package/presets/cursor/commands/cc/scorecard.md +65 -0
  37. package/presets/cursor/commands/cc/tdd-cycle.md +226 -0
  38. package/presets/cursor/commands/cc/test-plan.md +138 -0
  39. package/presets/cursor/rules/behavioral-discipline.mdc +14 -0
  40. package/presets/cursor/rules/context-budget.mdc +12 -0
  41. package/presets/cursor/rules/orchestration.mdc +12 -0
  42. package/presets/cursor/rules/yagni-stdlib.mdc +11 -0
  43. package/presets/cursor/skills/android/SKILL.md +122 -0
  44. package/presets/cursor/skills/api-versioning/SKILL.md +394 -0
  45. package/presets/cursor/skills/astro/SKILL.md +322 -0
  46. package/presets/cursor/skills/auth-token-inspector/SKILL.md +33 -0
  47. package/presets/cursor/skills/code-review/SKILL.md +208 -0
  48. package/presets/cursor/skills/conductor-setup/SKILL.md +127 -0
  49. package/presets/cursor/skills/django-orm/SKILL.md +463 -0
  50. package/presets/cursor/skills/django-testing/SKILL.md +417 -0
  51. package/presets/cursor/skills/django-uv/SKILL.md +409 -0
  52. package/presets/cursor/skills/drizzle-schema-architect/SKILL.md +54 -0
  53. package/presets/cursor/skills/evaluation/SKILL.md +8 -0
  54. package/presets/cursor/skills/fastapi-pydantic-strict/SKILL.md +46 -0
  55. package/presets/cursor/skills/find-skills/SKILL.md +144 -0
  56. package/presets/cursor/skills/jpa-nplusone-detector/SKILL.md +49 -0
  57. package/presets/cursor/skills/jpa-postgres/SKILL.md +626 -0
  58. package/presets/cursor/skills/laravel-specialist/SKILL.md +267 -0
  59. package/presets/cursor/skills/laravel-specialist/references/eloquent.md +351 -0
  60. package/presets/cursor/skills/laravel-specialist/references/livewire.md +512 -0
  61. package/presets/cursor/skills/laravel-specialist/references/queues.md +423 -0
  62. package/presets/cursor/skills/laravel-specialist/references/routing.md +362 -0
  63. package/presets/cursor/skills/laravel-specialist/references/testing.md +522 -0
  64. package/presets/cursor/skills/livewire-alpine-bridge/SKILL.md +39 -0
  65. package/presets/cursor/skills/multi-agent-orchestration/README.md +144 -0
  66. package/presets/cursor/skills/multi-agent-orchestration/SKILL.md +579 -0
  67. package/presets/cursor/skills/multi-agent-orchestration/examples/framework_implementations.py +362 -0
  68. package/presets/cursor/skills/multi-agent-orchestration/examples/orchestration_patterns.py +411 -0
  69. package/presets/cursor/skills/multi-agent-orchestration/scripts/agent_communication.py +334 -0
  70. package/presets/cursor/skills/multi-agent-orchestration/scripts/benchmarking.py +341 -0
  71. package/presets/cursor/skills/multi-agent-orchestration/scripts/workflow_management.py +334 -0
  72. package/presets/cursor/skills/nextjs-typescript/SKILL.md +394 -0
  73. package/presets/cursor/skills/openspec/SKILL.md +52 -0
  74. package/presets/cursor/skills/pagespeed-insights/SKILL.md +445 -0
  75. package/presets/cursor/skills/pagespeed-insights/reference.md +50 -0
  76. package/presets/cursor/skills/pagespeed-perf/SKILL.md +281 -0
  77. package/presets/cursor/skills/php-pro/SKILL.md +210 -0
  78. package/presets/cursor/skills/php-pro/references/async-patterns.md +412 -0
  79. package/presets/cursor/skills/php-pro/references/laravel-patterns.md +377 -0
  80. package/presets/cursor/skills/php-pro/references/modern-php-features.md +323 -0
  81. package/presets/cursor/skills/php-pro/references/symfony-patterns.md +466 -0
  82. package/presets/cursor/skills/php-pro/references/testing-quality.md +466 -0
  83. package/presets/cursor/skills/python/SKILL.md +613 -0
  84. package/presets/cursor/skills/python-django-stack/SKILL.md +500 -0
  85. package/presets/cursor/skills/python-fastapi-stack/SKILL.md +464 -0
  86. package/presets/cursor/skills/security/SKILL.md +384 -0
  87. package/presets/cursor/skills/seo-analytics-injector/SKILL.md +44 -0
  88. package/presets/cursor/skills/spring-auth-auditor/SKILL.md +33 -0
  89. package/presets/cursor/skills/spring-boot-feature/SKILL.md +566 -0
  90. package/presets/cursor/skills/spring-boot-kotlin/SKILL.md +408 -0
  91. package/presets/cursor/skills/spring-boot-testing-strategy/SKILL.md +479 -0
  92. package/presets/cursor/skills/sqlalchemy/SKILL.md +473 -0
  93. package/presets/cursor/skills/tailwind-responsive-auditor/SKILL.md +32 -0
  94. package/presets/cursor/skills/tdd-mutation-tester/SKILL.md +28 -0
  95. package/presets/cursor/skills/testing-tdd/SKILL.md +592 -0
  96. package/presets/cursor/skills/workflow-orchestration-patterns/SKILL.md +98 -0
  97. package/presets/cursor/skills/workflow-orchestration-patterns/references/details.md +223 -0
  98. package/presets/opencode/agents/architect.md +1 -2
  99. package/presets/opencode/agents/complexity-auditor.md +1 -0
  100. package/presets/opencode/agents/contract-builder.md +93 -0
  101. package/presets/opencode/agents/docs.md +1 -2
  102. package/presets/opencode/agents/goal-planner.md +82 -0
  103. package/presets/opencode/agents/implementer.md +9 -2
  104. package/presets/opencode/agents/orchestrator.md +50 -12
  105. package/presets/opencode/agents/repo-explorer.md +0 -1
  106. package/presets/opencode/agents/reviewer.md +23 -2
  107. package/presets/opencode/agents/security-reviewer.md +129 -0
  108. package/presets/opencode/agents/task-coach.md +1 -2
  109. package/presets/opencode/agents/tester.md +1 -2
  110. package/presets/opencode/commands/cc-openspec.md +61 -0
  111. package/presets/opencode/commands/cc-scorecard.md +16 -0
  112. package/presets/opencode/prompts/v0.5.0/architect.md +222 -0
  113. package/presets/opencode/prompts/v0.5.0/complexity-auditor.md +91 -0
  114. package/presets/opencode/prompts/v0.5.0/contract-builder.md +84 -0
  115. package/presets/opencode/prompts/v0.5.0/docs.md +190 -0
  116. package/presets/opencode/prompts/v0.5.0/goal-planner.md +80 -0
  117. package/presets/opencode/prompts/v0.5.0/implementer.md +171 -0
  118. package/presets/opencode/prompts/v0.5.0/orchestrator.md +388 -0
  119. package/presets/opencode/prompts/v0.5.0/repo-explorer.md +111 -0
  120. package/presets/opencode/prompts/v0.5.0/reviewer.md +248 -0
  121. package/presets/opencode/prompts/v0.5.0/security-reviewer.md +123 -0
  122. package/presets/opencode/prompts/v0.5.0/task-coach.md +156 -0
  123. package/presets/opencode/prompts/v0.5.0/tester.md +252 -0
  124. package/presets/opencode/skills/evaluation/SKILL.md +6 -0
  125. package/presets/opencode/skills/openspec/SKILL.md +50 -0
  126. package/presets/templates/BACKLOG.md +33 -0
  127. package/presets/templates/execution-profile.yml +6 -0
  128. package/presets/templates/model-comparison.md +11 -0
  129. package/presets/templates/regression-checklist.yml +10 -0
  130. package/src/presets/manifests/agy.yml +2 -2
  131. package/src/presets/manifests/claude.yml +2 -2
  132. package/src/presets/manifests/codex.yml +2 -2
  133. package/src/presets/manifests/cursor.yml +19 -3
  134. package/src/presets/manifests/gemini.yml +2 -2
  135. package/src/presets/manifests/opencode.yml +2 -2
  136. package/src/presets/models/agy.yml +21 -0
  137. package/src/presets/models/claude.yml +18 -0
  138. package/src/presets/models/codex.yml +18 -0
  139. package/src/presets/models/cursor.yml +39 -9
  140. package/src/presets/models/gemini.yml +18 -0
  141. package/src/presets/models/opencode.yml +18 -0
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: auth-token-inspector
3
+ version: 1.0.0
4
+ name: Auth Token Inspector
5
+ description: >
6
+ Audits token storage mechanisms to prevent XSS-based JWT theft.
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: security
12
+ compatibility:
13
+ tools: [claude, codex, gemini, agy, opencode]
14
+ stacks:
15
+ languages: [typescript, javascript, python, kotlin, java, php]
16
+ paths:
17
+ - "**/*.{ts,tsx,py,kt,php}"
18
+ ---
19
+ # Auth Token Inspector
20
+
21
+ ## Core Principles
22
+
23
+ 1. **Secure Storage**: JWTs or session tokens must NOT be stored in `localStorage` or `sessionStorage` due to vulnerability to Cross-Site Scripting (XSS).
24
+ 2. **HttpOnly Cookies**: Deliver tokens via `HttpOnly`, `Secure`, and `SameSite=Strict` (or `Lax`) cookies to protect them from client-side JS access.
25
+ 3. **Short Expiration**: Ensure access tokens have short expiration times, and implement secure, rotation-enabled refresh tokens stored in cookies.
26
+
27
+ ## Storage Comparison
28
+
29
+ | Storage Mode | Vulnerable to XSS | Vulnerable to CSRF | Recommended |
30
+ | :--- | :--- | :--- | :--- |
31
+ | **localStorage** | Yes (High Risk) | No | **NO** |
32
+ | **sessionStorage** | Yes (High Risk) | No | **NO** |
33
+ | **HttpOnly Cookie** | No (Secure) | Yes (Mitigated via SameSite/Tokens) | **YES** |
@@ -0,0 +1,208 @@
1
+ ---
2
+ id: code-review
3
+ version: 1.0.0
4
+ name: Code Review
5
+ description: >
6
+ Provides a structured framework for conducting thorough code reviews covering correctness, security, architecture alignment, performance, and technical debt.
7
+
8
+ user-invokable: true
9
+ license: MIT
10
+ metadata:
11
+ author: lgzarturo
12
+ category: review
13
+
14
+ compatibility:
15
+ tools: [claude, codex, gemini, agy, opencode]
16
+ stacks:
17
+ languages: []
18
+ frameworks: []
19
+
20
+ risk:
21
+ level: low
22
+ can_execute_shell: false
23
+ can_modify_files: true
24
+ requires_network: false
25
+
26
+ inputs: []
27
+
28
+ outputs: []
29
+
30
+ quality:
31
+ reviewed_by: codeconductor-core
32
+ version: 0.1.0
33
+ ---
34
+
35
+
36
+
37
+ # Code Review
38
+
39
+ ## Review Axes
40
+
41
+ Every finding must reference exactly one axis. This prevents vague feedback and
42
+ makes it actionable.
43
+
44
+ | Axis | What to check |
45
+ |------|--------------|
46
+ | **Correctness** | Does the logic handle all cases in the acceptance criteria? |
47
+ | **Security** | Injection vectors, secret exposure, auth bypasses, insecure defaults |
48
+ | **Architecture** | Does the code follow existing patterns and module boundaries? |
49
+ | **Performance** | N+1 queries, unnecessary allocations, blocking I/O in hot paths |
50
+ | **Error handling** | Are failure cases handled explicitly and safely? |
51
+ | **Test coverage** | Do tests verify the acceptance criteria, not just happy paths? |
52
+ | **Scope** | Are there changes outside the stated task boundary? |
53
+ | **Technical debt** | Does the implementation introduce debt without acknowledging it? |
54
+
55
+ ## Finding Categories
56
+
57
+ ### CRITICAL — must be resolved before merge
58
+
59
+ - Logic failures that violate acceptance criteria
60
+ - Security vulnerabilities (injection, auth bypass, secret exposure)
61
+ - Data loss or corruption risk
62
+ - Breaking changes to public API or shared contracts
63
+ - Missing error handling that causes silent failures
64
+
65
+ ### WARNING — should be resolved before merge
66
+
67
+ - Missing edge case coverage in tests
68
+ - Scope creep (changes outside the task boundary)
69
+ - Pattern inconsistency that will confuse future maintainers
70
+ - Performance issue that will degrade under load
71
+ - Missing input validation at system boundaries
72
+
73
+ ### SUGGESTION — optional improvement
74
+
75
+ - Naming clarity improvements
76
+ - Extracting a reusable abstraction
77
+ - Test readability
78
+ - Documentation gaps on non-obvious behavior
79
+
80
+ ## Review Report Format
81
+
82
+ ```markdown
83
+ ## Review Report
84
+
85
+ **Task**: [objective from task card]
86
+ **Verdict**: [approved | approved with warnings | blocked]
87
+
88
+ ---
89
+
90
+ ### CRITICAL
91
+
92
+ - [ ] [C1] `path/to/file:line` — [description]
93
+ Axis: [axis] | Evidence: `[quoted code]` | Required action: [what must change]
94
+
95
+ _(none)_ if no critical findings
96
+
97
+ ### WARNING
98
+
99
+ - [ ] [W1] `path/to/file:line` — [description]
100
+ Axis: [axis] | Recommended action: [what should change]
101
+
102
+ _(none)_ if no warning findings
103
+
104
+ ### SUGGESTION
105
+
106
+ - [ ] [S1] — [description] | Rationale: [brief reason]
107
+
108
+ _(none)_ if no suggestions
109
+
110
+ ### Summary
111
+
112
+ - Critical: [count] | Warning: [count] | Suggestion: [count]
113
+ - **Verdict justification**: [one sentence]
114
+ ```
115
+
116
+ **Verdict rules:**
117
+
118
+ - `blocked` — any CRITICAL finding present
119
+ - `approved with warnings` — no CRITICAL, at least one WARNING
120
+ - `approved` — no CRITICAL, no WARNING
121
+
122
+ ## What to Check — by Axis
123
+
124
+ ### Correctness
125
+
126
+ - Does every acceptance criterion have a corresponding code path?
127
+ - Are null/empty/zero values handled explicitly?
128
+ - Are boundary conditions checked (off-by-one, empty collections, max values)?
129
+ - Do conditional branches cover all cases (exhaustive when/switch)?
130
+
131
+ ### Security
132
+
133
+ ```text
134
+ Injection: SQL, command, LDAP, XML — is input sanitized or parameterized?
135
+ Auth: is the endpoint protected? are role checks correct?
136
+ Secrets: no hardcoded credentials, tokens, or keys in source
137
+ Headers: are security headers set (CSP, HSTS, X-Frame-Options)?
138
+ CORS: is the origin whitelist explicit, not wildcard?
139
+ Dependencies: are new dependencies from trusted sources?
140
+ ```
141
+
142
+ ### Performance
143
+
144
+ ```text
145
+ N+1 queries: does a loop call the database per iteration?
146
+ Eager loading: are JOINs or includes used where needed?
147
+ Pagination: are all list endpoints paginated?
148
+ Caching: is expensive computation cached at an appropriate layer?
149
+ Index: do new query filters have corresponding DB indexes?
150
+ ```
151
+
152
+ ### Error Handling
153
+
154
+ ```text
155
+ Are exceptions caught at the right layer (not swallowed silently)?
156
+ Is the error response format consistent with the rest of the API?
157
+ Is the original exception logged before translating to a user-facing error?
158
+ Are transient failures retried with backoff, or propagated immediately?
159
+ ```
160
+
161
+ ## What NOT to Flag
162
+
163
+ **Personal style preferences.** If the code follows the project's established
164
+ conventions, do not flag it because you would have written it differently.
165
+
166
+ **Trivial naming.** Variable names are a SUGGESTION at most, never a WARNING.
167
+ Do not block a PR over naming unless the name is genuinely misleading.
168
+
169
+ **Tests for trivial code.** Do not demand tests for getters, setters, or data
170
+ class construction. Test behavior, not boilerplate.
171
+
172
+ **Refactors not in scope.** If you notice an improvement opportunity outside
173
+ the task boundary, log it as a SUGGESTION. Do not block the PR for work that
174
+ was not requested.
175
+
176
+ **Framework defaults.** Do not second-guess framework conventions (Spring
177
+ dependency injection, Next.js file-based routing). Trust the framework.
178
+
179
+ ## Exact Diff Recommendations
180
+
181
+ When a finding requires a code change, provide the exact replacement:
182
+
183
+ ```text
184
+ # Current code (path/to/file:42)
185
+ val user = userRepository.findById(id)
186
+ return user.name // NPE if not found
187
+
188
+ # Recommended fix
189
+ val user = userRepository.findById(id)
190
+ ?: throw NotFoundException("User $id not found")
191
+ return user.name
192
+ ```
193
+
194
+ Vague instructions ("handle the null case") force the author to guess your
195
+ intent. Exact diffs remove ambiguity and speed up the review cycle.
196
+
197
+ ## Prioritization Order
198
+
199
+ When multiple findings exist, address them in this order:
200
+
201
+ 1. Security — security issues can silently compromise users or data
202
+ 2. Correctness — broken behavior defeats the purpose of the change
203
+ 3. Error handling — silent failures are hard to debug in production
204
+ 4. Test coverage — gaps mean regressions will be invisible
205
+ 5. Performance — degrade gradually; fix before it causes incidents
206
+ 6. Architecture — inconsistency compounds over time
207
+ 7. Technical debt — acknowledge and track; do not always block for it
208
+ 8. Suggestions — apply at author's discretion
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: conductor-setup
3
+ description: Configure a Rails project to work with Conductor (parallel coding agents)
4
+ allowed-tools: Bash(chmod *), Bash(bundle *), Bash(npm *), Bash(script/server)
5
+ context: fork
6
+ risk: unknown
7
+ source: community
8
+ metadata:
9
+ author: Shpigford
10
+ version: "1.0"
11
+
12
+ disable-model-invocation: true
13
+ ---
14
+
15
+ Set up this Rails project for Conductor, the Mac app for parallel coding agents.
16
+
17
+ ## When to Use
18
+ - You need to configure a Rails project so it runs correctly inside Conductor workspaces.
19
+ - The project should support parallel coding agents with isolated ports, Redis settings, and shared secrets.
20
+ - You want the standard `conductor.json`, `bin/conductor-setup`, and `script/server` scaffolding for a Rails repo.
21
+
22
+ # What to Create
23
+
24
+ ## 1. conductor.json (project root)
25
+
26
+ Create `conductor.json` in the project root if it doesn't already exist:
27
+
28
+ ```json
29
+ {
30
+ "scripts": {
31
+ "setup": "bin/conductor-setup",
32
+ "run": "script/server"
33
+ }
34
+ }
35
+ ```
36
+
37
+ ## 2. bin/conductor-setup (executable)
38
+
39
+ Create `bin/conductor-setup` if it doesn't already exist:
40
+
41
+ ```bash
42
+ #!/bin/bash
43
+ set -e
44
+
45
+ # Symlink .env from repo root (where secrets live, outside worktrees)
46
+ [ -f "$CONDUCTOR_ROOT_PATH/.env" ] && ln -sf "$CONDUCTOR_ROOT_PATH/.env" .env
47
+
48
+ # Symlink Rails master key
49
+ [ -f "$CONDUCTOR_ROOT_PATH/config/master.key" ] && ln -sf "$CONDUCTOR_ROOT_PATH/config/master.key" config/master.key
50
+
51
+ # Install dependencies
52
+ bundle install
53
+ npm install
54
+ ```
55
+
56
+ Make it executable with `chmod +x bin/conductor-setup`.
57
+
58
+ ## 3. script/server (executable)
59
+
60
+ Create the `script` directory if needed, then create `script/server` if it doesn't already exist:
61
+
62
+ ```bash
63
+ #!/bin/bash
64
+
65
+ # === Port Configuration ===
66
+ export PORT=${CONDUCTOR_PORT:-3000}
67
+ export VITE_RUBY_PORT=$((PORT + 1000))
68
+
69
+ # === Redis Isolation ===
70
+ if [ -n "$CONDUCTOR_WORKSPACE_NAME" ]; then
71
+ HASH=$(printf '%s' "$CONDUCTOR_WORKSPACE_NAME" | cksum | cut -d' ' -f1)
72
+ REDIS_DB=$((HASH % 16))
73
+ export REDIS_URL="redis://localhost:6379/${REDIS_DB}"
74
+ fi
75
+
76
+ exec bin/dev
77
+ ```
78
+
79
+ Make it executable with `chmod +x script/server`.
80
+
81
+ ## 4. Update Rails Config Files
82
+
83
+ For each of the following files, if they exist and contain Redis configuration, update them to use `ENV.fetch('REDIS_URL', ...)` or `ENV['REDIS_URL']` with a fallback:
84
+
85
+ ### config/initializers/sidekiq.rb
86
+ If this file exists and configures Redis, update it to use:
87
+ ```ruby
88
+ redis_url = ENV.fetch('REDIS_URL', 'redis://localhost:6379/0')
89
+ ```
90
+
91
+ ### config/cable.yml
92
+ If this file exists, update the development adapter to use:
93
+ ```yaml
94
+ development:
95
+ adapter: redis
96
+ url: <%= ENV.fetch('REDIS_URL', 'redis://localhost:6379/1') %>
97
+ ```
98
+
99
+ ### config/environments/development.rb
100
+ If this file configures Redis for caching, update to use:
101
+ ```ruby
102
+ config.cache_store = :redis_cache_store, { url: ENV.fetch('REDIS_URL', 'redis://localhost:6379/0') }
103
+ ```
104
+
105
+ ### config/initializers/rack_attack.rb
106
+ If this file exists and configures a Redis cache store, update to use:
107
+ ```ruby
108
+ Rack::Attack.cache.store = ActiveSupport::Cache::RedisCacheStore.new(url: ENV.fetch('REDIS_URL', 'redis://localhost:6379/0'))
109
+ ```
110
+
111
+ # Implementation Notes
112
+
113
+ - **Don't overwrite existing files**: Check if conductor.json, bin/conductor-setup, and script/server exist before creating them. If they exist, skip creation and inform the user.
114
+ - **Rails config updates**: Only modify Redis-related configuration. If a file doesn't exist or doesn't use Redis, skip it gracefully.
115
+ - **Create directories as needed**: Create `script/` directory if it doesn't exist.
116
+
117
+ # Verification
118
+
119
+ After creating the files:
120
+ 1. Confirm all Conductor files exist and scripts are executable
121
+ 2. Run `script/server` to verify it starts without errors
122
+ 3. Check that Rails configs properly reference `ENV['REDIS_URL']` or `ENV.fetch('REDIS_URL', ...)`
123
+
124
+ ## Limitations
125
+ - Use this skill only when the task clearly matches the scope described above.
126
+ - Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
127
+ - Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.