cc-codeconductor 1.4.2 → 1.5.1

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 (305) hide show
  1. package/README.md +52 -14
  2. package/dist/domain/product/entities.d.ts +1 -1
  3. package/dist/index.js +811 -354
  4. package/dist/library.js +47 -3
  5. package/dist/validation/schemas.d.ts +183 -21
  6. package/docs/generated/cli.md +16 -0
  7. package/package.json +1 -1
  8. package/presets/agy/README.md +1 -1
  9. package/presets/agy/hooks.json +1 -1
  10. package/presets/agy/scripts/invoke-hook.cjs +20 -5
  11. package/presets/agy/settings.json +1 -1
  12. package/presets/agy/skills/api-versioning/SKILL.md +394 -0
  13. package/presets/agy/skills/astro/SKILL.md +318 -0
  14. package/presets/agy/skills/auth-token-inspector/SKILL.md +30 -0
  15. package/presets/agy/skills/cc-pagespeed/SKILL.md +2 -3
  16. package/presets/agy/skills/code-review/SKILL.md +207 -0
  17. package/presets/agy/skills/django-orm/SKILL.md +460 -0
  18. package/presets/agy/skills/django-uv/SKILL.md +405 -0
  19. package/presets/agy/skills/drizzle-schema-architect/SKILL.md +50 -0
  20. package/presets/agy/skills/fastapi-pydantic-strict/SKILL.md +43 -0
  21. package/presets/agy/skills/jpa-nplusone-detector/SKILL.md +45 -0
  22. package/presets/agy/skills/jpa-postgres/SKILL.md +623 -0
  23. package/presets/agy/skills/livewire-alpine-bridge/SKILL.md +35 -0
  24. package/presets/agy/skills/nextjs-typescript/SKILL.md +390 -0
  25. package/presets/agy/skills/python/SKILL.md +611 -0
  26. package/presets/agy/skills/seo-analytics-injector/SKILL.md +43 -0
  27. package/presets/agy/skills/spring-auth-auditor/SKILL.md +29 -0
  28. package/presets/agy/skills/spring-boot-feature/SKILL.md +563 -0
  29. package/presets/agy/skills/spring-boot-testing-strategy/SKILL.md +475 -0
  30. package/presets/agy/skills/tailwind-responsive-auditor/SKILL.md +29 -0
  31. package/presets/agy/skills/tdd-mutation-tester/SKILL.md +27 -0
  32. package/presets/agy/workflows/cc-api-contract.md +4 -5
  33. package/presets/agy/workflows/cc-backlog.md +4 -5
  34. package/presets/agy/workflows/cc-clarify.md +4 -5
  35. package/presets/agy/workflows/cc-council.md +4 -5
  36. package/presets/agy/workflows/cc-db-migration.md +4 -5
  37. package/presets/agy/workflows/cc-explore.md +4 -5
  38. package/presets/agy/workflows/cc-feature.md +4 -5
  39. package/presets/agy/workflows/cc-fix.md +4 -5
  40. package/presets/agy/workflows/cc-handoff.md +8 -5
  41. package/presets/agy/workflows/cc-iterative.md +4 -5
  42. package/presets/agy/workflows/cc-odd.md +4 -3
  43. package/presets/agy/workflows/cc-openspec.md +5 -6
  44. package/presets/agy/workflows/cc-pagespeed.md +6 -8
  45. package/presets/agy/workflows/cc-prototype.md +4 -5
  46. package/presets/agy/workflows/cc-refactor.md +4 -5
  47. package/presets/agy/workflows/cc-review.md +35 -5
  48. package/presets/agy/workflows/cc-scorecard.md +4 -5
  49. package/presets/agy/workflows/cc-security.md +5 -6
  50. package/presets/agy/workflows/cc-spec-mutation.md +4 -5
  51. package/presets/agy/workflows/cc-tdd-cycle.md +4 -5
  52. package/presets/agy/workflows/cc-test-plan.md +4 -5
  53. package/presets/agy/workflows/cc-triage.md +4 -5
  54. package/presets/claude/CLAUDE.md +6 -5
  55. package/presets/claude/commands/cc/api-contract.md +4 -5
  56. package/presets/claude/commands/cc/backlog.md +4 -5
  57. package/presets/claude/commands/cc/clarify.md +4 -5
  58. package/presets/claude/commands/cc/council.md +4 -5
  59. package/presets/claude/commands/cc/db-migration.md +4 -5
  60. package/presets/claude/commands/cc/explore.md +4 -5
  61. package/presets/claude/commands/cc/feature.md +4 -5
  62. package/presets/claude/commands/cc/fix.md +4 -5
  63. package/presets/claude/commands/cc/handoff.md +8 -5
  64. package/presets/claude/commands/cc/iterative.md +4 -5
  65. package/presets/claude/commands/cc/odd.md +4 -3
  66. package/presets/claude/commands/cc/openspec.md +23 -7
  67. package/presets/claude/commands/cc/pagespeed.md +4 -5
  68. package/presets/claude/commands/cc/prototype.md +4 -5
  69. package/presets/claude/commands/cc/refactor.md +4 -5
  70. package/presets/claude/commands/cc/review.md +37 -5
  71. package/presets/claude/commands/cc/scorecard.md +4 -5
  72. package/presets/claude/commands/cc/security.md +4 -5
  73. package/presets/claude/commands/cc/spec-mutation.md +4 -5
  74. package/presets/claude/commands/cc/tdd-cycle.md +4 -5
  75. package/presets/claude/commands/cc/test-plan.md +4 -5
  76. package/presets/claude/commands/cc/triage.md +4 -5
  77. package/presets/claude/settings.json +33 -79
  78. package/presets/claude/skills/android/SKILL.md +1 -1
  79. package/presets/claude/skills/api-versioning/SKILL.md +1 -1
  80. package/presets/claude/skills/astro/SKILL.md +318 -0
  81. package/presets/claude/skills/auth-token-inspector/SKILL.md +30 -0
  82. package/presets/claude/skills/code-review/SKILL.md +207 -0
  83. package/presets/claude/skills/django-orm/SKILL.md +1 -1
  84. package/presets/claude/skills/django-testing/SKILL.md +1 -1
  85. package/presets/claude/skills/django-uv/SKILL.md +405 -0
  86. package/presets/claude/skills/drizzle-schema-architect/SKILL.md +50 -0
  87. package/presets/claude/skills/fastapi-pydantic-strict/SKILL.md +43 -0
  88. package/presets/claude/skills/jpa-nplusone-detector/SKILL.md +45 -0
  89. package/presets/claude/skills/jpa-postgres/SKILL.md +1 -1
  90. package/presets/claude/skills/livewire-alpine-bridge/SKILL.md +35 -0
  91. package/presets/claude/skills/nextjs-typescript/SKILL.md +390 -0
  92. package/presets/claude/skills/pagespeed-perf/SKILL.md +1 -1
  93. package/presets/claude/skills/python/SKILL.md +1 -1
  94. package/presets/claude/skills/python-django-stack/SKILL.md +1 -1
  95. package/presets/claude/skills/python-fastapi-stack/SKILL.md +1 -1
  96. package/presets/claude/skills/security/SKILL.md +1 -1
  97. package/presets/claude/skills/seo-analytics-injector/SKILL.md +43 -0
  98. package/presets/claude/skills/spring-auth-auditor/SKILL.md +29 -0
  99. package/presets/claude/skills/spring-boot-feature/SKILL.md +1 -1
  100. package/presets/claude/skills/spring-boot-kotlin/SKILL.md +1 -1
  101. package/presets/claude/skills/spring-boot-testing-strategy/SKILL.md +475 -0
  102. package/presets/claude/skills/sqlalchemy/SKILL.md +1 -1
  103. package/presets/claude/skills/tailwind-responsive-auditor/SKILL.md +29 -0
  104. package/presets/claude/skills/tdd-mutation-tester/SKILL.md +27 -0
  105. package/presets/claude/skills/testing-strategy/SKILL.md +1 -1
  106. package/presets/codex/config.toml +2 -0
  107. package/presets/codex/skills/android/SKILL.md +1 -1
  108. package/presets/codex/skills/api-versioning/SKILL.md +1 -1
  109. package/presets/codex/skills/astro/SKILL.md +318 -0
  110. package/presets/codex/skills/auth-token-inspector/SKILL.md +30 -0
  111. package/presets/codex/skills/cc-api-contract/SKILL.md +4 -5
  112. package/presets/codex/skills/cc-backlog/SKILL.md +4 -5
  113. package/presets/codex/skills/cc-clarify/SKILL.md +4 -5
  114. package/presets/codex/skills/cc-council/SKILL.md +10 -5
  115. package/presets/codex/skills/cc-db-migration/SKILL.md +4 -5
  116. package/presets/codex/skills/cc-explore/SKILL.md +4 -5
  117. package/presets/codex/skills/cc-feature/SKILL.md +4 -5
  118. package/presets/codex/skills/cc-fix/SKILL.md +4 -5
  119. package/presets/codex/skills/cc-handoff/SKILL.md +8 -5
  120. package/presets/codex/skills/cc-iterative/SKILL.md +4 -5
  121. package/presets/codex/skills/cc-odd/SKILL.md +4 -3
  122. package/presets/codex/skills/cc-openspec/SKILL.md +12 -7
  123. package/presets/codex/skills/cc-pagespeed/SKILL.md +6 -8
  124. package/presets/codex/skills/cc-prototype/SKILL.md +4 -5
  125. package/presets/codex/skills/cc-refactor/SKILL.md +4 -5
  126. package/presets/codex/skills/cc-review/SKILL.md +35 -5
  127. package/presets/codex/skills/cc-scorecard/SKILL.md +4 -5
  128. package/presets/codex/skills/cc-security/SKILL.md +5 -6
  129. package/presets/codex/skills/cc-spec-mutation/SKILL.md +4 -5
  130. package/presets/codex/skills/cc-tdd-cycle/SKILL.md +4 -5
  131. package/presets/codex/skills/cc-test-plan/SKILL.md +4 -5
  132. package/presets/codex/skills/cc-triage/SKILL.md +4 -5
  133. package/presets/codex/skills/code-review/SKILL.md +207 -0
  134. package/presets/codex/skills/django-orm/SKILL.md +1 -1
  135. package/presets/codex/skills/django-testing/SKILL.md +1 -1
  136. package/presets/codex/skills/django-uv/SKILL.md +405 -0
  137. package/presets/codex/skills/drizzle-schema-architect/SKILL.md +50 -0
  138. package/presets/codex/skills/fastapi-pydantic-strict/SKILL.md +43 -0
  139. package/presets/codex/skills/jpa-nplusone-detector/SKILL.md +45 -0
  140. package/presets/codex/skills/jpa-postgres/SKILL.md +1 -1
  141. package/presets/codex/skills/livewire-alpine-bridge/SKILL.md +35 -0
  142. package/presets/codex/skills/nextjs-typescript/SKILL.md +390 -0
  143. package/presets/codex/skills/pagespeed-perf/SKILL.md +1 -1
  144. package/presets/codex/skills/python/SKILL.md +1 -1
  145. package/presets/codex/skills/python-django-stack/SKILL.md +1 -1
  146. package/presets/codex/skills/python-fastapi-stack/SKILL.md +1 -1
  147. package/presets/codex/skills/security-ai-llm/SKILL.md +43 -0
  148. package/presets/codex/skills/security-blue-team/SKILL.md +43 -0
  149. package/presets/codex/skills/security-cloud/SKILL.md +43 -0
  150. package/presets/codex/skills/security-crypto/SKILL.md +43 -0
  151. package/presets/codex/skills/security-exploit-dev/SKILL.md +45 -0
  152. package/presets/codex/skills/security-grc/SKILL.md +43 -0
  153. package/presets/codex/skills/security-incident-response/SKILL.md +45 -0
  154. package/presets/codex/skills/security-log-analysis/SKILL.md +43 -0
  155. package/presets/codex/skills/security-malware-analysis/SKILL.md +44 -0
  156. package/presets/codex/skills/security-mobile/SKILL.md +43 -0
  157. package/presets/codex/skills/security-network/SKILL.md +43 -0
  158. package/presets/codex/skills/security-ot-ics/SKILL.md +43 -0
  159. package/presets/codex/skills/security-recon/SKILL.md +45 -0
  160. package/presets/codex/skills/security-red-team/SKILL.md +44 -0
  161. package/presets/codex/skills/security-reverse-engineering/SKILL.md +44 -0
  162. package/presets/codex/skills/security-soc-automation/SKILL.md +43 -0
  163. package/presets/codex/skills/security-threat-hunting/SKILL.md +43 -0
  164. package/presets/codex/skills/security-vuln-assessment/SKILL.md +45 -0
  165. package/presets/codex/skills/security-web/SKILL.md +44 -0
  166. package/presets/codex/skills/seo-analytics-injector/SKILL.md +43 -0
  167. package/presets/codex/skills/spring-auth-auditor/SKILL.md +29 -0
  168. package/presets/codex/skills/spring-boot-feature/SKILL.md +2 -2
  169. package/presets/codex/skills/spring-boot-kotlin/SKILL.md +1 -1
  170. package/presets/codex/skills/spring-boot-testing-strategy/SKILL.md +475 -0
  171. package/presets/codex/skills/sqlalchemy/SKILL.md +1 -1
  172. package/presets/codex/skills/tailwind-responsive-auditor/SKILL.md +29 -0
  173. package/presets/codex/skills/tdd-mutation-tester/SKILL.md +27 -0
  174. package/presets/codex/skills/testing-strategy/SKILL.md +1 -1
  175. package/presets/cursor/commands/cc/api-contract.md +4 -5
  176. package/presets/cursor/commands/cc/backlog.md +4 -5
  177. package/presets/cursor/commands/cc/clarify.md +4 -5
  178. package/presets/cursor/commands/cc/council.md +4 -5
  179. package/presets/cursor/commands/cc/db-migration.md +4 -5
  180. package/presets/cursor/commands/cc/explore.md +4 -5
  181. package/presets/cursor/commands/cc/feature.md +4 -5
  182. package/presets/cursor/commands/cc/fix.md +4 -5
  183. package/presets/cursor/commands/cc/handoff.md +8 -5
  184. package/presets/cursor/commands/cc/iterative.md +4 -5
  185. package/presets/cursor/commands/cc/odd.md +4 -3
  186. package/presets/cursor/commands/cc/openspec.md +6 -7
  187. package/presets/cursor/commands/cc/pagespeed.md +6 -8
  188. package/presets/cursor/commands/cc/prototype.md +4 -5
  189. package/presets/cursor/commands/cc/refactor.md +4 -5
  190. package/presets/cursor/commands/cc/review.md +35 -5
  191. package/presets/cursor/commands/cc/scorecard.md +4 -5
  192. package/presets/cursor/commands/cc/security.md +5 -6
  193. package/presets/cursor/commands/cc/spec-mutation.md +4 -5
  194. package/presets/cursor/commands/cc/tdd-cycle.md +4 -5
  195. package/presets/cursor/commands/cc/test-plan.md +4 -5
  196. package/presets/cursor/commands/cc/triage.md +4 -5
  197. package/presets/cursor/skills/android/SKILL.md +1 -1
  198. package/presets/cursor/skills/api-versioning/SKILL.md +2 -1
  199. package/presets/cursor/skills/astro/SKILL.md +1 -1
  200. package/presets/cursor/skills/auth-token-inspector/SKILL.md +1 -1
  201. package/presets/cursor/skills/code-review/SKILL.md +1 -1
  202. package/presets/cursor/skills/django-orm/SKILL.md +3 -5
  203. package/presets/cursor/skills/django-testing/SKILL.md +1 -1
  204. package/presets/cursor/skills/django-uv/SKILL.md +1 -1
  205. package/presets/cursor/skills/drizzle-schema-architect/SKILL.md +1 -1
  206. package/presets/cursor/skills/fastapi-pydantic-strict/SKILL.md +1 -1
  207. package/presets/cursor/skills/jpa-nplusone-detector/SKILL.md +1 -1
  208. package/presets/cursor/skills/jpa-postgres/SKILL.md +2 -4
  209. package/presets/cursor/skills/livewire-alpine-bridge/SKILL.md +1 -1
  210. package/presets/cursor/skills/nextjs-typescript/SKILL.md +1 -1
  211. package/presets/cursor/skills/pagespeed-perf/SKILL.md +1 -1
  212. package/presets/cursor/skills/python/SKILL.md +6 -7
  213. package/presets/cursor/skills/python-django-stack/SKILL.md +1 -1
  214. package/presets/cursor/skills/python-fastapi-stack/SKILL.md +1 -1
  215. package/presets/cursor/skills/security/SKILL.md +1 -1
  216. package/presets/cursor/skills/seo-analytics-injector/SKILL.md +1 -1
  217. package/presets/cursor/skills/spring-auth-auditor/SKILL.md +1 -1
  218. package/presets/cursor/skills/spring-boot-feature/SKILL.md +2 -4
  219. package/presets/cursor/skills/spring-boot-kotlin/SKILL.md +1 -1
  220. package/presets/cursor/skills/spring-boot-testing-strategy/SKILL.md +1 -1
  221. package/presets/cursor/skills/sqlalchemy/SKILL.md +1 -1
  222. package/presets/cursor/skills/tailwind-responsive-auditor/SKILL.md +1 -1
  223. package/presets/cursor/skills/tdd-mutation-tester/SKILL.md +1 -1
  224. package/presets/gemini/commands/cc/api-contract.toml +4 -5
  225. package/presets/gemini/commands/cc/backlog.toml +4 -5
  226. package/presets/gemini/commands/cc/clarify.toml +4 -5
  227. package/presets/gemini/commands/cc/council.toml +4 -5
  228. package/presets/gemini/commands/cc/db-migration.toml +4 -5
  229. package/presets/gemini/commands/cc/explore.toml +4 -5
  230. package/presets/gemini/commands/cc/feature.toml +4 -5
  231. package/presets/gemini/commands/cc/fix.toml +4 -5
  232. package/presets/gemini/commands/cc/handoff.toml +8 -5
  233. package/presets/gemini/commands/cc/iterative.toml +4 -5
  234. package/presets/gemini/commands/cc/odd.toml +4 -3
  235. package/presets/gemini/commands/cc/openspec.toml +6 -7
  236. package/presets/gemini/commands/cc/pagespeed.toml +6 -8
  237. package/presets/gemini/commands/cc/prototype.toml +4 -5
  238. package/presets/gemini/commands/cc/refactor.toml +4 -5
  239. package/presets/gemini/commands/cc/review.toml +35 -5
  240. package/presets/gemini/commands/cc/scorecard.toml +4 -5
  241. package/presets/gemini/commands/cc/security.toml +5 -6
  242. package/presets/gemini/commands/cc/spec-mutation.toml +4 -5
  243. package/presets/gemini/commands/cc/tdd-cycle.toml +4 -5
  244. package/presets/gemini/commands/cc/test-plan.toml +4 -5
  245. package/presets/gemini/commands/cc/triage.toml +4 -5
  246. package/presets/opencode/README.md +45 -52
  247. package/presets/opencode/commands/cc-api-contract.md +4 -5
  248. package/presets/opencode/commands/cc-backlog.md +4 -5
  249. package/presets/opencode/commands/cc-clarify.md +4 -5
  250. package/presets/opencode/commands/cc-council.md +4 -5
  251. package/presets/opencode/commands/cc-db-migration.md +4 -5
  252. package/presets/opencode/commands/cc-explore.md +4 -5
  253. package/presets/opencode/commands/cc-feature.md +4 -5
  254. package/presets/opencode/commands/cc-fix.md +4 -5
  255. package/presets/opencode/commands/cc-handoff.md +8 -5
  256. package/presets/opencode/commands/cc-iterative.md +4 -5
  257. package/presets/opencode/commands/cc-odd.md +4 -3
  258. package/presets/opencode/commands/cc-openspec.md +6 -7
  259. package/presets/opencode/commands/cc-pagespeed.md +6 -8
  260. package/presets/opencode/commands/cc-prototype.md +4 -5
  261. package/presets/opencode/commands/cc-refactor.md +4 -5
  262. package/presets/opencode/commands/cc-review.md +35 -5
  263. package/presets/opencode/commands/cc-scorecard.md +4 -5
  264. package/presets/opencode/commands/cc-security.md +5 -6
  265. package/presets/opencode/commands/cc-spec-mutation.md +4 -5
  266. package/presets/opencode/commands/cc-tdd-cycle.md +4 -5
  267. package/presets/opencode/commands/cc-test-plan.md +4 -5
  268. package/presets/opencode/commands/cc-triage.md +4 -5
  269. package/presets/opencode/opencode.jsonc +1 -1
  270. package/presets/opencode/skills/android/SKILL.md +1 -1
  271. package/presets/opencode/skills/api-versioning/SKILL.md +2 -1
  272. package/presets/opencode/skills/astro/SKILL.md +1 -1
  273. package/presets/opencode/skills/auth-token-inspector/SKILL.md +1 -1
  274. package/presets/opencode/skills/code-review/SKILL.md +1 -1
  275. package/presets/opencode/skills/django-orm/SKILL.md +3 -3
  276. package/presets/opencode/skills/django-testing/SKILL.md +1 -1
  277. package/presets/opencode/skills/django-uv/SKILL.md +1 -1
  278. package/presets/opencode/skills/drizzle-schema-architect/SKILL.md +1 -1
  279. package/presets/opencode/skills/fastapi-pydantic-strict/SKILL.md +1 -1
  280. package/presets/opencode/skills/jpa-nplusone-detector/SKILL.md +1 -1
  281. package/presets/opencode/skills/jpa-postgres/SKILL.md +2 -1
  282. package/presets/opencode/skills/livewire-alpine-bridge/SKILL.md +1 -1
  283. package/presets/opencode/skills/nextjs-typescript/SKILL.md +1 -1
  284. package/presets/opencode/skills/pagespeed-perf/SKILL.md +1 -1
  285. package/presets/opencode/skills/python/SKILL.md +6 -5
  286. package/presets/opencode/skills/python-django-stack/SKILL.md +1 -1
  287. package/presets/opencode/skills/python-fastapi-stack/SKILL.md +1 -1
  288. package/presets/opencode/skills/security/SKILL.md +1 -1
  289. package/presets/opencode/skills/seo-analytics-injector/SKILL.md +1 -1
  290. package/presets/opencode/skills/spring-auth-auditor/SKILL.md +1 -1
  291. package/presets/opencode/skills/spring-boot-feature/SKILL.md +2 -1
  292. package/presets/opencode/skills/spring-boot-kotlin/SKILL.md +1 -1
  293. package/presets/opencode/skills/spring-boot-testing-strategy/SKILL.md +1 -1
  294. package/presets/opencode/skills/sqlalchemy/SKILL.md +1 -1
  295. package/presets/opencode/skills/tailwind-responsive-auditor/SKILL.md +1 -1
  296. package/presets/opencode/skills/tdd-mutation-tester/SKILL.md +1 -1
  297. package/presets/seo-hotel/skills/astro-seo/SKILL.md +1 -1
  298. package/presets/seo-hotel/skills/geo-readiness/SKILL.md +1 -1
  299. package/presets/seo-hotel/skills/off-page/SKILL.md +1 -1
  300. package/presets/seo-hotel/skills/schema-validator/SKILL.md +1 -1
  301. package/presets/seo-hotel/skills/seo-audit/SKILL.md +1 -1
  302. package/presets/shared/invoke-hook.cjs +20 -5
  303. package/src/presets/manifests/codex.yml +3 -0
  304. package/src/presets/models/roles.yml +54 -56
  305. package/src/presets/shared-skills.yml +58 -22
