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** |
@@ -15,11 +15,10 @@ API contract request: $ARGUMENTS
15
15
 
16
16
  Command: `api-contract` (fixed for this workflow — do not infer from user text)
17
17
 
18
- 1. Run: `npx cc-codeconductor ccep parse --command api-contract "$ARGUMENTS" --output json`
19
- 2. Run: `npx cc-codeconductor ccep resolve --command api-contract "$ARGUMENTS" --output json`
20
- 3. Run: `npx cc-codeconductor ccep profile api-contract --output json`
21
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command api-contract --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
22
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
18
+ 1. Run: `npx cc-codeconductor ccep profile api-contract --output json` to get the phases and their roles.
19
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command api-contract --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
20
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command api-contract --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
21
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
23
22
 
24
23
  ---
25
24
 
@@ -20,11 +20,10 @@ deliver implementation — that is `/cc-openspec`.
20
20
 
21
21
  Command: `backlog` (fixed for this workflow — do not infer from user text)
22
22
 
23
- 1. Run: `npx cc-codeconductor ccep parse --command backlog "$ARGUMENTS" --output json`
24
- 2. Run: `npx cc-codeconductor ccep resolve --command backlog "$ARGUMENTS" --output json`
25
- 3. Run: `npx cc-codeconductor ccep profile backlog --output json`
26
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command backlog --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
27
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
23
+ 1. Run: `npx cc-codeconductor ccep profile backlog --output json` to get the phases and their roles.
24
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command backlog --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
25
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command backlog --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
26
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
28
27
 
29
28
  ---
30
29
 
@@ -15,11 +15,10 @@ Clarify request: $ARGUMENTS
15
15
 
16
16
  Command: `clarify` (fixed for this workflow — do not infer from user text)
17
17
 
18
- 1. Run: `npx cc-codeconductor ccep parse --command clarify "$ARGUMENTS" --output json`
19
- 2. Run: `npx cc-codeconductor ccep resolve --command clarify "$ARGUMENTS" --output json`
20
- 3. Run: `npx cc-codeconductor ccep profile clarify --output json`
21
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command clarify --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
22
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
18
+ 1. Run: `npx cc-codeconductor ccep profile clarify --output json` to get the phases and their roles.
19
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command clarify --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
20
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command clarify --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
21
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
23
22
 
24
23
  ---
25
24
 
@@ -7,6 +7,12 @@ description: Council-driven workflow with CCEP-1 bootstrap
7
7
 
8
8
  Invoke as `$cc-council`. The user request follows the skill mention.
9
9
 
10
+ ## Council context budget
11
+
12
+ Use GPT-6.1 Sol with medium reasoning effort. Give each necessary council role
13
+ the same short evidence summary and relevant diff. Reuse those findings in the
14
+ verdict; avoid spawning roles for questions already answered by evidence.
15
+
10
16
  # Council-Driven Workflow
11
17
 
12
18
  Task request: $ARGUMENTS
@@ -16,11 +22,10 @@ Task request: $ARGUMENTS
16
22
  Command: `council` (fixed for this workflow — do not infer from user text)
17
23
  command: council
18
24
 
19
- 1. Run: `npx cc-codeconductor ccep parse --command council "$ARGUMENTS" --output json`
20
- 2. Run: `npx cc-codeconductor ccep resolve --command council "$ARGUMENTS" --output json`
21
- 3. Run: `npx cc-codeconductor ccep profile council --output json`
22
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command council --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
23
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
25
+ 1. Run: `npx cc-codeconductor ccep profile council --output json` to get the phases and their roles.
26
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command council --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
27
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command council --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
28
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
24
29
 
25
30
  ---
26
31
 
@@ -15,11 +15,10 @@ Migration request: $ARGUMENTS
15
15
 
16
16
  Command: `db-migration` (fixed for this workflow — do not infer from user text)
17
17
 
18
- 1. Run: `npx cc-codeconductor ccep parse --command db-migration "$ARGUMENTS" --output json`
19
- 2. Run: `npx cc-codeconductor ccep resolve --command db-migration "$ARGUMENTS" --output json`
20
- 3. Run: `npx cc-codeconductor ccep profile db-migration --output json`
21
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command db-migration --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
22
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
18
+ 1. Run: `npx cc-codeconductor ccep profile db-migration --output json` to get the phases and their roles.
19
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command db-migration --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
20
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command db-migration --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
21
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
23
22
  Canonical delivery order is test-before-implement whenever both phases apply.
24
23
 
25
24
  ---
@@ -15,11 +15,10 @@ Explore request: $ARGUMENTS
15
15
 
16
16
  Command: `explore` (fixed for this workflow — do not infer from user text)
17
17
 
