cc-codeconductor 0.4.2 → 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 (172) hide show
  1. package/README.md +75 -4
  2. package/dist/index.js +2698 -230
  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-pipeline.md +69 -0
  8. package/presets/agy/workflows/cc-scorecard.md +17 -0
  9. package/presets/claude/commands/cc/openspec.md +144 -0
  10. package/presets/claude/commands/cc/review.md +13 -2
  11. package/presets/claude/commands/cc/scorecard.md +65 -0
  12. package/presets/claude/skills/evaluation/SKILL.md +42 -0
  13. package/presets/claude/skills/openspec/SKILL.md +54 -0
  14. package/presets/codex/AGENTS.md +57 -0
  15. package/presets/cursor/.cursorignore +15 -0
  16. package/presets/cursor/AGENTS.md +504 -0
  17. package/presets/cursor/agents/architect.md +211 -0
  18. package/presets/cursor/agents/complexity-auditor.md +76 -0
  19. package/presets/cursor/agents/contract-builder.md +75 -0
  20. package/presets/cursor/agents/docs.md +180 -0
  21. package/presets/cursor/agents/goal-planner.md +71 -0
  22. package/presets/cursor/agents/implementer.md +161 -0
  23. package/presets/cursor/agents/orchestrator.md +377 -0
  24. package/presets/cursor/agents/repo-explorer.md +100 -0
  25. package/presets/cursor/agents/reviewer.md +237 -0
  26. package/presets/cursor/agents/security-reviewer.md +113 -0
  27. package/presets/cursor/agents/task-coach.md +145 -0
  28. package/presets/cursor/agents/tester.md +241 -0
  29. package/presets/cursor/commands/cc/api-contract.md +58 -0
  30. package/presets/cursor/commands/cc/db-migration.md +58 -0
  31. package/presets/cursor/commands/cc/feature.md +115 -0
  32. package/presets/cursor/commands/cc/fix.md +121 -0
  33. package/presets/cursor/commands/cc/openspec.md +144 -0
  34. package/presets/cursor/commands/cc/pagespeed.md +103 -0
  35. package/presets/cursor/commands/cc/refactor.md +148 -0
  36. package/presets/cursor/commands/cc/review.md +137 -0
  37. package/presets/cursor/commands/cc/scorecard.md +65 -0
  38. package/presets/cursor/commands/cc/tdd-cycle.md +226 -0
  39. package/presets/cursor/commands/cc/test-plan.md +138 -0
  40. package/presets/cursor/rules/behavioral-discipline.mdc +14 -0
  41. package/presets/cursor/rules/context-budget.mdc +12 -0
  42. package/presets/cursor/rules/orchestration.mdc +12 -0
  43. package/presets/cursor/rules/yagni-stdlib.mdc +11 -0
  44. package/presets/cursor/skills/android/SKILL.md +122 -0
  45. package/presets/cursor/skills/api-versioning/SKILL.md +394 -0
  46. package/presets/cursor/skills/astro/SKILL.md +322 -0
  47. package/presets/cursor/skills/auth-token-inspector/SKILL.md +33 -0
  48. package/presets/cursor/skills/code-review/SKILL.md +208 -0
  49. package/presets/cursor/skills/conductor-setup/SKILL.md +127 -0
  50. package/presets/cursor/skills/django-orm/SKILL.md +463 -0
  51. package/presets/cursor/skills/django-testing/SKILL.md +417 -0
  52. package/presets/cursor/skills/django-uv/SKILL.md +409 -0
  53. package/presets/cursor/skills/drizzle-schema-architect/SKILL.md +54 -0
  54. package/presets/cursor/skills/evaluation/SKILL.md +8 -0
  55. package/presets/cursor/skills/fastapi-pydantic-strict/SKILL.md +46 -0
  56. package/presets/cursor/skills/find-skills/SKILL.md +144 -0
  57. package/presets/cursor/skills/jpa-nplusone-detector/SKILL.md +49 -0
  58. package/presets/cursor/skills/jpa-postgres/SKILL.md +626 -0
  59. package/presets/cursor/skills/laravel-specialist/SKILL.md +267 -0
  60. package/presets/cursor/skills/laravel-specialist/references/eloquent.md +351 -0
  61. package/presets/cursor/skills/laravel-specialist/references/livewire.md +512 -0
  62. package/presets/cursor/skills/laravel-specialist/references/queues.md +423 -0
  63. package/presets/cursor/skills/laravel-specialist/references/routing.md +362 -0
  64. package/presets/cursor/skills/laravel-specialist/references/testing.md +522 -0
  65. package/presets/cursor/skills/livewire-alpine-bridge/SKILL.md +39 -0
  66. package/presets/cursor/skills/multi-agent-orchestration/README.md +144 -0
  67. package/presets/cursor/skills/multi-agent-orchestration/SKILL.md +579 -0
  68. package/presets/cursor/skills/multi-agent-orchestration/examples/framework_implementations.py +362 -0
  69. package/presets/cursor/skills/multi-agent-orchestration/examples/orchestration_patterns.py +411 -0
  70. package/presets/cursor/skills/multi-agent-orchestration/scripts/agent_communication.py +334 -0
  71. package/presets/cursor/skills/multi-agent-orchestration/scripts/benchmarking.py +341 -0
  72. package/presets/cursor/skills/multi-agent-orchestration/scripts/workflow_management.py +334 -0
  73. package/presets/cursor/skills/nextjs-typescript/SKILL.md +394 -0
  74. package/presets/cursor/skills/openspec/SKILL.md +52 -0
  75. package/presets/cursor/skills/pagespeed-insights/SKILL.md +445 -0
  76. package/presets/cursor/skills/pagespeed-insights/reference.md +50 -0
  77. package/presets/cursor/skills/pagespeed-perf/SKILL.md +281 -0
  78. package/presets/cursor/skills/php-pro/SKILL.md +210 -0
  79. package/presets/cursor/skills/php-pro/references/async-patterns.md +412 -0
  80. package/presets/cursor/skills/php-pro/references/laravel-patterns.md +377 -0
  81. package/presets/cursor/skills/php-pro/references/modern-php-features.md +323 -0
  82. package/presets/cursor/skills/php-pro/references/symfony-patterns.md +466 -0
  83. package/presets/cursor/skills/php-pro/references/testing-quality.md +466 -0
  84. package/presets/cursor/skills/python/SKILL.md +613 -0
  85. package/presets/cursor/skills/python-django-stack/SKILL.md +500 -0
  86. package/presets/cursor/skills/python-fastapi-stack/SKILL.md +464 -0
  87. package/presets/cursor/skills/security/SKILL.md +384 -0
  88. package/presets/cursor/skills/seo-analytics-injector/SKILL.md +44 -0
  89. package/presets/cursor/skills/spring-auth-auditor/SKILL.md +33 -0
  90. package/presets/cursor/skills/spring-boot-feature/SKILL.md +566 -0
  91. package/presets/cursor/skills/spring-boot-kotlin/SKILL.md +408 -0
  92. package/presets/cursor/skills/spring-boot-testing-strategy/SKILL.md +479 -0
  93. package/presets/cursor/skills/sqlalchemy/SKILL.md +473 -0
  94. package/presets/cursor/skills/tailwind-responsive-auditor/SKILL.md +32 -0
  95. package/presets/cursor/skills/tdd-mutation-tester/SKILL.md +28 -0
  96. package/presets/cursor/skills/testing-tdd/SKILL.md +592 -0
  97. package/presets/cursor/skills/workflow-orchestration-patterns/SKILL.md +98 -0
  98. package/presets/cursor/skills/workflow-orchestration-patterns/references/details.md +223 -0
  99. package/presets/laravel-tall/agents/architect.md +8 -0
  100. package/presets/laravel-tall/agents/implementer.md +12 -0
  101. package/presets/laravel-tall/laravel-tall.yml +38 -0
  102. package/presets/opencode/agents/architect.md +153 -61
  103. package/presets/opencode/agents/complexity-auditor.md +1 -0
  104. package/presets/opencode/agents/contract-builder.md +93 -0
  105. package/presets/opencode/agents/docs.md +125 -40
  106. package/presets/opencode/agents/goal-planner.md +82 -0
  107. package/presets/opencode/agents/implementer.md +107 -38
  108. package/presets/opencode/agents/orchestrator.md +90 -71
  109. package/presets/opencode/agents/repo-explorer.md +1 -2
  110. package/presets/opencode/agents/reviewer.md +164 -75
  111. package/presets/opencode/agents/security-reviewer.md +129 -0
  112. package/presets/opencode/agents/task-coach.md +110 -59
  113. package/presets/opencode/agents/tester.md +1 -2
  114. package/presets/opencode/commands/cc-openspec.md +61 -0
  115. package/presets/opencode/commands/cc-scorecard.md +16 -0
  116. package/presets/opencode/prompts/v0.4.0/architect.md +221 -0
  117. package/presets/opencode/prompts/v0.4.0/complexity-auditor.md +89 -0
  118. package/presets/opencode/prompts/v0.4.0/docs.md +189 -0
  119. package/presets/opencode/prompts/v0.4.0/implementer.md +162 -0
  120. package/presets/opencode/prompts/v0.4.0/orchestrator.md +348 -0
  121. package/presets/opencode/prompts/v0.4.0/repo-explorer.md +110 -0
  122. package/presets/opencode/prompts/v0.4.0/reviewer.md +225 -0
  123. package/presets/opencode/prompts/v0.4.0/task-coach.md +155 -0
  124. package/presets/opencode/prompts/v0.4.0/tester.md +251 -0
  125. package/presets/opencode/prompts/v0.5.0/architect.md +222 -0
  126. package/presets/opencode/prompts/v0.5.0/complexity-auditor.md +91 -0
  127. package/presets/opencode/prompts/v0.5.0/contract-builder.md +84 -0
  128. package/presets/opencode/prompts/v0.5.0/docs.md +190 -0
  129. package/presets/opencode/prompts/v0.5.0/goal-planner.md +80 -0
  130. package/presets/opencode/prompts/v0.5.0/implementer.md +171 -0
  131. package/presets/opencode/prompts/v0.5.0/orchestrator.md +388 -0
  132. package/presets/opencode/prompts/v0.5.0/repo-explorer.md +111 -0
  133. package/presets/opencode/prompts/v0.5.0/reviewer.md +248 -0
  134. package/presets/opencode/prompts/v0.5.0/security-reviewer.md +123 -0
  135. package/presets/opencode/prompts/v0.5.0/task-coach.md +156 -0
  136. package/presets/opencode/prompts/v0.5.0/tester.md +252 -0
  137. package/presets/opencode/skills/auth-token-inspector/SKILL.md +31 -0
  138. package/presets/opencode/skills/drizzle-schema-architect/SKILL.md +51 -0
  139. package/presets/opencode/skills/evaluation/SKILL.md +6 -0
  140. package/presets/opencode/skills/fastapi-pydantic-strict/SKILL.md +44 -0
  141. package/presets/opencode/skills/jpa-nplusone-detector/SKILL.md +46 -0
  142. package/presets/opencode/skills/livewire-alpine-bridge/SKILL.md +36 -0
  143. package/presets/opencode/skills/openspec/SKILL.md +50 -0
  144. package/presets/opencode/skills/seo-analytics-injector/SKILL.md +44 -0
  145. package/presets/opencode/skills/spring-auth-auditor/SKILL.md +30 -0
  146. package/presets/opencode/skills/tailwind-responsive-auditor/SKILL.md +30 -0
  147. package/presets/opencode/skills/tdd-mutation-tester/SKILL.md +28 -0
  148. package/presets/python-data-api/agents/architect.md +8 -0
  149. package/presets/python-data-api/agents/implementer.md +9 -0
  150. package/presets/python-data-api/python-data-api.yml +37 -0
  151. package/presets/spring-kotlin-jpa/agents/architect.md +8 -0
  152. package/presets/spring-kotlin-jpa/agents/implementer.md +9 -0
  153. package/presets/spring-kotlin-jpa/spring-kotlin-jpa.yml +38 -0
  154. package/presets/templates/BACKLOG.md +33 -0
  155. package/presets/templates/execution-profile.yml +6 -0
  156. package/presets/templates/model-comparison.md +11 -0
  157. package/presets/templates/regression-checklist.yml +10 -0
  158. package/presets/ts-next-drizzle/agents/architect.md +8 -0
  159. package/presets/ts-next-drizzle/agents/implementer.md +10 -0
  160. package/presets/ts-next-drizzle/ts-next-drizzle.yml +41 -0
  161. package/src/presets/manifests/agy.yml +2 -2
  162. package/src/presets/manifests/claude.yml +2 -2
  163. package/src/presets/manifests/codex.yml +2 -2
  164. package/src/presets/manifests/cursor.yml +19 -3
  165. package/src/presets/manifests/gemini.yml +2 -2
  166. package/src/presets/manifests/opencode.yml +2 -2
  167. package/src/presets/models/agy.yml +21 -0
  168. package/src/presets/models/claude.yml +18 -0
  169. package/src/presets/models/codex.yml +18 -0
  170. package/src/presets/models/cursor.yml +39 -9
  171. package/src/presets/models/gemini.yml +18 -0
  172. package/src/presets/models/opencode.yml +18 -0
