dsh-ecc-skills 0.4.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 (278) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +99 -0
  3. package/cordis.patch.yml +5 -0
  4. package/lib/index.js +195 -0
  5. package/package.json +46 -0
  6. package/skills/accessibility/SKILL.md +147 -0
  7. package/skills/agent-architecture-audit/SKILL.md +257 -0
  8. package/skills/agent-eval/SKILL.md +147 -0
  9. package/skills/agent-harness-construction/SKILL.md +74 -0
  10. package/skills/agent-introspection-debugging/SKILL.md +154 -0
  11. package/skills/agent-payment-x402/SKILL.md +225 -0
  12. package/skills/agent-self-evaluation/SKILL.md +182 -0
  13. package/skills/agent-sort/SKILL.md +216 -0
  14. package/skills/agentic-engineering/SKILL.md +64 -0
  15. package/skills/agentic-os/SKILL.md +388 -0
  16. package/skills/ai-first-engineering/SKILL.md +52 -0
  17. package/skills/ai-regression-testing/SKILL.md +386 -0
  18. package/skills/android-clean-architecture/SKILL.md +340 -0
  19. package/skills/angular-developer/SKILL.md +155 -0
  20. package/skills/api-connector-builder/SKILL.md +121 -0
  21. package/skills/api-design/SKILL.md +524 -0
  22. package/skills/architecture-decision-records/SKILL.md +180 -0
  23. package/skills/article-writing/SKILL.md +80 -0
  24. package/skills/automation-audit-ops/SKILL.md +143 -0
  25. package/skills/autonomous-agent-harness/SKILL.md +274 -0
  26. package/skills/autonomous-loops/SKILL.md +611 -0
  27. package/skills/backend-patterns/SKILL.md +562 -0
  28. package/skills/benchmark/SKILL.md +95 -0
  29. package/skills/benchmark-methodology/SKILL.md +191 -0
  30. package/skills/benchmark-optimization-loop/SKILL.md +71 -0
  31. package/skills/blender-motion-state-inspection/SKILL.md +165 -0
  32. package/skills/blueprint/SKILL.md +106 -0
  33. package/skills/brand-discovery/SKILL.md +145 -0
  34. package/skills/brand-voice/SKILL.md +98 -0
  35. package/skills/browser-qa/SKILL.md +105 -0
  36. package/skills/bun-runtime/SKILL.md +85 -0
  37. package/skills/canary-watch/SKILL.md +108 -0
  38. package/skills/carrier-relationship-management/SKILL.md +212 -0
  39. package/skills/cisco-ios-patterns/SKILL.md +164 -0
  40. package/skills/ck/SKILL.md +148 -0
  41. package/skills/claude-devfleet/SKILL.md +112 -0
  42. package/skills/click-path-audit/SKILL.md +245 -0
  43. package/skills/clickhouse-io/SKILL.md +445 -0
  44. package/skills/code-tour/SKILL.md +254 -0
  45. package/skills/codebase-onboarding/SKILL.md +234 -0
  46. package/skills/codehealth-mcp/SKILL.md +167 -0
  47. package/skills/coding-standards/SKILL.md +551 -0
  48. package/skills/competitive-platform-analysis/SKILL.md +214 -0
  49. package/skills/competitive-report-structure/SKILL.md +162 -0
  50. package/skills/compose-multiplatform-patterns/SKILL.md +300 -0
  51. package/skills/config-gc/SKILL.md +120 -0
  52. package/skills/configure-ecc/SKILL.md +206 -0
  53. package/skills/connections-optimizer/SKILL.md +190 -0
  54. package/skills/content-engine/SKILL.md +132 -0
  55. package/skills/content-hash-cache-pattern/SKILL.md +162 -0
  56. package/skills/context-budget/SKILL.md +136 -0
  57. package/skills/continuous-agent-loop/SKILL.md +46 -0
  58. package/skills/contract-first/SKILL.md +287 -0
  59. package/skills/cost-aware-llm-pipeline/SKILL.md +184 -0
  60. package/skills/cost-tracking/SKILL.md +97 -0
  61. package/skills/council/SKILL.md +204 -0
  62. package/skills/council-multi-model/SKILL.md +167 -0
  63. package/skills/cpp-coding-standards/SKILL.md +724 -0
  64. package/skills/cpp-testing/SKILL.md +325 -0
  65. package/skills/crosspost/SKILL.md +112 -0
  66. package/skills/csharp-testing/SKILL.md +322 -0
  67. package/skills/customer-billing-ops/SKILL.md +141 -0
  68. package/skills/customs-trade-compliance/SKILL.md +263 -0
  69. package/skills/dart-flutter-patterns/SKILL.md +564 -0
  70. package/skills/dashboard-builder/SKILL.md +109 -0
  71. package/skills/data-scraper-agent/SKILL.md +765 -0
  72. package/skills/data-throughput-accelerator/SKILL.md +74 -0
  73. package/skills/database-migrations/SKILL.md +430 -0
  74. package/skills/deep-research/SKILL.md +160 -0
  75. package/skills/defi-amm-security/SKILL.md +167 -0
  76. package/skills/delivery-gate/SKILL.md +126 -0
  77. package/skills/deployment-patterns/SKILL.md +428 -0
  78. package/skills/design-system/SKILL.md +83 -0
  79. package/skills/dev-team/SKILL.md +203 -0
  80. package/skills/django-celery/SKILL.md +458 -0
  81. package/skills/django-patterns/SKILL.md +735 -0
  82. package/skills/django-security/SKILL.md +644 -0
  83. package/skills/django-tdd/SKILL.md +730 -0
  84. package/skills/django-verification/SKILL.md +470 -0
  85. package/skills/dmux-workflows/SKILL.md +192 -0
  86. package/skills/docker-patterns/SKILL.md +520 -0
  87. package/skills/documentation-lookup/SKILL.md +91 -0
  88. package/skills/dotnet-patterns/SKILL.md +322 -0
  89. package/skills/dynamic-workflow-mode/SKILL.md +124 -0
  90. package/skills/e2e-testing/SKILL.md +327 -0
  91. package/skills/ecc-tools-cost-audit/SKILL.md +161 -0
  92. package/skills/email-ops/SKILL.md +122 -0
  93. package/skills/energy-procurement/SKILL.md +228 -0
  94. package/skills/enterprise-agent-ops/SKILL.md +51 -0
  95. package/skills/error-handling/SKILL.md +377 -0
  96. package/skills/eval-harness/SKILL.md +271 -0
  97. package/skills/evm-token-decimals/SKILL.md +131 -0
  98. package/skills/exa-search/SKILL.md +108 -0
  99. package/skills/fal-ai-media/SKILL.md +289 -0
  100. package/skills/fastapi-patterns/SKILL.md +514 -0
  101. package/skills/finance-billing-ops/SKILL.md +128 -0
  102. package/skills/flox-environments/SKILL.md +497 -0
  103. package/skills/flutter-dart-code-review/SKILL.md +436 -0
  104. package/skills/foundation-models-on-device/SKILL.md +243 -0
  105. package/skills/frontend-a11y/SKILL.md +446 -0
  106. package/skills/frontend-design-direction/SKILL.md +93 -0
  107. package/skills/frontend-patterns/SKILL.md +657 -0
  108. package/skills/fsharp-testing/SKILL.md +281 -0
  109. package/skills/gan-style-harness/SKILL.md +279 -0
  110. package/skills/generating-python-installer/SKILL.md +820 -0
  111. package/skills/git-workflow/SKILL.md +716 -0
  112. package/skills/github-ops/SKILL.md +145 -0
  113. package/skills/golang-patterns/SKILL.md +676 -0
  114. package/skills/golang-testing/SKILL.md +721 -0
  115. package/skills/google-workspace-ops/SKILL.md +96 -0
  116. package/skills/growth-log/SKILL.md +128 -0
  117. package/skills/healthcare-cdss-patterns/SKILL.md +246 -0
  118. package/skills/healthcare-emr-patterns/SKILL.md +160 -0
  119. package/skills/healthcare-eval-harness/SKILL.md +208 -0
  120. package/skills/healthcare-phi-compliance/SKILL.md +146 -0
  121. package/skills/hermes-imports/SKILL.md +89 -0
  122. package/skills/hexagonal-architecture/SKILL.md +277 -0
  123. package/skills/hipaa-compliance/SKILL.md +79 -0
  124. package/skills/homelab-network-readiness/SKILL.md +170 -0
  125. package/skills/homelab-network-setup/SKILL.md +130 -0
  126. package/skills/homelab-pihole-dns/SKILL.md +275 -0
  127. package/skills/homelab-vlan-segmentation/SKILL.md +312 -0
  128. package/skills/homelab-wireguard-vpn/SKILL.md +306 -0
  129. package/skills/hookify-rules/SKILL.md +128 -0
  130. package/skills/inherit-legacy-style/SKILL.md +157 -0
  131. package/skills/intent-driven-development/SKILL.md +360 -0
  132. package/skills/inventory-demand-planning/SKILL.md +247 -0
  133. package/skills/investor-materials/SKILL.md +97 -0
  134. package/skills/investor-outreach/SKILL.md +92 -0
  135. package/skills/ios-icon-gen/SKILL.md +158 -0
  136. package/skills/iterative-retrieval/SKILL.md +212 -0
  137. package/skills/ito-baskets/SKILL.md +263 -0
  138. package/skills/ito-compute/SKILL.md +151 -0
  139. package/skills/ito-inference/SKILL.md +119 -0
  140. package/skills/ito-training/SKILL.md +123 -0
  141. package/skills/java-coding-standards/SKILL.md +384 -0
  142. package/skills/jira-integration/SKILL.md +303 -0
  143. package/skills/jpa-patterns/SKILL.md +152 -0
  144. package/skills/knowledge-ops/SKILL.md +155 -0
  145. package/skills/kotlin-coroutines-flows/SKILL.md +285 -0
  146. package/skills/kotlin-exposed-patterns/SKILL.md +720 -0
  147. package/skills/kotlin-ktor-patterns/SKILL.md +690 -0
  148. package/skills/kotlin-patterns/SKILL.md +712 -0
  149. package/skills/kotlin-testing/SKILL.md +825 -0
  150. package/skills/kubernetes-patterns/SKILL.md +756 -0
  151. package/skills/laravel-patterns/SKILL.md +416 -0
  152. package/skills/laravel-plugin-discovery/SKILL.md +230 -0
  153. package/skills/laravel-security/SKILL.md +948 -0
  154. package/skills/laravel-tdd/SKILL.md +675 -0
  155. package/skills/laravel-verification/SKILL.md +180 -0
  156. package/skills/latency-critical-systems/SKILL.md +75 -0
  157. package/skills/lead-intelligence/SKILL.md +322 -0
  158. package/skills/liquid-glass-design/SKILL.md +279 -0
  159. package/skills/living-docs-governance/SKILL.md +137 -0
  160. package/skills/llm-trading-agent-security/SKILL.md +147 -0
  161. package/skills/logistics-exception-management/SKILL.md +222 -0
  162. package/skills/loop-design-check/SKILL.md +143 -0
  163. package/skills/mailtrap-email-integration/SKILL.md +77 -0
  164. package/skills/make-interfaces-feel-better/SKILL.md +152 -0
  165. package/skills/manim-video/SKILL.md +90 -0
  166. package/skills/market-research/SKILL.md +76 -0
  167. package/skills/marketing-campaign/SKILL.md +114 -0
  168. package/skills/mcp-server-patterns/SKILL.md +70 -0
  169. package/skills/messages-ops/SKILL.md +105 -0
  170. package/skills/ml-adoption-playbook/SKILL.md +57 -0
  171. package/skills/mle-workflow/SKILL.md +348 -0
  172. package/skills/motion-advanced/SKILL.md +597 -0
  173. package/skills/motion-foundations/SKILL.md +300 -0
  174. package/skills/motion-patterns/SKILL.md +435 -0
  175. package/skills/motion-ui/SKILL.md +576 -0
  176. package/skills/mysql-patterns/SKILL.md +413 -0
  177. package/skills/nanoclaw-repl/SKILL.md +34 -0
  178. package/skills/nasiko-control-plane/SKILL.md +49 -0
  179. package/skills/nestjs-patterns/SKILL.md +231 -0
  180. package/skills/netmiko-ssh-automation/SKILL.md +174 -0
  181. package/skills/network-bgp-diagnostics/SKILL.md +168 -0
  182. package/skills/network-config-validation/SKILL.md +211 -0
  183. package/skills/network-interface-health/SKILL.md +153 -0
  184. package/skills/nextjs-turbopack/SKILL.md +58 -0
  185. package/skills/nodejs-keccak256/SKILL.md +103 -0
  186. package/skills/nutrient-document-processing/SKILL.md +168 -0
  187. package/skills/nuxt4-patterns/SKILL.md +101 -0
  188. package/skills/opensource-pipeline/SKILL.md +256 -0
  189. package/skills/orch-add-feature/SKILL.md +45 -0
  190. package/skills/orch-build-mvp/SKILL.md +49 -0
  191. package/skills/orch-change-feature/SKILL.md +43 -0
  192. package/skills/orch-fix-defect/SKILL.md +43 -0
  193. package/skills/orch-pipeline/SKILL.md +121 -0
  194. package/skills/orch-refine-code/SKILL.md +44 -0
  195. package/skills/parallel-execution-optimizer/SKILL.md +74 -0
  196. package/skills/perl-patterns/SKILL.md +505 -0
  197. package/skills/perl-security/SKILL.md +504 -0
  198. package/skills/perl-testing/SKILL.md +476 -0
  199. package/skills/plan-canvas/SKILL.md +196 -0
  200. package/skills/plankton-code-quality/SKILL.md +237 -0
  201. package/skills/postgres-patterns/SKILL.md +148 -0
  202. package/skills/prediction-market-oracle-research/SKILL.md +64 -0
  203. package/skills/prediction-market-risk-review/SKILL.md +61 -0
  204. package/skills/prisma-patterns/SKILL.md +401 -0
  205. package/skills/product-capability/SKILL.md +142 -0
  206. package/skills/product-lens/SKILL.md +93 -0
  207. package/skills/production-audit/SKILL.md +207 -0
  208. package/skills/production-scheduling/SKILL.md +238 -0
  209. package/skills/project-flow-ops/SKILL.md +112 -0
  210. package/skills/prompt-optimizer/SKILL.md +398 -0
  211. package/skills/python-patterns/SKILL.md +751 -0
  212. package/skills/python-testing/SKILL.md +817 -0
  213. package/skills/pytorch-patterns/SKILL.md +397 -0
  214. package/skills/quality-nonconformance/SKILL.md +260 -0
  215. package/skills/quarkus-patterns/SKILL.md +723 -0
  216. package/skills/quarkus-security/SKILL.md +468 -0
  217. package/skills/quarkus-tdd/SKILL.md +812 -0
  218. package/skills/quarkus-verification/SKILL.md +481 -0
  219. package/skills/ralphinho-rfc-pipeline/SKILL.md +68 -0
  220. package/skills/react-native-patterns/SKILL.md +326 -0
  221. package/skills/react-patterns/SKILL.md +342 -0
  222. package/skills/react-performance/SKILL.md +575 -0
  223. package/skills/react-testing/SKILL.md +424 -0
  224. package/skills/recsys-pipeline-architect/SKILL.md +115 -0
  225. package/skills/recursive-decision-ledger/SKILL.md +81 -0
  226. package/skills/redis-patterns/SKILL.md +404 -0
  227. package/skills/regex-vs-llm-structured-text/SKILL.md +221 -0
  228. package/skills/remotion-video-creation/SKILL.md +43 -0
  229. package/skills/repo-scan/SKILL.md +170 -0
  230. package/skills/research-ops/SKILL.md +113 -0
  231. package/skills/returns-reverse-logistics/SKILL.md +240 -0
  232. package/skills/rules-distill/SKILL.md +265 -0
  233. package/skills/rust-patterns/SKILL.md +500 -0
  234. package/skills/rust-testing/SKILL.md +501 -0
  235. package/skills/safety-guard/SKILL.md +76 -0
  236. package/skills/santa-method/SKILL.md +307 -0
  237. package/skills/scientific-db-pubmed-database/SKILL.md +176 -0
  238. package/skills/scientific-db-uspto-database/SKILL.md +178 -0
  239. package/skills/scientific-pkg-gget/SKILL.md +167 -0
  240. package/skills/scientific-thinking-literature-review/SKILL.md +193 -0
  241. package/skills/scientific-thinking-scholar-evaluation/SKILL.md +161 -0
  242. package/skills/search-first/SKILL.md +183 -0
  243. package/skills/security-bounty-hunter/SKILL.md +100 -0
  244. package/skills/security-scan/SKILL.md +166 -0
  245. package/skills/seo/SKILL.md +155 -0
  246. package/skills/skill-scout/SKILL.md +141 -0
  247. package/skills/skill-stocktake/SKILL.md +195 -0
  248. package/skills/social-graph-ranker/SKILL.md +155 -0
  249. package/skills/social-publisher/SKILL.md +130 -0
  250. package/skills/springboot-patterns/SKILL.md +315 -0
  251. package/skills/springboot-security/SKILL.md +273 -0
  252. package/skills/springboot-tdd/SKILL.md +159 -0
  253. package/skills/springboot-verification/SKILL.md +232 -0
  254. package/skills/swift-actor-persistence/SKILL.md +144 -0
  255. package/skills/swift-concurrency-6-2/SKILL.md +216 -0
  256. package/skills/swift-protocol-di-testing/SKILL.md +191 -0
  257. package/skills/swiftui-patterns/SKILL.md +259 -0
  258. package/skills/taste/SKILL.md +264 -0
  259. package/skills/tdd-workflow/SKILL.md +583 -0
  260. package/skills/team-agent-orchestration/SKILL.md +111 -0
  261. package/skills/team-builder/SKILL.md +169 -0
  262. package/skills/terminal-opener/SKILL.md +55 -0
  263. package/skills/terminal-ops/SKILL.md +110 -0
  264. package/skills/tinystruct-patterns/SKILL.md +279 -0
  265. package/skills/token-budget-advisor/SKILL.md +134 -0
  266. package/skills/ui-demo/SKILL.md +466 -0
  267. package/skills/ui-to-vue/SKILL.md +135 -0
  268. package/skills/uncloud/SKILL.md +344 -0
  269. package/skills/unified-memory/SKILL.md +170 -0
  270. package/skills/unified-notifications-ops/SKILL.md +188 -0
  271. package/skills/verification-loop/SKILL.md +129 -0
  272. package/skills/video-editing/SKILL.md +311 -0
  273. package/skills/videodb/SKILL.md +375 -0
  274. package/skills/vite-patterns/SKILL.md +450 -0
  275. package/skills/vue-patterns/SKILL.md +471 -0
  276. package/skills/windows-desktop-e2e/SKILL.md +888 -0
  277. package/skills/workspace-surface-audit/SKILL.md +126 -0
  278. package/skills/x-api/SKILL.md +235 -0
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: nuxt4-patterns
3
+ description: Nuxt 4 app patterns for hydration safety, performance, route rules, lazy loading, and SSR-safe data fetching with useFetch and useAsyncData. Use when building or reviewing a Nuxt 4 app, or debugging hydration mismatches and SSR-safe data fetching.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # Nuxt 4 Patterns
9
+
10
+ Use when building or debugging Nuxt 4 apps with SSR, hybrid rendering, route rules, or page-level data fetching.
11
+
12
+ ## When to Activate
13
+
14
+ - Hydration mismatches between server HTML and client state
15
+ - Route-level rendering decisions such as prerender, SWR, ISR, or client-only sections
16
+ - Performance work around lazy loading, lazy hydration, or payload size
17
+ - Page or component data fetching with `useFetch`, `useAsyncData`, or `$fetch`
18
+ - Nuxt routing issues tied to route params, middleware, or SSR/client differences
19
+
20
+ ## Hydration Safety
21
+
22
+ - Keep the first render deterministic. Do not put `Date.now()`, `Math.random()`, browser-only APIs, or storage reads directly into SSR-rendered template state.
23
+ - Move browser-only logic behind `onMounted()`, `import.meta.client`, `ClientOnly`, or a `.client.vue` component when the server cannot produce the same markup.
24
+ - Use Nuxt's `useRoute()` composable, not the one from `vue-router`.
25
+ - Do not use `route.fullPath` to drive SSR-rendered markup. URL fragments are client-only, which can create hydration mismatches.
26
+ - Treat `ssr: false` as an escape hatch for truly browser-only areas, not a default fix for mismatches.
27
+
28
+ ## Data Fetching
29
+
30
+ - Prefer `await useFetch()` for SSR-safe API reads in pages and components. It forwards server-fetched data into the Nuxt payload and avoids a second fetch on hydration.
31
+ - Use `useAsyncData()` when the fetcher is not a simple `$fetch()` call, when you need a custom key, or when you are composing multiple async sources.
32
+ - Give `useAsyncData()` a stable key for cache reuse and predictable refresh behavior.
33
+ - Keep `useAsyncData()` handlers side-effect free. They can run during SSR and hydration.
34
+ - Use `$fetch()` for user-triggered writes or client-only actions, not top-level page data that should be hydrated from SSR.
35
+ - Use `lazy: true`, `useLazyFetch()`, or `useLazyAsyncData()` for non-critical data that should not block navigation. Handle `status === 'pending'` in the UI.
36
+ - Use `server: false` only for data that is not needed for SEO or the first paint.
37
+ - Trim payload size with `pick` and prefer shallower payloads when deep reactivity is unnecessary.
38
+
39
+ ```ts
40
+ const route = useRoute()
41
+
42
+ const { data: article, status, error, refresh } = await useAsyncData(
43
+ () => `article:${route.params.slug}`,
44
+ () => $fetch(`/api/articles/${route.params.slug}`),
45
+ )
46
+
47
+ const { data: comments } = await useFetch(`/api/articles/${route.params.slug}/comments`, {
48
+ lazy: true,
49
+ server: false,
50
+ })
51
+ ```
52
+
53
+ ## Route Rules
54
+
55
+ Prefer `routeRules` in `nuxt.config.ts` for rendering and caching strategy:
56
+
57
+ ```ts
58
+ export default defineNuxtConfig({
59
+ routeRules: {
60
+ '/': { prerender: true },
61
+ '/products/**': { swr: 3600 },
62
+ '/blog/**': { isr: true },
63
+ '/admin/**': { ssr: false },
64
+ '/api/**': { cache: { maxAge: 60 * 60 } },
65
+ },
66
+ })
67
+ ```
68
+
69
+ - `prerender`: static HTML at build time
70
+ - `swr`: serve cached content and revalidate in the background
71
+ - `isr`: incremental static regeneration on supported platforms
72
+ - `ssr: false`: client-rendered route
73
+ - `cache` or `redirect`: Nitro-level response behavior
74
+
75
+ Pick route rules per route group, not globally. Marketing pages, catalogs, dashboards, and APIs usually need different strategies.
76
+
77
+ ## Lazy Loading and Performance
78
+
79
+ - Nuxt already code-splits pages by route. Keep route boundaries meaningful before micro-optimizing component splits.
80
+ - Use the `Lazy` prefix to dynamically import non-critical components.
81
+ - Conditionally render lazy components with `v-if` so the chunk is not loaded until the UI actually needs it.
82
+ - Use lazy hydration for below-the-fold or non-critical interactive UI.
83
+
84
+ ```vue
85
+ <template>
86
+ <LazyRecommendations v-if="showRecommendations" />
87
+ <LazyProductGallery hydrate-on-visible />
88
+ </template>
89
+ ```
90
+
91
+ - For custom strategies, use `defineLazyHydrationComponent()` with a visibility or idle strategy.
92
+ - Nuxt lazy hydration works on single-file components. Passing new props to a lazily hydrated component will trigger hydration immediately.
93
+ - Use `NuxtLink` for internal navigation so Nuxt can prefetch route components and generated payloads.
94
+
95
+ ## Review Checklist
96
+
97
+ - First SSR render and hydrated client render produce the same markup
98
+ - Page data uses `useFetch` or `useAsyncData`, not top-level `$fetch`
99
+ - Non-critical data is lazy and has explicit loading UI
100
+ - Route rules match the page's SEO and freshness requirements
101
+ - Heavy interactive islands are lazy-loaded or lazily hydrated
@@ -0,0 +1,256 @@
1
+ ---
2
+ name: opensource-pipeline
3
+ description: "Open-source pipeline: fork, sanitize, and package private projects for safe public release. Chains 3 agents (forker, sanitizer, packager). Triggers: '/opensource', 'open source this', 'make this public', 'prepare for open source'. Use when a private project must be forked, stripped of secrets, and packaged for public release."
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # Open-Source Pipeline Skill
9
+
10
+ Safely open-source any project through a 3-stage pipeline: **Fork** (strip secrets) → **Sanitize** (verify clean) → **Package** (CLAUDE.md + setup.sh + README).
11
+
12
+ ## When to Activate
13
+
14
+ - User says "open source this project" or "make this public"
15
+ - User wants to prepare a private repo for public release
16
+ - User needs to strip secrets before pushing to GitHub
17
+ - User invokes `/opensource fork`, `/opensource verify`, or `/opensource package`
18
+
19
+ ## Commands
20
+
21
+ | Command | Action |
22
+ |---------|--------|
23
+ | `/opensource fork PROJECT` | Full pipeline: fork + sanitize + package |
24
+ | `/opensource verify PROJECT` | Run sanitizer on existing repo |
25
+ | `/opensource package PROJECT` | Generate CLAUDE.md + setup.sh + README |
26
+ | `/opensource list` | Show all staged projects |
27
+ | `/opensource status PROJECT` | Show reports for a staged project |
28
+
29
+ ## Protocol
30
+
31
+ ### /opensource fork PROJECT
32
+
33
+ **Full pipeline — the main workflow.**
34
+
35
+ #### Step 1: Gather Parameters
36
+
37
+ Resolve the project path. If PROJECT contains `/`, treat as a path (absolute or relative). Otherwise check: current working directory, `$HOME/PROJECT`, then ask the user.
38
+
39
+ ```
40
+ SOURCE_PATH="<resolved absolute path>"
41
+ STAGING_PATH="$HOME/opensource-staging/${PROJECT_NAME}"
42
+ ```
43
+
44
+ Ask the user:
45
+ 1. "Which project?" (if not found)
46
+ 2. "License? (MIT / Apache-2.0 / GPL-3.0 / BSD-3-Clause)"
47
+ 3. "GitHub org or username?" (default: detect via `gh api user -q .login`)
48
+ 4. "GitHub repo name?" (default: project name)
49
+ 5. "Description for README?" (analyze project for suggestion)
50
+
51
+ #### Step 2: Create Staging Directory
52
+
53
+ ```bash
54
+ mkdir -p $HOME/opensource-staging/
55
+ ```
56
+
57
+ #### Step 3: Run Forker Agent
58
+
59
+ Spawn the `opensource-forker` agent:
60
+
61
+ ```
62
+ Agent(
63
+ description="Fork {PROJECT} for open-source",
64
+ subagent_type="opensource-forker",
65
+ prompt="""
66
+ Fork project for open-source release.
67
+
68
+ Source: {SOURCE_PATH}
69
+ Target: {STAGING_PATH}
70
+ License: {chosen_license}
71
+
72
+ Follow the full forking protocol:
73
+ 1. Copy files (exclude .git, node_modules, __pycache__, .venv)
74
+ 2. Strip all secrets and credentials
75
+ 3. Replace internal references with placeholders
76
+ 4. Generate .env.example
77
+ 5. Clean git history
78
+ 6. Generate FORK_REPORT.md in {STAGING_PATH}/FORK_REPORT.md
79
+ """
80
+ )
81
+ ```
82
+
83
+ Wait for completion. Read `{STAGING_PATH}/FORK_REPORT.md`.
84
+
85
+ #### Step 4: Run Sanitizer Agent
86
+
87
+ Spawn the `opensource-sanitizer` agent:
88
+
89
+ ```
90
+ Agent(
91
+ description="Verify {PROJECT} sanitization",
92
+ subagent_type="opensource-sanitizer",
93
+ prompt="""
94
+ Verify sanitization of open-source fork.
95
+
96
+ Project: {STAGING_PATH}
97
+ Source (for reference): {SOURCE_PATH}
98
+
99
+ Run ALL scan categories:
100
+ 1. Secrets scan (CRITICAL)
101
+ 2. PII scan (CRITICAL)
102
+ 3. Internal references scan (CRITICAL)
103
+ 4. Dangerous files check (CRITICAL)
104
+ 5. Configuration completeness (WARNING)
105
+ 6. Git history audit
106
+
107
+ Generate SANITIZATION_REPORT.md inside {STAGING_PATH}/ with PASS/FAIL verdict.
108
+ """
109
+ )
110
+ ```
111
+
112
+ Wait for completion. Read `{STAGING_PATH}/SANITIZATION_REPORT.md`.
113
+
114
+ **If FAIL:** Show findings to user. Ask: "Fix these and re-scan, or abort?"
115
+ - If fix: Apply fixes, re-run sanitizer (maximum 3 retry attempts — after 3 FAILs, present all findings and ask user to fix manually)
116
+ - If abort: Clean up staging directory
117
+
118
+ **If PASS or PASS WITH WARNINGS:** Continue to Step 5.
119
+
120
+ #### Step 5: Run Packager Agent
121
+
122
+ Spawn the `opensource-packager` agent:
123
+
124
+ ```
125
+ Agent(
126
+ description="Package {PROJECT} for open-source",
127
+ subagent_type="opensource-packager",
128
+ prompt="""
129
+ Generate open-source packaging for project.
130
+
131
+ Project: {STAGING_PATH}
132
+ License: {chosen_license}
133
+ Project name: {PROJECT_NAME}
134
+ Description: {description}
135
+ GitHub repo: {github_repo}
136
+
137
+ Generate:
138
+ 1. CLAUDE.md (commands, architecture, key files)
139
+ 2. setup.sh (one-command bootstrap, make executable)
140
+ 3. README.md (or enhance existing)
141
+ 4. LICENSE
142
+ 5. CONTRIBUTING.md
143
+ 6. .github/ISSUE_TEMPLATE/ (bug_report.md, feature_request.md)
144
+ """
145
+ )
146
+ ```
147
+
148
+ #### Step 6: Final Review
149
+
150
+ Present to user:
151
+ ```
152
+ Open-Source Fork Ready: {PROJECT_NAME}
153
+
154
+ Location: {STAGING_PATH}
155
+ License: {license}
156
+ Files generated:
157
+ - CLAUDE.md
158
+ - setup.sh (executable)
159
+ - README.md
160
+ - LICENSE
161
+ - CONTRIBUTING.md
162
+ - .env.example ({N} variables)
163
+
164
+ Sanitization: {sanitization_verdict}
165
+
166
+ Next steps:
167
+ 1. Review: cd {STAGING_PATH}
168
+ 2. Create repo: gh repo create {github_org}/{github_repo} --public
169
+ 3. Push: git remote add origin ... && git push -u origin main
170
+
171
+ Proceed with GitHub creation? (yes/no/review first)
172
+ ```
173
+
174
+ #### Step 7: GitHub Publish (on user approval)
175
+
176
+ ```bash
177
+ cd "{STAGING_PATH}"
178
+ gh repo create "{github_org}/{github_repo}" --public --source=. --push --description "{description}"
179
+ ```
180
+
181
+ ---
182
+
183
+ ### /opensource verify PROJECT
184
+
185
+ Run sanitizer independently. Resolve path: if PROJECT contains `/`, treat as a path. Otherwise check `$HOME/opensource-staging/PROJECT`, then `$HOME/PROJECT`, then current directory.
186
+
187
+ ```
188
+ Agent(
189
+ subagent_type="opensource-sanitizer",
190
+ prompt="Verify sanitization of: {resolved_path}. Run all 6 scan categories and generate SANITIZATION_REPORT.md."
191
+ )
192
+ ```
193
+
194
+ ---
195
+
196
+ ### /opensource package PROJECT
197
+
198
+ Run packager independently. Ask for "License?" and "Description?", then:
199
+
200
+ ```
201
+ Agent(
202
+ subagent_type="opensource-packager",
203
+ prompt="Package: {resolved_path} ..."
204
+ )
205
+ ```
206
+
207
+ ---
208
+
209
+ ### /opensource list
210
+
211
+ ```bash
212
+ ls -d $HOME/opensource-staging/*/
213
+ ```
214
+
215
+ Show each project with pipeline progress (FORK_REPORT.md, SANITIZATION_REPORT.md, CLAUDE.md presence).
216
+
217
+ ---
218
+
219
+ ### /opensource status PROJECT
220
+
221
+ ```bash
222
+ cat $HOME/opensource-staging/${PROJECT}/SANITIZATION_REPORT.md
223
+ cat $HOME/opensource-staging/${PROJECT}/FORK_REPORT.md
224
+ ```
225
+
226
+ ## Staging Layout
227
+
228
+ ```
229
+ $HOME/opensource-staging/
230
+ my-project/
231
+ FORK_REPORT.md # From forker agent
232
+ SANITIZATION_REPORT.md # From sanitizer agent
233
+ CLAUDE.md # From packager agent
234
+ setup.sh # From packager agent
235
+ README.md # From packager agent
236
+ .env.example # From forker agent
237
+ ... # Sanitized project files
238
+ ```
239
+
240
+ ## Anti-Patterns
241
+
242
+ - **Never** push to GitHub without user approval
243
+ - **Never** skip the sanitizer — it is the safety gate
244
+ - **Never** proceed after a sanitizer FAIL without fixing all critical findings
245
+ - **Never** leave `.env`, `*.pem`, or `credentials.json` in the staging directory
246
+
247
+ ## Best Practices
248
+
249
+ - Always run the full pipeline (fork → sanitize → package) for new releases
250
+ - The staging directory persists until explicitly cleaned up — use it for review
251
+ - Re-run the sanitizer after any manual fixes before publishing
252
+ - Parameterize secrets rather than deleting them — preserve project functionality
253
+
254
+ ## Related Skills
255
+
256
+ See `security-review` for secret detection patterns used by the sanitizer.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: orch-add-feature
3
+ description: Orchestrate building a brand-new feature end to end — research, plan, TDD implementation, review, and gated commit — by delegating each phase to the matching ECC agent. Use when adding a capability that does not exist yet.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # orch-add-feature
9
+
10
+ Actor · action · target: **orch · add · feature**. Thin wrapper over the shared
11
+ engine in [`orch-pipeline`](../orch-pipeline/SKILL.md).
12
+
13
+ ## When to Use
14
+
15
+ - The user wants a capability that does **not exist yet** ("add", "build",
16
+ "implement", "support …").
17
+ - It is net-new behavior — not a correction (`orch-fix-defect`) and not an
18
+ alteration of existing behavior (`orch-change-feature`).
19
+
20
+ ## Operation settings
21
+
22
+ - **Default size floor:** standard — run Research + Plan unless clearly small.
23
+ - **Phase mask:** 0 → 1 → 2 → 4 → 5 → 6 (skip 3 Scaffold; that is MVP-only).
24
+ - **First move (phase 4):** write *new* failing tests for the new behavior, then
25
+ implement to green.
26
+
27
+ ## How It Works
28
+
29
+ 1. Run the `orch-pipeline` engine with the settings above.
30
+ 2. Classify size first; small / trivial features collapse toward 4 → 5 → 6.
31
+ 3. Stop at **Gate 1** (plan approval) and **Gate 2** (pre-commit).
32
+ 4. Add `security-reviewer` if the feature touches a security trigger.
33
+
34
+ > Related: `/feature-dev` is a standalone version of this flow. `orch-add-feature`
35
+ > differs by sharing the `orch-pipeline` engine — the size classifier and the two
36
+ > gates — with the rest of the family, so it right-sizes trivial features to 4 → 5 → 6.
37
+
38
+ ## Example
39
+
40
+ ```
41
+ orch-add-feature: add OAuth2 login to nws-poller
42
+ → research existing auth libs → plan task_list [GATE 1: approve]
43
+ → TDD each task → code-review (+ security-reviewer: auth path)
44
+ → commit [GATE 2: confirm]
45
+ ```
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: orch-build-mvp
3
+ description: Orchestrate bootstrapping a working MVP from a design or spec document — ingest the doc, plan thin vertical slices, scaffold the first end-to-end slice, then TDD-implement, review, and gated commit. Use to turn an SDD/PRD into a running starting point. Use when a design or spec document must become a running MVP through planned vertical slices.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # orch-build-mvp
9
+
10
+ Actor · action · target: **orch · build · mvp**. Thin wrapper over the shared
11
+ engine in [`orch-pipeline`](../orch-pipeline/SKILL.md).
12
+
13
+ ## When to Use
14
+
15
+ - The user has a **design / spec document** (SDD, PRD, system_design) and wants a
16
+ working vertical slice bootstrapped from it.
17
+ - Takes a doc path as its argument, e.g. `civicpulse/docs/SDD-v0.6.md`.
18
+
19
+ ## Operation settings
20
+
21
+ - **Default size floor:** large — this is the full pipeline including Scaffold.
22
+ - **Phase mask:** 0 (read the spec) → 1 → 2 (heavy) → 3 (scaffold) → 4 → 5 → 6.
23
+ - **First move (phase 0 → 2):** read the doc; extract scope, locked decisions,
24
+ and the feature list; order it into **thin vertical slices** (one end-to-end
25
+ path first, not all-models-then-all-views). Phase 3 stands up that first slice.
26
+
27
+ ## How It Works
28
+
29
+ 1. Run the `orch-pipeline` engine with the settings above.
30
+ 2. **Reuse the existing GAN harness** instead of hand-rolling an iterate loop:
31
+ - Translate the SDD into `gan-harness/spec.md` + `gan-harness/eval-rubric.md`
32
+ (this stands in for what `gan-planner` would generate — you already have the spec).
33
+ - Drive the build with `/gan-build "<one-line brief>" --skip-planner`
34
+ (defaults: `--max-iterations 15`, `--pass-threshold 7.0`,
35
+ `--eval-mode playwright`; use `--eval-mode code-only` for non-UI slices).
36
+ - That command runs the `gan-generator` → `gan-evaluator` loop and writes
37
+ `gan-harness/feedback/feedback-NNN.md` until the score passes or plateaus.
38
+ 3. Stop at **Gate 1** (slice plan) and **Gate 2** (pre-commit). Commit the
39
+ scaffold and each slice as separate `feat:` commits.
40
+ 4. Add `security-reviewer` for any slice touching a security trigger.
41
+
42
+ ## Example
43
+
44
+ ```
45
+ orch-build-mvp: civicpulse/docs/SDD-v0.6.md
46
+ → read SDD → slice list (vertical) → scaffold slice 1 [GATE 1: approve]
47
+ → /gan-build --skip-planner (generator → evaluator loop) scores vs spec → review
48
+ → commit feat: [GATE 2: confirm] → next slice
49
+ ```
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: orch-change-feature
3
+ description: Orchestrate altering an existing, working feature to new desired behavior — update its tests to the new spec, change the implementation to match, review, and gated commit. Use when behavior is not broken but should be different.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # orch-change-feature
9
+
10
+ Actor · action · target: **orch · change · feature**. Thin wrapper over the
11
+ shared engine in [`orch-pipeline`](../orch-pipeline/SKILL.md).
12
+
13
+ ## When to Use
14
+
15
+ - An existing feature **works**, but the desired behavior is different ("change",
16
+ "adjust", "make it also …", "instead of X do Y").
17
+ - Distinguish from siblings:
18
+ - **not** broken → not `orch-fix-defect` (no bug to reproduce).
19
+ - **not** new → not `orch-add-feature` (the capability already exists).
20
+
21
+ ## Operation settings
22
+
23
+ - **Default size floor:** small — most tweaks are a function or two.
24
+ - **Phase mask:** 0 → (1 only if the new behavior needs research) → light 2 →
25
+ 4 → 5 → 6.
26
+ - **First move (phase 4):** update the *existing* tests to express the new
27
+ desired behavior, then change the implementation until they pass. Changing the
28
+ tests first is what separates a tweak from a fix.
29
+
30
+ ## How It Works
31
+
32
+ 1. Run the `orch-pipeline` engine with the settings above.
33
+ 2. Keep the plan light — only `standard`+ size warrants the full `planner` pass.
34
+ 3. Stop at **Gate 1** (plan / changed-test approval) and **Gate 2** (pre-commit).
35
+ 4. Add `security-reviewer` if the change touches a security trigger.
36
+
37
+ ## Example
38
+
39
+ ```
40
+ orch-change-feature: make nws-poller alert at 2 warnings instead of 3
41
+ → update threshold tests to new spec → change impl to green
42
+ → code-review → commit [GATE 2: confirm]
43
+ ```
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: orch-fix-defect
3
+ description: Orchestrate fixing a bug — reproduce it as a failing regression test, fix to green, review, and gated commit — by delegating each phase to the matching ECC agent. Use when existing behavior is broken or wrong.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # orch-fix-defect
9
+
10
+ Actor · action · target: **orch · fix · defect**. Thin wrapper over the shared
11
+ engine in [`orch-pipeline`](../orch-pipeline/SKILL.md).
12
+
13
+ ## When to Use
14
+
15
+ - Something is **broken**: wrong output, an error, a crash, a regression.
16
+ - Distinguish from siblings:
17
+ - behavior is correct but you want it different → `orch-change-feature`.
18
+ - the capability does not exist yet → `orch-add-feature`.
19
+
20
+ ## Operation settings
21
+
22
+ - **Default size floor:** small (often trivial).
23
+ - **Phase mask:** 0 → (light 2 only if root cause is non-obvious or standard+) →
24
+ 4 → 5 → 6. Research (1) is usually skipped.
25
+ - **First move (phase 4):** reproduce the bug as a **new failing** test
26
+ (regression test), then fix until it goes green. Proving the bug exists first
27
+ is what separates a fix from a tweak.
28
+
29
+ ## How It Works
30
+
31
+ 1. Run the `orch-pipeline` engine with the settings above.
32
+ 2. If the root cause is unclear, scope it with `code-explorer` before the red
33
+ test; escalate build breaks to `build-error-resolver` / `/build-fix`.
34
+ 3. Stop at **Gate 1** (only if a plan was produced) and **Gate 2** (pre-commit).
35
+ 4. Add `security-reviewer` if the defect sits in a security-sensitive path.
36
+
37
+ ## Example
38
+
39
+ ```
40
+ orch-fix-defect: poller crashes on empty NWS response
41
+ → write failing test reproducing the crash → fix to green
42
+ → code-review → commit [GATE 2: confirm] (commit: fix:)
43
+ ```
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: orch-pipeline
3
+ description: Shared orchestration engine for the orch-* skill family. Defines the gated Research-Plan-TDD-Review-Commit pipeline, the size classifier, the agent map, and the two human gates that the orch-* operation skills delegate to. Not usually invoked directly. Not usually invoked directly; it applies when an orch-* skill delegates its gated Research-Plan-TDD-Review-Commit pipeline.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # Orchestrator Pipeline (shared engine)
9
+
10
+ The `orch-*` skills are thin wrappers. They do not re-implement any work — they
11
+ classify the request, choose which phases of *this* pipeline run, and delegate
12
+ each phase to an existing ECC agent or command. This file is that pipeline.
13
+
14
+ > Invoke an operation skill (`orch-add-feature`, `orch-fix-defect`, …) rather
15
+ > than this engine directly. This file is the reference they point at.
16
+
17
+ ## When to Use
18
+
19
+ - Loaded indirectly whenever an `orch-*` operation skill runs.
20
+ - Read directly only when adding a new operation to the family or tuning the
21
+ shared phases, gates, or agent map.
22
+
23
+ ## The operation family
24
+
25
+ | Skill | Operation | Trigger | First move |
26
+ |-------|-----------|---------|------------|
27
+ | `orch-add-feature` | feature | capability does not exist yet | research + plan a new slice |
28
+ | `orch-change-feature` | tweak | works, but desired behavior differs | amend existing behavior *and its tests* |
29
+ | `orch-fix-defect` | fix | broken; behavior is wrong | reproduce as a failing test, then fix |
30
+ | `orch-refine-code` | refactor | behavior stays, structure improves | restructure while keeping tests green |
31
+ | `orch-build-mvp` | mvp | bootstrap from a design/spec doc | ingest doc → vertical slices |
32
+
33
+ > These wrappers **compose** existing ECC commands rather than replace them:
34
+ > `/feature-dev`, `/plan`, `/code-review`, `/build-fix`, `/refactor-clean`, and
35
+ > `/gan-build`, plus the `tdd-workflow` skill. The orch-* family adds the shared
36
+ > size classifier and the two gates
37
+ > on top of them, so one umbrella covers all five operations consistently.
38
+
39
+ ## Step 0 — Classify size (right-sizing)
40
+
41
+ Ceremony scales to blast radius. Score the request on three signals, take the
42
+ **highest** tier any signal reaches, and state the result in one line so the user
43
+ can override:
44
+
45
+ | Tier | Files touched | New dependency / contract | Design ambiguity | Phases that run |
46
+ |------|---------------|---------------------------|------------------|-----------------|
47
+ | trivial | 1, a few lines | none | none — the change is obvious | 4 → 5 → 6 |
48
+ | small | 1 file / 1 function | none | clear once you read the code | (1 light) → 4 → 5 → 6 |
49
+ | standard | 2–5 files | maybe a new internal module | one real choice to make | 1 → 2 → 4 → 5 → 6 |
50
+ | large | many / cross-cutting | new external dep, public API, or a spec doc | multiple open questions | 1 → 2 → (3) → 4 → 5 → 6 |
51
+
52
+ Phase 0 (Intake) always runs and is omitted from the mask column above. The
53
+ tie-breaker: anything touching a security trigger (below) or a public API /
54
+ contract is **at least** standard, regardless of file count.
55
+
56
+ ## The phases
57
+
58
+ Each phase delegates — it does not do the work inline.
59
+
60
+ - **0. Intake** — restate the request. For `orch-build-mvp`, read the spec/design
61
+ doc and extract scope, locked decisions, and a feature list.
62
+ - **1. Research & Reuse** — per `rules/common/development-workflow.md`: `gh search repos` /
63
+ `gh search code`, then Context7 / vendor docs, then package registries, then
64
+ Exa. Prefer adopting a proven implementation over net-new code.
65
+ - **2. Plan** — delegate to the `planner` agent (or `architect` /
66
+ `code-architect` for structural decisions). Output a `task_list` ordered as
67
+ thin vertical slices. → **GATE 1.**
68
+ - **3. Scaffold** — `orch-build-mvp` only: stand up the first end-to-end slice.
69
+ - **4. Implement (TDD)** — drive each task through the `tdd-guide` agent (or the `tdd-workflow` skill):
70
+ red → green → refactor. Honor the operation's first-move rule.
71
+ - **5. Review** — `code-reviewer` agent / `/code-review`. Add `security-reviewer`
72
+ whenever the diff touches a security trigger (below).
73
+ - **6. Commit** — conventional commits (`feat:` / `fix:` / `refactor:` / …), one
74
+ per logical chunk. → **GATE 2.**
75
+
76
+ ## The two gates
77
+
78
+ This family is **gated, not autonomous**:
79
+
80
+ 1. **GATE 1 — after Plan.** Present the `task_list`; do not write implementation
81
+ code until the user approves.
82
+ 2. **GATE 2 — before Commit.** Present the diff summary and proposed messages;
83
+ do not commit until the user confirms.
84
+
85
+ Everything between the gates flows without stopping.
86
+
87
+ ## Agent / command map
88
+
89
+ | Phase | Primary | Fallback / escalation |
90
+ |-------|---------|----------------------|
91
+ | Intake / understand | `code-explorer` | trace existing paths before a tweak, fix, or refactor |
92
+ | Plan | `planner` | `architect`, `code-architect` for structural calls |
93
+ | Implement | `tdd-guide` (or `tdd-workflow` skill) | `build-error-resolver` / `/build-fix` on build breaks |
94
+ | Review | `code-reviewer` / `/code-review` | language reviewer (`python-reviewer`, `typescript-reviewer`, …) |
95
+ | Security | `security-reviewer` | — |
96
+ | MVP inner loop | `/gan-build "<brief>" --skip-planner` | drives `gan-generator` → `gan-evaluator`; tune `--max-iterations` / `--pass-threshold` |
97
+
98
+ Match the language reviewer to the repo (see the repo's own `CLAUDE.md`).
99
+
100
+ ## Security-review trigger
101
+
102
+ Pull in `security-reviewer` when the diff touches any of: authentication or
103
+ authorization, user-input handling, database queries, file-system paths,
104
+ external API calls, cryptography, or secrets / credentials. (Per `rules/common/security.md`.)
105
+
106
+ ## Handoff artifacts
107
+
108
+ The pipeline carries no hidden state — the planning docs *are* the handoff:
109
+
110
+ - `task_list` (from Plan) drives the Implement loop.
111
+ - Larger work may also emit PRD / architecture / system_design under the repo's
112
+ `docs/` per `rules/common/development-workflow.md`.
113
+ - Review findings (CRITICAL / HIGH) must be resolved before Gate 2.
114
+
115
+ ## Verification
116
+
117
+ - size tier was stated and matched the work
118
+ - Gate 1 (plan) and Gate 2 (commit) were both honored
119
+ - `security-reviewer` ran iff a security trigger was touched
120
+ - commits are conventional and scoped to one logical change
121
+ - new / changed behavior has tests; coverage ≥ 80% per `rules/common/testing.md`