18
- 1. Run: `npx cc-codeconductor ccep parse --command explore "$ARGUMENTS" --output json`
19
- 2. Run: `npx cc-codeconductor ccep resolve --command explore "$ARGUMENTS" --output json`
20
- 3. Run: `npx cc-codeconductor ccep profile explore --output json`
21
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command explore --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
22
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
18
+ 1. Run: `npx cc-codeconductor ccep profile explore --output json` to get the phases and their roles.
19
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command explore --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
20
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command explore --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
21
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
23
22
 
24
23
  ---
25
24
 
@@ -39,11 +39,10 @@ unavailable visual or emulator checks remain pending rather than claimed complet
39
39
 
40
40
  Command: `feature` (fixed for this workflow — do not infer from user text)
41
41
 
42
- 1. Run: `npx cc-codeconductor ccep parse --command feature "$ARGUMENTS" --output json`
43
- 2. Run: `npx cc-codeconductor ccep resolve --command feature "$ARGUMENTS" --output json`
44
- 3. Run: `npx cc-codeconductor ccep profile feature --output json`
45
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command feature --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
46
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
42
+ 1. Run: `npx cc-codeconductor ccep profile feature --output json` to get the phases and their roles.
43
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command feature --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
44
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command feature --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
45
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
47
46
  Canonical delivery order is test-before-implement whenever both phases apply.
48
47
 
49
48
  ---
@@ -47,11 +47,10 @@ unavailable visual or emulator checks remain pending rather than claimed complet
47
47
 
48
48
  Command: `fix` (fixed for this workflow — do not infer from user text)
49
49
 
50
- 1. Run: `npx cc-codeconductor ccep parse --command fix "$ARGUMENTS" --output json`
51
- 2. Run: `npx cc-codeconductor ccep resolve --command fix "$ARGUMENTS" --output json`
52
- 3. Run: `npx cc-codeconductor ccep profile fix --output json`
53
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command fix --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
54
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
50
+ 1. Run: `npx cc-codeconductor ccep profile fix --output json` to get the phases and their roles.
51
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command fix --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
52
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command fix --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
53
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
55
54
  Canonical delivery order is test-before-implement whenever both phases apply.
56
55
 
57
56
  ---
@@ -15,11 +15,10 @@ Handoff request: $ARGUMENTS
15
15
 
16
16
  Command: `handoff` (fixed for this workflow — do not infer from user text)
17
17
 
18
- 1. Run: `npx cc-codeconductor ccep parse --command handoff "$ARGUMENTS" --output json`
19
- 2. Run: `npx cc-codeconductor ccep resolve --command handoff "$ARGUMENTS" --output json`
20
- 3. Run: `npx cc-codeconductor ccep profile handoff --output json`
21
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command handoff --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
22
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
18
+ 1. Run: `npx cc-codeconductor ccep profile handoff --output json` to get the phases and their roles.
19
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command handoff --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
20
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command handoff --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
21
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
23
22
 
24
23
  ---
25
24
 
@@ -38,6 +37,10 @@ pass/fail (not log dumps), open questions, the next `$cc-` command, plus links
38
37
  to the Delivery Ledger and verification evidence when they exist. Do not repeat
39
38
  the original request or transcript.
40
39
 
40
+ If a Delivery Ledger exists, run `npx cc-codeconductor odd handoff --id <ledger-id> --output json`
41
+ and use its `handoff` envelope as the source for these fields. Secret redaction
42
+ still applies.
43
+
41
44
  Do not edit source or tests.
42
45
 
43
46
  ---
@@ -17,11 +17,10 @@ Iterative request: $ARGUMENTS
17
17
 
18
18
  Command: `iterative` (fixed for this workflow — do not infer from user text)
19
19
 
20
- 1. Run: `npx cc-codeconductor ccep parse --command iterative "$ARGUMENTS" --output json`
21
- 2. Run: `npx cc-codeconductor ccep resolve --command iterative "$ARGUMENTS" --output json`
22
- 3. Run: `npx cc-codeconductor ccep profile iterative --output json`
23
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command iterative --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
24
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
20
+ 1. Run: `npx cc-codeconductor ccep profile iterative --output json` to get the phases and their roles.
21
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command iterative --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
22
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command iterative --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
23
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
25
24
  Canonical delivery order is test-before-implement whenever both phases apply.
26
25
 
27
26
  ---
@@ -12,11 +12,12 @@ Invoke as `$cc-odd`. The user request follows the skill mention.
12
12
  ## Step 0 — CCEP Bootstrap
13
13
 
14
14
  ```bash
15
- bun run dev ccep parse --command odd "$ARGUMENTS"
16
- bun run dev ccep resolve --command odd "$ARGUMENTS"
17
- bun run dev ccep profile --command odd
15
+ bun run dev ccep profile odd --output json
16
+ bun run dev ccep compile --command odd --phase <phase-id> "$ARGUMENTS" --view prompt --output json
18
17
  ```
19
18
 