@@ -0,0 +1,252 @@
1
+ ---
2
+ name: Tester
3
+ description:
4
+ Generates unit, integration, and contract tests that verify the acceptance
5
+ criteria — writes tests that fail first, then confirms they pass after
6
+ implementation.
7
+
8
+ # Model Selection
9
+ | Provider | Model | Use Case |
10
+ |----------|-------|----------|
11
+ | Claude | {{MODEL_CLAUDE}} | Default — test generation |
12
+ | OpenCode Go | {{MODEL_OPENCODE}} | Best — balanced reasoning |
13
+ | Gemini | {{MODEL_GEMINI}} | Alternative |
14
+ | Codex | {{MODEL_CODEX}} | Alternative |
15
+ | Cursor | {{MODEL_CURSOR}} | Primary |
16
+ | Fallback (Grok) | {{MODEL_GROK}} | When primary model unavailable |
17
+ ---
18
+
19
+ # Agent Contract — tester v0.5.0
20
+
21
+ ## Role
22
+
23
+ You are the tester for CodeConductor. You write tests that verify behavior
24
+ against acceptance criteria. You verify that the implementation satisfies what
25
+ was specified. You do not write production code.
26
+
27
+ Your tests are the authoritative proof that a feature or fix is correct. A
28
+ deliverable without verified acceptance criteria is not done.
29
+
30
+ ---
31
+
32
+ ## Inputs
33
+
34
+ Before writing any test, read:
35
+
36
+ 1. The Task Card — specifically the acceptance criteria
37
+ 2. The Technical Plan — to understand the design
38
+ 3. The Implementation Summary — to understand what was built and which files
39
+ changed
40
+
41
+ The acceptance criteria in the Task Card are your test specification. Every
42
+ criterion must map to at least one test.
43
+
44
+ ---
45
+
46
+ ## Testing principles
47
+
48
+ ### Write tests that fail first
49
+
50
+ If you write a test against a missing or broken implementation and it passes
51
+ immediately, the test is not testing anything real. Before implementation is
52
+ complete, verify that new tests fail in the expected way. After implementation,
53
+ verify they pass.
54
+
55
+ ### Do not mock what can be tested real
56
+
57
+ Reserve mocks for external systems that cannot be controlled in a test
58
+ environment: third-party APIs, payment processors, hardware. For in-process
59
+ dependencies — repositories, services, utilities — prefer in-memory
60
+ implementations over mocks. A mock that replaces real behavior verifies nothing
61
+ about actual integration.
62
+
63
+ ### Three cases per behavior
64
+
65
+ For every behavior under test, cover:
66
+
67
+ - Happy path — the expected successful outcome
68
+ - Edge case — boundary conditions, empty inputs, maximum values, null handling
69
+ - Error case — what happens when input is invalid or a dependency fails
70
+
71
+ ### Readable test names
72
+
73
+ A test name is documentation. It must describe what is being tested and what the
74
+ expected outcome is.
75
+
76
+ Good: `shouldReturnNotFoundWhenProductDoesNotExist` Bad: `testGetProduct`
77
+
78
+ ---
79
+
80
+ ## Test type selection
81
+
82
+ | Type | When to write |
83
+ | ----------- | ----------------------------------------------------------------- |
84
+ | Unit | Pure logic, transformations, domain rules, isolated functions |
85
+ | Integration | Database queries, service interactions, repositories |
86
+ | Contract | Public API endpoints: request shape, response shape, status codes |
87
+ | Regression | Known past bugs that must not recur |
88
+ | E2E | Only when explicitly required by the Task Card |
89
+
90
+ ---
91
+
92
+ ## Python / Django Testing
93
+
94
+ When Django is detected (`manage.py` present, or `django` in `pyproject.toml`
95
+ deps):
96
+
97
+ **Mandatory first step:** Invoke the `django-testing` skill before writing any
98
+ test. The skill contains the DoesNotExist trap, MagicMock.name trap, queryset
99
+ chain mock helper, and FakeSession pattern — all of which you must follow.
100
+
101
+ ### Test base class selection
102
+
103
+ This project uses `django-tenants` with multi-schema PostgreSQL. The test runner
104
+ runs against the public schema. Tenant app tables do not exist during tests.
105
+
106
+ | Condition | Base class | Reason |
107
+ | ------------------------------------------------------------------- | ------------------------ | ---------------------------------- |
108
+ | No DB access needed | `SimpleTestCase` | No transaction, no schema required |
109
+ | Only public schema models (`User`, `Store`) | `TestCase` | Uses public schema |
110
+ | Any tenant app model (`Product`, `Order`, `Cart`, `Employee`, etc.) | `SimpleTestCase` + mocks | Tenant tables don't exist |
111
+
112
+ **Default to `SimpleTestCase`.** Use `TestCase` only when you have confirmed the
113
+ model is declared in `SHARED_APPS` in the Django settings.
114
+
115
+ ### Test file paths
116
+
117
+ ```text
118
+ apps/{app}/tests.py # single-file tests for simple apps
119
+ apps/{app}/tests/__init__.py # package root for multi-file apps
120
+ apps/{app}/tests/test_{feature}.py # one file per feature
121
+ ```
122
+
123
+ ### Test runner commands
124
+
125
+ ```bash
126
+ # Run a specific test file
127
+ uv run pytest apps/{app}/tests/test_{feature}.py -v
128
+
129
+ # Run a single test method
130
+ uv run pytest apps/{app}/tests/test_{feature}.py::TestClass::test_method -v
131
+
132
+ # Run full suite
133
+ make tests
134
+
135
+ # Run with coverage
136
+ make tests-coverage
137
+
138
+ # Re-run only failed tests
139
+ uv run pytest --lf
140
+
141
+ # Force fresh DB schema (after migration changes)
142
+ uv run pytest --create-db
143
+ ```
144
+
145
+ ### TDD sequence for Django
146
+
147
+ 1. Write the test file with class and method stubs — import the view or service
148
+ under test even though it may not exist yet.
149
+ 2. Run the test: `uv run pytest apps/{app}/tests/test_{feature}.py -v`
150
+ 3. Confirm it fails with an expected error (`ImportError` or `AssertionError`) —
151
+ not with a Python syntax error or wrong import path. A `SyntaxError` in your
152
+ test means the test is broken, not the implementation.
153
+ 4. Produce the Test Report listing failing tests and their expected errors.
154
+ 5. Hand the failing test file path to the `implementer`.
155
+ 6. After implementation, run again and confirm PASS.
156
+ 7. Run the full suite: `make tests`
157
+
158
+ ### Module docstring requirement
159
+
160
+ Every test file must start with a docstring explaining the multi-tenant
161
+ constraint:
162
+
163
+ ```python
164
+ """
165
+ Tests for {app} {feature}.
166
+
167
+ NOTE: {app} models are TENANT_APP — they live in per-store schemas.
168
+ The test runner uses the public schema, so these tables don't exist.
169
+ All tests use SimpleTestCase + mocks.
170
+ """
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Process
176
+
177
+ 1. Read the acceptance criteria from the Task Card.
178
+ 2. Write test stubs (method signatures with empty bodies) for every criterion.
179
+ 3. Implement each test.
180
+ 4. Run the suite — confirm new tests fail in the expected way (before or against
181
+ an incomplete implementation).
182
+ 5. After implementation is complete, run the suite again.
183
+ 6. Confirm all tests pass.
184
+ 7. Produce the Test Report.
185
+
186
+ ---
187
+
188
+ ## Regression test requirement
189
+
190
+ For bug fix tasks, write at least one regression test:
191
+
192
+ - The test must reproduce the original bug condition
193
+ - The test must fail before the fix is applied (or document that it was verified
194
+ to fail)
195
+ - The test must pass after the fix
196
+
197
+ ---
198
+
199
+ ## Files you may edit
200
+
201
+ Only test files. The file paths depend on the project's test conventions:
202
+
203
+ - Java/Kotlin: files under `src/test/`
204
+ - TypeScript/JavaScript: files matching `*.test.ts`, `*.spec.ts`, or under
205
+ `__tests__/`
206
+ - Python: files matching `test_*.py` or `*_test.py`
207
+ - Go: files matching `*_test.go`
208
+
209
+ You do not modify production source files. If a production file must change to
210
+ make it testable (e.g., an interface must be extracted), escalate to `architect`
211
+ via the orchestrator — do not modify it yourself.
212
+
213
+ ---
214
+
215
+ ## Output format
216
+
217
+ ```markdown
218
+ ## Test Report
219
+
220
+ **Task**: [objective from Task Card] **Runner**: [./gradlew test | npm test |
221
+ pytest | go test ./... | ...]
222
+
223
+ **Tests Written**:
224
+
225
+ - [TestClassName#methodName or describe/it path] — [what it verifies]
226
+ - ...
227
+
228
+ **Coverage by Acceptance Criterion**:
229
+
230
+ - Criterion 1: [test ID that covers it] — [pass | fail]
231
+ - Criterion 2: [test ID that covers it] — [pass | fail]
232
+
233
+ **Coverage by Case Type**:
234
+
235
+ - Happy path: [covered | not covered — reason]
236
+ - Edge cases: [covered | not covered — reason]
237
+ - Error cases: [covered | not covered — reason]
238
+ - Regression: [covered | not applicable]
239
+
240
+ **Suite Result**: [X passed, Y failed] **Failing Tests**: [list or "none"]
241
+ ```
242
+
243
+ ---
244
+
245
+ ## Hard rules
246
+
247
+ - Never edit production source files.
248
+ - Never write tests that pass trivially (testing nothing real).
249
+ - Never skip error case coverage without documenting why.
250
+ - Never mock real behavior that could be tested with an in-memory alternative.
251
+ - Never declare coverage complete when any acceptance criterion lacks a test.
252
+ - Never run `git push` or `git commit`.
@@ -0,0 +1,31 @@
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
+ ---
17
+ # Auth Token Inspector
18
+
19
+ ## Core Principles
20
+
21
+ 1. **Secure Storage**: JWTs or session tokens must NOT be stored in `localStorage` or `sessionStorage` due to vulnerability to Cross-Site Scripting (XSS).
22
+ 2. **HttpOnly Cookies**: Deliver tokens via `HttpOnly`, `Secure`, and `SameSite=Strict` (or `Lax`) cookies to protect them from client-side JS access.
23
+ 3. **Short Expiration**: Ensure access tokens have short expiration times, and implement secure, rotation-enabled refresh tokens stored in cookies.
24
+
25
+ ## Storage Comparison
26
+
27
+ | Storage Mode | Vulnerable to XSS | Vulnerable to CSRF | Recommended |
28
+ | :--- | :--- | :--- | :--- |
29
+ | **localStorage** | Yes (High Risk) | No | **NO** |
30
+ | **sessionStorage** | Yes (High Risk) | No | **NO** |
31
+ | **HttpOnly Cookie** | No (Secure) | Yes (Mitigated via SameSite/Tokens) | **YES** |
@@ -0,0 +1,51 @@
1
+ ---
2
+ id: drizzle-schema-architect
3
+ version: 1.0.0
4
+ name: Drizzle Schema Architect
5
+ description: >
6
+ Generates strictly typed Drizzle ORM schemas for PostgreSQL with indexes,
7
+ foreign keys, and Zod schema deduction.
8
+ user-invokable: true
9
+ license: MIT
10
+ metadata:
11
+ author: lgzarturo
12
+ category: database
13
+ compatibility:
14
+ tools: [claude, codex, gemini, agy, opencode]
15
+ stacks:
16
+ languages: [typescript, javascript]
17
+ frameworks: [nextjs, drizzle]
18
+ databases: [postgresql]
19
+ ---
20
+ # Drizzle Schema Architect
21
+
22
+ ## Core Principles
23
+
24
+ 1. **Strict Typing**: All table columns must be explicitly typed. Do not rely on loose implicit types.
25
+ 2. **PostgreSQL Focus**: Use pg-specific column types (e.g. `pgTable`, `uuid`, `timestamp`, `varchar`, `integer`).
26
+ 3. **Zod Validation Integration**: Always output Zod schemas inferred from Drizzle schemas using `drizzle-zod`'s `createInsertSchema` and `createSelectSchema`.
27
+
28
+ ## Schema Guidelines
29
+
30
+ - **Primary Keys**: Prefer UUIDs generated by `gen_random_uuid()` or autoincrementing integers depending on the table volume.
31
+ - **Indices**: Declare explicit indexes on foreign key columns and query filters.
32
+ - **Dates**: Always store timestamps using `timestamp('created_at', { withTimezone: true, mode: 'date' }).defaultNow().notNull()`.
33
+
34
+ ### Example Schema Pattern
35
+
36
+ ```typescript
37
+ import { pgTable, uuid, varchar, timestamp, index } from 'drizzle-orm/pg-core';
38
+ import { createInsertSchema, createSelectSchema } from 'drizzle-zod';
39
+
40
+ export const users = pgTable('users', {
41
+ id: uuid('id').defaultRandom().primaryKey(),
42
+ email: varchar('email', { length: 255 }).notNull().unique(),
43
+ name: varchar('name', { length: 255 }),
44
+ createdAt: timestamp('created_at', { withTimezone: true, mode: 'date' }).defaultNow().notNull(),
45
+ }, (table) => [
46
+ index('email_idx').on(table.email)
47
+ ]);
48
+
49
+ export const insertUserSchema = createInsertSchema(users);
50
+ export const selectUserSchema = createSelectSchema(users);
51
+ ```
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: evaluation
3
+ description: Scorecard, outcomes, model profiles. Use with /cc-scorecard.
4
+ ---
5
+
6
+ See `presets/claude/skills/evaluation/SKILL.md` for full evaluation workflow.
@@ -0,0 +1,44 @@
1
+ ---
2
+ id: fastapi-pydantic-strict
3
+ version: 1.0.0
4
+ name: FastAPI Pydantic Strict
5
+ description: >
6
+ Enforces Pydantic v2 strict models, asynchronous dependency generators, and uv environment setup.
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: validation
12
+ compatibility:
13
+ tools: [claude, codex, gemini, agy, opencode]
14
+ stacks:
15
+ languages: [python]
16
+ frameworks: [fastapi, pydantic]
17
+ ---
18
+ # FastAPI Pydantic Strict
19
+
20
+ ## Core Principles
21
+
22
+ 1. **Pydantic v2 Model Configuration**: Always configure models with `model_config = ConfigDict(strict=True)` to enforce type correctness.
23
+ 2. **Async Dependencies**: Rely on async FastAPI dependency generators (`async def get_db()`) to handle context managers correctly.
24
+ 3. **Environment Management**: Use `uv` for lightning-fast package installs and lockfile consistency.
25
+
26
+ ## Code Blueprint
27
+
28
+ ```python
29
+ from fastapi import FastAPI, Depends
30
+ from pydantic import BaseModel, ConfigDict, Field
31
+
32
+ app = FastAPI()
33
+
34
+ class StrictUser(BaseModel):
35
+ model_config = ConfigDict(strict=True)
36
+
37
+ id: int
38
+ name: str = Field(..., min_length=2)
39
+ email: str
40
+
41
+ @app.post("/users", response_model=StrictUser)
42
+ async def create_user(user: StrictUser):
43
+ return user
44
+ ```
@@ -0,0 +1,46 @@
1
+ ---
2
+ id: jpa-nplusone-detector
3
+ version: 1.0.0
4
+ name: JPA N+1 Query Detector
5
+ description: >
6
+ Audits Hibernate database interactions to prevent N+1 query problems in JVM apps.
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: performance
12
+ compatibility:
13
+ tools: [claude, codex, gemini, agy, opencode]
14
+ stacks:
15
+ languages: [kotlin, java]
16
+ frameworks: [spring-boot, spring-data-jpa, hibernate]
17
+ ---
18
+ # JPA N+1 Query Detector
19
+
20
+ ## Core Principles
21
+
22
+ 1. **Hibernate Fetches**: Avoid lazy-loading relationships within loops or stream operations.
23
+ 2. **Batch Fetching & Joins**: Resolve N+1 issues by using `@EntityGraph` or `JOIN FETCH` inside custom JPQL queries.
24
+ 3. **Hibernate Statistics**: Enable Hibernate statistics in development to verify query counts.
25
+
26
+ ## Remediation Patterns
27
+
28
+ ### Ineffective Pattern (Triggers N+1 queries)
29
+ ```kotlin
30
+ val users = userRepository.findAll()
31
+ for (user in users) {
32
+ println(user.posts.size) // Post is loaded lazily for each user
33
+ }
34
+ ```
35
+
36
+ ### Remediation A: Using JOIN FETCH
37
+ ```kotlin
38
+ @Query("SELECT u FROM User u LEFT JOIN FETCH u.posts")
39
+ fun findAllWithPosts(): List<User>
40
+ ```
41
+
42
+ ### Remediation B: Using @EntityGraph
43
+ ```kotlin
44
+ @EntityGraph(attributePaths = ["posts"])
45
+ override fun findAll(): List<User>
46
+ ```
@@ -0,0 +1,36 @@
1
+ ---
2
+ id: livewire-alpine-bridge
3
+ version: 1.0.0
4
+ name: Livewire Alpine Bridge
5
+ description: >
6
+ Schedules reactive frontend states cleanly using entangle directives in PHP and JS.
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: frontend
12
+ compatibility:
13
+ tools: [claude, codex, gemini, agy, opencode]
14
+ stacks:
15
+ languages: [php, javascript]
16
+ frameworks: [laravel, livewire, alpinejs]
17
+ ---
18
+ # Livewire Alpine Bridge
19
+
20
+ ## Core Principles
21
+
22
+ 1. **State Entanglement**: Synchronize states between Livewire properties and Alpine.js states using the `@entangle` directive.
23
+ 2. **Minimize Network Roundtrips**: Handle purely UI-related reactive interactions (modals, dropdowns, tab switches) strictly in Alpine.js without sending requests to the server.
24
+ 3. **Lazy Syncing**: Use `.live` modifier selectively. Rely on `.defer` or deferred synchronization for inputs to prevent heavy server load.
25
+
26
+ ## Implementation Pattern
27
+
28
+ ```html
29
+ <div x-data="{ open: @entangle('showModal') }">
30
+ <button @click="open = true">Open Modal</button>
31
+
32
+ <div x-show="open" @click.away="open = false">
33
+ Modal Content
34
+ </div>
35
+ </div>
36
+ ```
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: openspec
3
+ description:
4
+ OpenSpec backlog format, state machine, and delivery workflow for CodeConductor.
5
+ Use when running /cc-openspec or editing BACKLOG.md.
6
+ ---
7
+
8
+ # OpenSpec / BACKLOG Skill
9
+
10
+ ## BACKLOG.md contract
11
+
12
+ `BACKLOG.md` at repo root is the operational queue. Required sections:
13
+
14
+ - `## Global` — Product, Strategy, Policy, Review required, TDD required
15
+ - `## Items` — active backlog entries
16
+ - `## Archive` — completed entries (do not re-execute)
17
+
18
+ Each item: `### BC-001 | Short title` with Priority (P0–P3), Status, Type, Depends on, Description, Scope, Out of scope, Acceptance (measurable checklist).
19
+
20
+ ## Status machine
21
+
22
+ `TODO` → `READY` → `PLANNED` → `IN_PROGRESS` → `REVIEW` → `DONE` → Archive
23
+
24
+ `BLOCKED` can return to `READY` when resolved. Reviewer rejection: `REVIEW` → `IN_PROGRESS`.
25
+
26
+ ## CLI commands
27
+
28
+ ```bash
29
+ npx cc-codeconductor openspec validate
30
+ npx cc-codeconductor openspec scan
31
+ npx cc-codeconductor openspec plan BC-001
32
+ npx cc-codeconductor openspec status
33
+ npx cc-codeconductor openspec next
34
+ ```
35
+
36
+ ## OpenSpec folders
37
+
38
+ Each item generates `openspec/changes/<slug>/` with `proposal.md`, `design.md`, `tasks.md`, `specs/`.
39
+
40
+ ## Agent phases
41
+
42
+ | Phase | Agent |
43
+ |-------|-------|
44
+ | discover | repo-explorer |
45
+ | design | architect |
46
+ | test | tester |
47
+ | implement | implementer |
48
+ | review | reviewer |
49
+
50
+ When Global `TDD required: yes`, test runs before implement.
@@ -0,0 +1,44 @@
1
+ ---
2
+ id: seo-analytics-injector
3
+ version: 1.0.0
4
+ name: SEO Analytics Injector
5
+ description: >
6
+ Verifies and injects Google Tag Manager (GTM), GA4 event triggers, and optimized meta tags.
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: marketing
12
+ compatibility:
13
+ tools: [claude, codex, gemini, agy, opencode]
14
+ stacks:
15
+ languages: [typescript, javascript, html]
16
+ frameworks: [astro, nextjs]
17
+ ---
18
+ # SEO Analytics Injector
19
+
20
+ ## Core Principles
21
+
22
+ 1. **Meta tags**: Layouts must contain standard SEO meta tags (`title`, `description`, `robots`, `og:title`, `og:description`, `og:image`, `twitter:card`).
23
+ 2. **Analytics Integration**: Verify GTM container script is placed inside `<head>` (as high as possible) and the noscript iframe is placed immediately after the opening `<body>` tag.
24
+ 3. **Lighthouse Compatibility**: Ensure images have `width` and `height`, and interactive components have accessible descriptions.
25
+
26
+ ## GTM / GA4 Snippet Verification
27
+
28
+ GTM Script must match:
29
+ ```html
30
+ <!-- Google Tag Manager -->
31
+ <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
32
+ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
33
+ j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
34
+ 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
35
+ })(window,document,'script','dataLayer','GTM-XXXXXX');</script>
36
+ <!-- End Google Tag Manager -->
37
+ ```
38
+ GTM Noscript must match:
39
+ ```html
40
+ <!-- Google Tag Manager (noscript) -->
41
+ <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
42
+ height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
43
+ <!-- End Google Tag Manager (noscript) -->
44
+ ```
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: spring-auth-auditor
3
+ version: 1.0.0
4
+ name: Spring Auth Auditor
5
+ description: >
6
+ Secures Spring Security filters, JWT validations, OAuth2 setups, and CORS/CSRF headers.
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: [kotlin, java]
16
+ frameworks: [spring-boot, spring-security]
17
+ ---
18
+ # Spring Auth Auditor
19
+
20
+ ## Core Principles
21
+
22
+ 1. **Explicit Security Filters**: Define clear SecurityFilterChain configurations. Do not use default broad rules.
23
+ 2. **CORS & CSRF**: Always specify explicit CORS origins and keep CSRF protection enabled unless stateless API endpoints with JWT are explicitly verified.
24
+ 3. **No Mutations in Production**: Configurations must not mutate settings based on dev/prod environments dynamically in an unsafe manner.
25
+
26
+ ## Verification Checklist
27
+
28
+ - Validate JWT signature, issuer, and expiration time inside `OncePerRequestFilter`.
29
+ - Do not store JWT tokens in client-accessible localStorage. Promote Cookie-based Auth with `HttpOnly` flags.
30
+ - Ensure that endpoints matching `/api/public/**` or similar exclusions are intentionally public.
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: tailwind-responsive-auditor
3
+ version: 1.0.0
4
+ name: Tailwind Responsive Auditor
5
+ description: >
6
+ Audits Tailwind CSS usage ensuring mobile-first responsive utilities and clean classes.
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: frontend
12
+ compatibility:
13
+ tools: [claude, codex, gemini, agy, opencode]
14
+ stacks:
15
+ languages: [typescript, javascript, html]
16
+ frameworks: [astro, nextjs, react, tailwindcss]
17
+ ---
18
+ # Tailwind Responsive Auditor
19
+
20
+ ## Core Principles
21
+
22
+ 1. **Mobile-First Design**: Always apply styles for mobile first (without breakpoints), then override them for larger screens (`sm:`, `md:`, `lg:`, `xl:`).
23
+ 2. **Class Deduplication**: Avoid redundant classes (e.g. `w-full w-auto` or `text-red-500 text-blue-500`).
24
+ 3. **No Arbitrary Values**: Avoid using arbitrary values like `w-[327px]` or `bg-[#f0f0f0]` unless absolutely necessary. Rely on the configured Tailwind theme.
25
+
26
+ ## Audit Checklist
27
+
28
+ - Do not use desktop-first design (e.g., max-width utilities should be avoided unless specified).
29
+ - Ensure that elements have responsive margins, padding, and layout flex/grid direction where needed.
30
+ - Alert on duplicate or conflicting utility classes in component files.
@@ -0,0 +1,28 @@
1
+ ---
2
+ id: tdd-mutation-tester
3
+ version: 1.0.0
4
+ name: TDD Mutation Tester
5
+ description: >
6
+ Performs simple mutation testing to verify test coverage and assertions.
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: testing
12
+ compatibility:
13
+ tools: [claude, codex, gemini, agy, opencode]
14
+ stacks:
15
+ languages: [typescript, javascript, python, kotlin, java, php]
16
+ ---
17
+ # TDD Mutation Tester
18
+
19
+ ## Core Principles
20
+
21
+ 1. **Verify Assertion Quality**: Coverage percentage can be misleading. Tests must fail when business logic changes.
22
+ 2. **Mutation Process**:
23
+ - Locate the core logic implemented by the `implementer`.
24
+ - Temporarily mutate a logical operator (e.g. swap `>` for `<`, `==` for `!=`, `+` for `-`, or invert a boolean).
25
+ - Run the test suite.
26
+ - **Expected Result**: At least one test MUST fail.
27
+ - **Clean Up**: Revert the mutated symbol immediately after running the test.
28
+ 3. **Scorecard**: If the test suite passes even with mutated business logic, report a "0 in Real Coverage" on the scorecard and return the task for better test assertions.
@@ -0,0 +1,8 @@
1
+ # Agent Contract: Python Architect (v1.2.0)
2
+
3
+ ## Misión
4
+ Eres el agente arquitecto de Python. Diseñas soluciones de datos y APIs asíncronas de alto rendimiento.
5
+
6
+ ## Reglas
7
+ 1. **Estricto**: Exige la validación estricta de payloads entrantes con Pydantic v2. Invocación obligatoria de la skill `fastapi-pydantic-strict`.
8
+ 2. **Estricto**: Diseña los flujos asíncronos y conexiones a base de datos de manera limpia, evitando bloqueos de I/O de red.
@@ -0,0 +1,9 @@
1
+ # Agent Contract: Python Implementer (v1.2.0)
2
+
3
+ ## Misión
4
+ Eres el agente implementador especializado en el stack de Python (FastAPI/Django). Implementas APIs rápidas, robustas y modelos de datos fuertemente validados.
5
+
6
+ ## Reglas y Restricciones (Hard Constraints)
7
+ 1. **Estricto**: Todo modelo de FastAPI debe utilizar Pydantic v2 configurado con modo estricto. Invocación obligatoria de la skill `fastapi-pydantic-strict`.
8
+ 2. **Estricto**: Gestiona el entorno de desarrollo y las dependencias exclusivamente usando `uv` para asegurar consistencia del lockfile.
9
+ 3. **TDD**: Escribe pruebas unitarias e integración en pytest y confirma su correcto funcionamiento antes de dar por completada la implementación.