@@ -0,0 +1,318 @@
1
+ ---
2
+ id: astro
3
+ name: astro
4
+ description: >
5
+ Provides expert knowledge for building Astro 5+ sites with Islands Architecture, Content Collections, TypeScript, and performance-first rendering strategies.
6
+
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: frontend
12
+
13
+ compatibility:
14
+ tools: [claude, codex, gemini, agy, opencode]
15
+ stacks:
16
+ languages: []
17
+ frameworks: []
18
+
19
+ risk:
20
+ level: low
21
+ can_execute_shell: false
22
+ can_modify_files: true
23
+ requires_network: false
24
+
25
+ inputs: []
26
+
27
+ outputs: []
28
+
29
+ quality:
30
+ reviewed_by: codeconductor-core
31
+ version: 0.1.0
32
+ ---
33
+
34
+
35
+
36
+ # Astro
37
+
38
+ ## Islands Architecture
39
+
40
+ Astro renders everything to static HTML by default. JavaScript ships only for
41
+ components that explicitly opt in — these are called Islands.
42
+
43
+ ### Hydration Directives
44
+
45
+ | Directive | When JS loads | Use case |
46
+ |-----------|--------------|----------|
47
+ | `client:load` | On page load | Interactive above-the-fold UI |
48
+ | `client:idle` | When browser is idle | Non-critical interactive widgets |
49
+ | `client:visible` | When element enters viewport | Below-the-fold islands |
50
+ | `client:media` | When CSS media query matches | Responsive interactive components |
51
+ | `client:only` | Client-only, no SSR | Components that require the DOM (e.g., charting libs) |
52
+
53
+ ```astro
54
+ ---
55
+ import Counter from '../components/Counter.tsx';
56
+ import HeavyChart from '../components/HeavyChart.tsx';
57
+ import MobileNav from '../components/MobileNav.tsx';
58
+ ---
59
+
60
+ <!-- Hydrates immediately — user interacts right away -->
61
+ <Counter client:load />
62
+
63
+ <!-- Hydrates when scrolled into view — saves initial JS -->
64
+ <HeavyChart client:visible />
65
+
66
+ <!-- Only on mobile, only when query matches -->
67
+ <MobileNav client:media="(max-width: 768px)" />
68
+ ```
69
+
70
+ Rules:
71
+
72
+ - Default to no hydration directive — most UI does not need JavaScript
73
+ - `client:load` is the most expensive directive; use it sparingly
74
+ - `client:only` skips server rendering entirely — the component receives no
75
+ props from the server; pass all data via props or fetch inside the component
76
+ - Do not use `client:load` for components that could use `client:visible`
77
+
78
+ ### Framework Components Inside Astro
79
+
80
+ ```astro
81
+ ---
82
+ import ReactButton from './Button.tsx'; // React island
83
+ import VueWidget from './Widget.vue'; // Vue island
84
+ ---
85
+
86
+ <!-- Both can coexist on the same page -->
87
+ <ReactButton client:idle label="Click me" />
88
+ <VueWidget client:visible />
89
+ ```
90
+
91
+ Each framework ships its own runtime only when at least one island of that
92
+ framework is on the page.
93
+
94
+ ## Content Collections
95
+
96
+ Content Collections provide type-safe access to Markdown, MDX, and data files.
97
+ Define schemas in `src/content/config.ts`.
98
+
99
+ ### Schema Definition
100
+
101
+ ```typescript
102
+ // src/content/config.ts
103
+ import { defineCollection, z } from 'astro:content';
104
+
105
+ const blog = defineCollection({
106
+ type: 'content', // .md or .mdx files
107
+ schema: z.object({
108
+ title: z.string(),
109
+ description: z.string(),
110
+ pubDate: z.coerce.date(),
111
+ updatedDate: z.coerce.date().optional(),
112
+ author: z.string().default('Anonymous'),
113
+ tags: z.array(z.string()).default([]),
114
+ draft: z.boolean().default(false),
115
+ image: z.object({
116
+ src: z.string(),
117
+ alt: z.string(),
118
+ }).optional(),
119
+ }),
120
+ });
121
+
122
+ const docs = defineCollection({
123
+ type: 'content',
124
+ schema: z.object({
125
+ title: z.string(),
126
+ order: z.number(),
127
+ section: z.enum(['guide', 'reference', 'tutorial']),
128
+ }),
129
+ });
130
+
131
+ export const collections = { blog, docs };
132
+ ```
133
+
134
+ ### Querying Collections
135
+
136
+ ```astro
137
+ ---
138
+ import { getCollection, getEntry } from 'astro:content';
139
+
140
+ // All published posts, sorted by date
141
+ const posts = (await getCollection('blog', ({ data }) => !data.draft))
142
+ .sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf());
143
+
144
+ // Single entry by slug
145
+ const post = await getEntry('blog', 'my-first-post');
146
+ const { Content } = await post.render();
147
+ ---
148
+
149
+ {posts.map(post => (
150
+ <article>
151
+ <h2><a href={`/blog/${post.slug}`}>{post.data.title}</a></h2>
152
+ <time>{post.data.pubDate.toLocaleDateString()}</time>
153
+ </article>
154
+ ))}
155
+ ```
156
+
157
+ ### Dynamic Routes from Collections
158
+
159
+ ```astro
160
+ ---
161
+ // src/pages/blog/[slug].astro
162
+ import { getCollection } from 'astro:content';
163
+
164
+ export async function getStaticPaths() {
165
+ const posts = await getCollection('blog');
166
+ return posts.map(post => ({
167
+ params: { slug: post.slug },
168
+ props: { post },
169
+ }));
170
+ }
171
+
172
+ const { post } = Astro.props;
173
+ const { Content, headings } = await post.render();
174
+ ---
175
+
176
+ <article>
177
+ <h1>{post.data.title}</h1>
178
+ <Content />
179
+ </article>
180
+ ```
181
+
182
+ ## Rendering Strategies
183
+
184
+ ### SSG (Static Site Generation) — default
185
+
186
+ Every page is pre-rendered at build time. Best for content that does not change
187
+ per request.
188
+
189
+ ```javascript
190
+ // astro.config.mjs — no output config needed; SSG is the default
191
+ export default defineConfig({
192
+ site: 'https://example.com',
193
+ });
194
+ ```
195
+
196
+ ### SSR (Server-Side Rendering)
197
+
198
+ Renders pages on each request. Required for: authenticated routes, personalized
199
+ content, live data.
200
+
201
+ ```javascript
202
+ // astro.config.mjs
203
+ import node from '@astrojs/node';
204
+
205
+ export default defineConfig({
206
+ output: 'server',
207
+ adapter: node({ mode: 'standalone' }),
208
+ });
209
+ ```
210
+
211
+ ### Hybrid Mode
212
+
213
+ Mix SSG and SSR on a per-page basis. Most pages are static; specific routes opt
214
+ into server rendering.
215
+
216
+ ```javascript
217
+ // astro.config.mjs
218
+ export default defineConfig({
219
+ output: 'hybrid',
220
+ adapter: node({ mode: 'standalone' }),
221
+ });
222
+ ```
223
+
224
+ ```astro
225
+ ---
226
+ // src/pages/dashboard.astro — this page is server-rendered
227
+ export const prerender = false;
228
+
229
+ // src/pages/about.astro — this page is statically generated (hybrid default)
230
+ export const prerender = true;
231
+ ---
232
+ ```
233
+
234
+ Use hybrid mode when: most content is static but a few routes need auth or
235
+ live data. Do not make everything `output: 'server'` — you lose the performance
236
+ benefits of static generation.
237
+
238
+ ## Image Optimization
239
+
240
+ Use the built-in `<Image>` and `<Picture>` components. Never use raw `<img>`
241
+ for local assets — you lose automatic optimization.
242
+
243
+ ```astro
244
+ ---
245
+ import { Image, Picture } from 'astro:assets';
246
+ import heroImage from '../assets/hero.png';
247
+ ---
248
+
249
+ <!-- Optimized single image -->
250
+ <Image
251
+ src={heroImage}
252
+ alt="Hero illustration"
253
+ width={800}
254
+ height={600}
255
+ format="webp"
256
+ quality={80}
257
+ />
258
+
259
+ <!-- Responsive with multiple formats -->
260
+ <Picture
261
+ src={heroImage}
262
+ formats={['avif', 'webp']}
263
+ alt="Hero illustration"
264
+ widths={[400, 800, 1200]}
265
+ sizes="(max-width: 800px) 100vw, 800px"
266
+ />
267
+ ```
268
+
269
+ Rules:
270
+
271
+ - Always provide `alt` — empty string is acceptable only for decorative images
272
+ - Prefer `avif` + `webp` fallback for best compression
273
+ - Use `widths` + `sizes` on above-the-fold images to serve the right size per
274
+ viewport
275
+ - Remote images require explicit `width` and `height` to prevent layout shift
276
+
277
+ ## Project Structure
278
+
279
+ ```text
280
+ src/
281
+ assets/ — images and static assets processed by Astro
282
+ components/ — .astro components (and framework islands)
283
+ content/
284
+ blog/ — .md and .mdx files
285
+ config.ts — collection schemas
286
+ layouts/ — page shell layouts
287
+ pages/ — file-based routing; every file is a route
288
+ styles/ — global CSS
289
+ astro.config.mjs
290
+ tsconfig.json
291
+ ```
292
+
293
+ Colocation rule: put framework island components (`.tsx`, `.vue`) in
294
+ `src/components/`. Do not scatter them in `src/pages/`.
295
+
296
+ ## TypeScript Conventions
297
+
298
+ ```json
299
+ // tsconfig.json — use the strict Astro preset
300
+ {
301
+ "extends": "astro/tsconfigs/strict"
302
+ }
303
+ ```
304
+
305
+ ```astro
306
+ ---
307
+ // Type props explicitly in the frontmatter
308
+ interface Props {
309
+ title: string;
310
+ description?: string;
311
+ tags: string[];
312
+ }
313
+
314
+ const { title, description = '', tags } = Astro.props;
315
+ ---
316
+ ```
317
+
318
+ Astro infers prop types from `interface Props` automatically. Do not use `any`.
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: auth-token-inspector
3
+ name: auth-token-inspector
4
+ description: >
5
+ Audits token storage mechanisms to prevent XSS-based JWT theft.
6
+ user-invokable: true
7
+ license: MIT
8
+ metadata:
9
+ author: lgzarturo
10
+ category: security
11
+ compatibility:
12
+ tools: [claude, codex, gemini, agy, opencode]
13
+ stacks:
14
+ languages: [typescript, javascript, python, kotlin, java, php]
15
+ ---
16
+ # Auth Token Inspector
17
+
18
+ ## Core Principles
19
+
20
+ 1. **Secure Storage**: JWTs or session tokens must NOT be stored in `localStorage` or `sessionStorage` due to vulnerability to Cross-Site Scripting (XSS).
21
+ 2. **HttpOnly Cookies**: Deliver tokens via `HttpOnly`, `Secure`, and `SameSite=Strict` (or `Lax`) cookies to protect them from client-side JS access.
22
+ 3. **Short Expiration**: Ensure access tokens have short expiration times, and implement secure, rotation-enabled refresh tokens stored in cookies.
23
+
24
+ ## Storage Comparison
25
+
26
+ | Storage Mode | Vulnerable to XSS | Vulnerable to CSRF | Recommended |
27
+ | :--- | :--- | :--- | :--- |
28
+ | **localStorage** | Yes (High Risk) | No | **NO** |
29
+ | **sessionStorage** | Yes (High Risk) | No | **NO** |
30
+ | **HttpOnly Cookie** | No (Secure) | Yes (Mitigated via SameSite/Tokens) | **YES** |
@@ -0,0 +1,207 @@
1
+ ---
2
+ id: code-review
3
+ name: code-review
4
+ description: >
5
+ Provides a structured framework for conducting thorough code reviews covering correctness, security, architecture alignment, performance, and technical debt.
6
+
7
+ user-invokable: true
8
+ license: MIT
9
+ metadata:
10
+ author: lgzarturo
11
+ category: review
12
+
13
+ compatibility:
14
+ tools: [claude, codex, gemini, agy, opencode]
15
+ stacks:
16
+ languages: []
17
+ frameworks: []
18
+
19
+ risk:
20
+ level: low
21
+ can_execute_shell: false
22
+ can_modify_files: true
23
+ requires_network: false
24
+
25
+ inputs: []
26
+
27
+ outputs: []
28
+
29
+ quality:
30
+ reviewed_by: codeconductor-core
31
+ version: 0.1.0
32
+ ---
33
+
34
+
35
+
36
+ # Code Review
37
+
38
+ ## Review Axes
39
+
40
+ Every finding must reference exactly one axis. This prevents vague feedback and
41
+ makes it actionable.
42
+
43
+ | Axis | What to check |
44
+ |------|--------------|
45
+ | **Correctness** | Does the logic handle all cases in the acceptance criteria? |
46
+ | **Security** | Injection vectors, secret exposure, auth bypasses, insecure defaults |
47
+ | **Architecture** | Does the code follow existing patterns and module boundaries? |
48
+ | **Performance** | N+1 queries, unnecessary allocations, blocking I/O in hot paths |
49
+ | **Error handling** | Are failure cases handled explicitly and safely? |
50
+ | **Test coverage** | Do tests verify the acceptance criteria, not just happy paths? |
51
+ | **Scope** | Are there changes outside the stated task boundary? |
52
+ | **Technical debt** | Does the implementation introduce debt without acknowledging it? |
53
+
54
+ ## Finding Categories
55
+
56
+ ### CRITICAL — must be resolved before merge
57
+
58
+ - Logic failures that violate acceptance criteria
59
+ - Security vulnerabilities (injection, auth bypass, secret exposure)
60
+ - Data loss or corruption risk
61
+ - Breaking changes to public API or shared contracts
62
+ - Missing error handling that causes silent failures
63
+
64
+ ### WARNING — should be resolved before merge
65
+
66
+ - Missing edge case coverage in tests
67
+ - Scope creep (changes outside the task boundary)
68
+ - Pattern inconsistency that will confuse future maintainers
69
+ - Performance issue that will degrade under load
70
+ - Missing input validation at system boundaries
71
+
72
+ ### SUGGESTION — optional improvement
73
+
74
+ - Naming clarity improvements
75
+ - Extracting a reusable abstraction
76
+ - Test readability
77
+ - Documentation gaps on non-obvious behavior
78
+
79
+ ## Review Report Format
80
+
81
+ ```markdown
82
+ ## Review Report
83
+
84
+ **Task**: [objective from task card]
85
+ **Verdict**: [approved | approved with warnings | blocked]
86
+
87
+ ---
88
+
89
+ ### CRITICAL
90
+
91
+ - [ ] [C1] `path/to/file:line` — [description]
92
+ Axis: [axis] | Evidence: `[quoted code]` | Required action: [what must change]
93
+
94
+ _(none)_ if no critical findings
95
+
96
+ ### WARNING
97
+
98
+ - [ ] [W1] `path/to/file:line` — [description]
99
+ Axis: [axis] | Recommended action: [what should change]
100
+
101
+ _(none)_ if no warning findings
102
+
103
+ ### SUGGESTION
104
+
105
+ - [ ] [S1] — [description] | Rationale: [brief reason]
106
+
107
+ _(none)_ if no suggestions
108
+
109
+ ### Summary
110
+
111
+ - Critical: [count] | Warning: [count] | Suggestion: [count]
112
+ - **Verdict justification**: [one sentence]
113
+ ```
114
+
115
+ **Verdict rules:**
116
+
117
+ - `blocked` — any CRITICAL finding present
118
+ - `approved with warnings` — no CRITICAL, at least one WARNING
119
+ - `approved` — no CRITICAL, no WARNING
120
+
121
+ ## What to Check — by Axis
122
+
123
+ ### Correctness
124
+
125
+ - Does every acceptance criterion have a corresponding code path?
126
+ - Are null/empty/zero values handled explicitly?
127
+ - Are boundary conditions checked (off-by-one, empty collections, max values)?
128
+ - Do conditional branches cover all cases (exhaustive when/switch)?
129
+
130
+ ### Security
131
+
132
+ ```text
133
+ Injection: SQL, command, LDAP, XML — is input sanitized or parameterized?
134
+ Auth: is the endpoint protected? are role checks correct?
135
+ Secrets: no hardcoded credentials, tokens, or keys in source
136
+ Headers: are security headers set (CSP, HSTS, X-Frame-Options)?
137
+ CORS: is the origin whitelist explicit, not wildcard?
138
+ Dependencies: are new dependencies from trusted sources?
139
+ ```
140
+
141
+ ### Performance
142
+
143
+ ```text
144
+ N+1 queries: does a loop call the database per iteration?
145
+ Eager loading: are JOINs or includes used where needed?
146
+ Pagination: are all list endpoints paginated?
147
+ Caching: is expensive computation cached at an appropriate layer?
148
+ Index: do new query filters have corresponding DB indexes?
149
+ ```
150
+
151
+ ### Error Handling
152
+
153
+ ```text
154
+ Are exceptions caught at the right layer (not swallowed silently)?
155
+ Is the error response format consistent with the rest of the API?
156
+ Is the original exception logged before translating to a user-facing error?
157
+ Are transient failures retried with backoff, or propagated immediately?
158
+ ```
159
+
160
+ ## What NOT to Flag
161
+
162
+ **Personal style preferences.** If the code follows the project's established
163
+ conventions, do not flag it because you would have written it differently.
164
+
165
+ **Trivial naming.** Variable names are a SUGGESTION at most, never a WARNING.
166
+ Do not block a PR over naming unless the name is genuinely misleading.
167
+
168
+ **Tests for trivial code.** Do not demand tests for getters, setters, or data
169
+ class construction. Test behavior, not boilerplate.
170
+
171
+ **Refactors not in scope.** If you notice an improvement opportunity outside
172
+ the task boundary, log it as a SUGGESTION. Do not block the PR for work that
173
+ was not requested.
174
+
175
+ **Framework defaults.** Do not second-guess framework conventions (Spring
176
+ dependency injection, Next.js file-based routing). Trust the framework.
177
+
178
+ ## Exact Diff Recommendations
179
+
180
+ When a finding requires a code change, provide the exact replacement:
181
+
182
+ ```text
183
+ # Current code (path/to/file:42)
184
+ val user = userRepository.findById(id)
185
+ return user.name // NPE if not found
186
+
187
+ # Recommended fix
188
+ val user = userRepository.findById(id)
189
+ ?: throw NotFoundException("User $id not found")
190
+ return user.name
191
+ ```
192
+
193
+ Vague instructions ("handle the null case") force the author to guess your
194
+ intent. Exact diffs remove ambiguity and speed up the review cycle.
195
+
196
+ ## Prioritization Order
197
+
198
+ When multiple findings exist, address them in this order:
199
+
200
+ 1. Security — security issues can silently compromise users or data
201
+ 2. Correctness — broken behavior defeats the purpose of the change
202
+ 3. Error handling — silent failures are hard to debug in production
203
+ 4. Test coverage — gaps mean regressions will be invisible
204
+ 5. Performance — degrade gradually; fix before it causes incidents
205
+ 6. Architecture — inconsistency compounds over time
206
+ 7. Technical debt — acknowledge and track; do not always block for it
207
+ 8. Suggestions — apply at author's discretion
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  id: django-orm
3
- name: Django ORM
3
+ name: django-orm
4
4
  description: >
5
5
  Django ORM patterns for multi-tenant POS projects: efficient queries,
6
6
  bulk operations, transactions, and multi-schema upload paths.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  id: django-testing
3
- name: Django Testing
3
+ name: django-testing
4
4
  description: >
5
5
  Testing patterns for multi-tenant Django POS projects using pytest-django,
6
6
  RequestFactory, and mocks. No factories, no complex conftest.