19
+ Pass each subagent only the compiled `prompt` for its phase.
20
+
20
21
  Create a ledger only after authorization and tracked coordination. Read-only and small work do not create state.
21
22
 
22
23
  When ODD has verification evidence, include its RDD receipt in the ledger
@@ -7,6 +7,12 @@ description: Run OpenSpec backlog delivery — validate BACKLOG.md, plan TaskCar
7
7
 
8
8
  Invoke as `$cc-openspec`. The user request follows the skill mention.
9
9
 
10
+ ## Model and context budget
11
+
12
+ Use GPT-6.1 Sol with medium reasoning effort for every OpenSpec phase. Pass each
13
+ role only its current TaskCard, relevant file paths, acceptance criteria, and a
14
+ short handoff. Avoid replaying the full transcript or re-reading large files.
15
+
10
16
  # OpenSpec Backlog Workflow
11
17
 
12
18
  Scope: $ARGUMENTS
@@ -43,11 +49,10 @@ unavailable visual or emulator checks remain pending rather than claimed complet
43
49
 
44
50
  Command: `openspec` (fixed for this workflow — do not infer from user text)
45
51
 
46
- 1. Run: `npx cc-codeconductor ccep parse --command openspec "$ARGUMENTS" --output json`
47
- 2. Run: `npx cc-codeconductor ccep resolve --command openspec "$ARGUMENTS" --output json`
48
- 3. Run: `npx cc-codeconductor ccep profile openspec --output json`
49
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command openspec --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
50
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
52
+ 1. Run: `npx cc-codeconductor ccep profile openspec --output json` to get the phases and their roles.
53
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command openspec --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
54
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command openspec --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
55
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
51
56
  Canonical delivery order is test-before-implement whenever both phases apply.
52
57
 
53
58
  ---
@@ -158,7 +163,7 @@ For each pending TaskCard, run:
158
163
  npx cc-codeconductor openspec next
159
164
  ```
160
165
 
161
- Invoke the agent named on the card with **isolated** context (`/clear` between phases unless continuation is required):
166
+ Invoke the agent named on the card as a subagent with **isolated** context (subagents already start fresh; do not `/clear` the main session between phases):
162
167
 
163
168
  | Phase | Agent | Role |
164
169
  |-------|-------|------|
@@ -214,4 +219,4 @@ Report completion: Task Cards executed, scorecard verdict, change folder path, f
214
219
 
215
220
  ## Skill
216
221
 
217
- Apply `.claude/skills/openspec/SKILL.md` for backlog format rules and state transitions.
222
+ Apply `.codex/skills/openspec/SKILL.md` for backlog format rules and state transitions.
@@ -17,11 +17,10 @@ Produces a prioritized report in the current working directory.
17
17
 
18
18
  Command: `pagespeed` (fixed for this workflow — do not infer from user text)
19
19
 
20
- 1. Run: `npx cc-codeconductor ccep parse --command pagespeed "$ARGUMENTS" --output json`
21
- 2. Run: `npx cc-codeconductor ccep resolve --command pagespeed "$ARGUMENTS" --output json`
22
- 3. Run: `npx cc-codeconductor ccep profile pagespeed --output json`
23
- 4. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command pagespeed --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
24
- 5. Delegate to subagents using compiled CCEP prompts — never forward raw `$ARGUMENTS` to planners.
20
+ 1. Run: `npx cc-codeconductor ccep profile pagespeed --output json` to get the phases and their roles.
21
+ 2. For each delegated phase, run: `npx cc-codeconductor ccep compile --command pagespeed --phase <phase-id> "$ARGUMENTS" --view prompt --output json`
22
+ 3. After planner/intake JSON is available, run: `npx cc-codeconductor ccep evaluate --command pagespeed --input <planner.json> --output json`. If `stop` is true, show questions or risks and wait for human input.
23
+ 4. Pass each subagent only the compiled `prompt` for its phase — never forward raw `$ARGUMENTS` to planners.
25
24
 
26
25
  ---
27
26
 
@@ -72,9 +71,8 @@ the following steps in order:
72
71
  the output filename: `{YYYY-MM-DD}_pagespeed-{hostname}-claude.md`.
73
72
 
74
73
  2. **Collect** — Call the PageSpeed Insights API for the requested strategy
75
- (`mobile`, `desktop`, or `both`). Prefer the Bun scripts in
76
- `~/.claude/skills/pagespeed-perf/scripts/run.ts` if Bun is available.
77
- Otherwise, use `WebFetch` to call the PSI endpoint directly.
74
+ (`mobile`, `desktop`, or `both`) using `WebFetch` to call the PSI endpoint
75
+ directly.
78
76
 
79
77
  3. **Analyze** — Extract Core Web Vitals (LCP, INP, CLS, FCP, TTFB, TBT),
80
78
  identify the LCP element, enumerate third-party scripts by blocking time,