constella 0.1.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 (747) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +53 -0
  3. package/.next/build-manifest.json +20 -0
  4. package/.next/diagnostics/build-diagnostics.json +6 -0
  5. package/.next/diagnostics/framework.json +1 -0
  6. package/.next/export-marker.json +6 -0
  7. package/.next/images-manifest.json +68 -0
  8. package/.next/next-minimal-server.js.nft.json +1 -0
  9. package/.next/next-server.js.nft.json +1 -0
  10. package/.next/package.json +1 -0
  11. package/.next/prerender-manifest.json +36 -0
  12. package/.next/react-loadable-manifest.json +14 -0
  13. package/.next/required-server-files.js +343 -0
  14. package/.next/required-server-files.json +343 -0
  15. package/.next/routes-manifest.json +362 -0
  16. package/.next/server/app/(app)/activity/page.js +2 -0
  17. package/.next/server/app/(app)/activity/page.js.nft.json +1 -0
  18. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -0
  19. package/.next/server/app/(app)/agents/[handle]/page.js +18 -0
  20. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -0
  21. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -0
  22. package/.next/server/app/(app)/code/page.js +2 -0
  23. package/.next/server/app/(app)/code/page.js.nft.json +1 -0
  24. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -0
  25. package/.next/server/app/(app)/config/page.js +2 -0
  26. package/.next/server/app/(app)/config/page.js.nft.json +1 -0
  27. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -0
  28. package/.next/server/app/(app)/costs/page.js +2 -0
  29. package/.next/server/app/(app)/costs/page.js.nft.json +1 -0
  30. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -0
  31. package/.next/server/app/(app)/cron/page.js +2 -0
  32. package/.next/server/app/(app)/cron/page.js.nft.json +1 -0
  33. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -0
  34. package/.next/server/app/(app)/dashboard/page.js +2 -0
  35. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -0
  36. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -0
  37. package/.next/server/app/(app)/docs/[id]/page.js +2 -0
  38. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -0
  39. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -0
  40. package/.next/server/app/(app)/docs/page.js +2 -0
  41. package/.next/server/app/(app)/docs/page.js.nft.json +1 -0
  42. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -0
  43. package/.next/server/app/(app)/github/page.js +2 -0
  44. package/.next/server/app/(app)/github/page.js.nft.json +1 -0
  45. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -0
  46. package/.next/server/app/(app)/goals/page.js +2 -0
  47. package/.next/server/app/(app)/goals/page.js.nft.json +1 -0
  48. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -0
  49. package/.next/server/app/(app)/inbox/page.js +2 -0
  50. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
  51. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
  52. package/.next/server/app/(app)/knowledge/page.js +3 -0
  53. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -0
  54. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -0
  55. package/.next/server/app/(app)/models/page.js +2 -0
  56. package/.next/server/app/(app)/models/page.js.nft.json +1 -0
  57. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -0
  58. package/.next/server/app/(app)/notifications/page.js +2 -0
  59. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -0
  60. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -0
  61. package/.next/server/app/(app)/org/page.js +2 -0
  62. package/.next/server/app/(app)/org/page.js.nft.json +1 -0
  63. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -0
  64. package/.next/server/app/(app)/organizations/page.js +2 -0
  65. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -0
  66. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -0
  67. package/.next/server/app/(app)/page.js +3 -0
  68. package/.next/server/app/(app)/page.js.nft.json +1 -0
  69. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -0
  70. package/.next/server/app/(app)/planner/page.js +2 -0
  71. package/.next/server/app/(app)/planner/page.js.nft.json +1 -0
  72. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -0
  73. package/.next/server/app/(app)/plugins/page.js +2 -0
  74. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -0
  75. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
  76. package/.next/server/app/(app)/pm/page.js +2 -0
  77. package/.next/server/app/(app)/pm/page.js.nft.json +1 -0
  78. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -0
  79. package/.next/server/app/(app)/prepare-deploy/page.js +19 -0
  80. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -0
  81. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -0
  82. package/.next/server/app/(app)/profile/page.js +2 -0
  83. package/.next/server/app/(app)/profile/page.js.nft.json +1 -0
  84. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -0
  85. package/.next/server/app/(app)/pulse/page.js +2 -0
  86. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -0
  87. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -0
  88. package/.next/server/app/(app)/reports/[id]/page.js +3 -0
  89. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -0
  90. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -0
  91. package/.next/server/app/(app)/reports/page.js +5 -0
  92. package/.next/server/app/(app)/reports/page.js.nft.json +1 -0
  93. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -0
  94. package/.next/server/app/(app)/routines/page.js +2 -0
  95. package/.next/server/app/(app)/routines/page.js.nft.json +1 -0
  96. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -0
  97. package/.next/server/app/(app)/search/page.js +2 -0
  98. package/.next/server/app/(app)/search/page.js.nft.json +1 -0
  99. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -0
  100. package/.next/server/app/(app)/security/page.js +2 -0
  101. package/.next/server/app/(app)/security/page.js.nft.json +1 -0
  102. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -0
  103. package/.next/server/app/(app)/skills/page.js +18 -0
  104. package/.next/server/app/(app)/skills/page.js.nft.json +1 -0
  105. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -0
  106. package/.next/server/app/(app)/tasks/page.js +2 -0
  107. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -0
  108. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -0
  109. package/.next/server/app/(app)/test-dev/page.js +2 -0
  110. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -0
  111. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -0
  112. package/.next/server/app/(app)/update/page.js +2 -0
  113. package/.next/server/app/(app)/update/page.js.nft.json +1 -0
  114. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -0
  115. package/.next/server/app/(auth)/login/page.js +2 -0
  116. package/.next/server/app/(auth)/login/page.js.nft.json +1 -0
  117. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -0
  118. package/.next/server/app/(auth)/onboarding/page.js +18 -0
  119. package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -0
  120. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -0
  121. package/.next/server/app/_global-error/page.js +32 -0
  122. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  123. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -0
  124. package/.next/server/app/_global-error.html +1 -0
  125. package/.next/server/app/_global-error.meta +16 -0
  126. package/.next/server/app/_global-error.rsc +15 -0
  127. package/.next/server/app/_global-error.segments/_full.segment.rsc +15 -0
  128. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +5 -0
  129. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
  130. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  131. package/.next/server/app/_global-error.segments/_index.segment.rsc +6 -0
  132. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  133. package/.next/server/app/_not-found/page.js +2 -0
  134. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  135. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -0
  136. package/.next/server/app/api/auth/[...all]/route.js +1 -0
  137. package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -0
  138. package/.next/server/app/api/auth/[...all]/route_client-reference-manifest.js +1 -0
  139. package/.next/server/app/api/cron/tick/route.js +52 -0
  140. package/.next/server/app/api/cron/tick/route.js.nft.json +1 -0
  141. package/.next/server/app/api/cron/tick/route_client-reference-manifest.js +1 -0
  142. package/.next/server/app/api/dev-login/route.js +1 -0
  143. package/.next/server/app/api/dev-login/route.js.nft.json +1 -0
  144. package/.next/server/app/api/dev-login/route_client-reference-manifest.js +1 -0
  145. package/.next/server/app/api/locks/acquire/route.js +1 -0
  146. package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -0
  147. package/.next/server/app/api/locks/acquire/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/models/progress/route.js +1 -0
  149. package/.next/server/app/api/models/progress/route.js.nft.json +1 -0
  150. package/.next/server/app/api/models/progress/route_client-reference-manifest.js +1 -0
  151. package/.next/server/app/api/passkey/authenticate/options/route.js +1 -0
  152. package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -0
  153. package/.next/server/app/api/passkey/authenticate/options/route_client-reference-manifest.js +1 -0
  154. package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -0
  155. package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -0
  156. package/.next/server/app/api/passkey/authenticate/verify/route_client-reference-manifest.js +1 -0
  157. package/.next/server/app/api/passkey/register/options/route.js +1 -0
  158. package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -0
  159. package/.next/server/app/api/passkey/register/options/route_client-reference-manifest.js +1 -0
  160. package/.next/server/app/api/passkey/register/verify/route.js +1 -0
  161. package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -0
  162. package/.next/server/app/api/passkey/register/verify/route_client-reference-manifest.js +1 -0
  163. package/.next/server/app/api/stream/route.js +4 -0
  164. package/.next/server/app/api/stream/route.js.nft.json +1 -0
  165. package/.next/server/app/api/stream/route_client-reference-manifest.js +1 -0
  166. package/.next/server/app/api/sync/file/route.js +2 -0
  167. package/.next/server/app/api/sync/file/route.js.nft.json +1 -0
  168. package/.next/server/app/api/sync/file/route_client-reference-manifest.js +1 -0
  169. package/.next/server/app/api/telegram/poll/route.js +15 -0
  170. package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -0
  171. package/.next/server/app/api/telegram/poll/route_client-reference-manifest.js +1 -0
  172. package/.next/server/app/api/upload/route.js +1 -0
  173. package/.next/server/app/api/upload/route.js.nft.json +1 -0
  174. package/.next/server/app/api/upload/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/v1/[[...path]]/route.js +1 -0
  176. package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -0
  177. package/.next/server/app/api/v1/[[...path]]/route_client-reference-manifest.js +1 -0
  178. package/.next/server/app-paths-manifest.json +53 -0
  179. package/.next/server/chunks/1003.js +1 -0
  180. package/.next/server/chunks/127.js +26 -0
  181. package/.next/server/chunks/1388.js +1 -0
  182. package/.next/server/chunks/1408.js +21 -0
  183. package/.next/server/chunks/1572.js +1 -0
  184. package/.next/server/chunks/1591.js +24 -0
  185. package/.next/server/chunks/1619.js +188 -0
  186. package/.next/server/chunks/162.js +1 -0
  187. package/.next/server/chunks/1881.js +1 -0
  188. package/.next/server/chunks/1968.js +1 -0
  189. package/.next/server/chunks/2297.js +348 -0
  190. package/.next/server/chunks/2341.js +1 -0
  191. package/.next/server/chunks/2517.js +1 -0
  192. package/.next/server/chunks/2549.js +1 -0
  193. package/.next/server/chunks/259.js +14 -0
  194. package/.next/server/chunks/2599.js +1 -0
  195. package/.next/server/chunks/260.js +1 -0
  196. package/.next/server/chunks/2867.js +147 -0
  197. package/.next/server/chunks/3018.js +1 -0
  198. package/.next/server/chunks/3050.js +18 -0
  199. package/.next/server/chunks/3085.js +12 -0
  200. package/.next/server/chunks/3131.js +1 -0
  201. package/.next/server/chunks/3242.js +1 -0
  202. package/.next/server/chunks/3266.js +15 -0
  203. package/.next/server/chunks/3524.js +1 -0
  204. package/.next/server/chunks/3527.js +479 -0
  205. package/.next/server/chunks/3533.js +869 -0
  206. package/.next/server/chunks/3550.js +1 -0
  207. package/.next/server/chunks/3609.js +2 -0
  208. package/.next/server/chunks/3667.js +462 -0
  209. package/.next/server/chunks/3760.js +4 -0
  210. package/.next/server/chunks/4679.js +1 -0
  211. package/.next/server/chunks/4804.js +1 -0
  212. package/.next/server/chunks/4832.js +2 -0
  213. package/.next/server/chunks/4853.js +1 -0
  214. package/.next/server/chunks/4979.js +67 -0
  215. package/.next/server/chunks/5060.js +1 -0
  216. package/.next/server/chunks/5278.js +1 -0
  217. package/.next/server/chunks/5614.js +1 -0
  218. package/.next/server/chunks/5818.js +1 -0
  219. package/.next/server/chunks/6479.js +1 -0
  220. package/.next/server/chunks/6658.js +1 -0
  221. package/.next/server/chunks/6706.js +1 -0
  222. package/.next/server/chunks/6719.js +1 -0
  223. package/.next/server/chunks/678.js +1 -0
  224. package/.next/server/chunks/683.js +1 -0
  225. package/.next/server/chunks/6862.js +1 -0
  226. package/.next/server/chunks/6882.js +1 -0
  227. package/.next/server/chunks/7037.js +1 -0
  228. package/.next/server/chunks/7107.js +741 -0
  229. package/.next/server/chunks/73.js +17 -0
  230. package/.next/server/chunks/7327.js +1 -0
  231. package/.next/server/chunks/7514.js +1 -0
  232. package/.next/server/chunks/7622.js +1 -0
  233. package/.next/server/chunks/7778.js +1 -0
  234. package/.next/server/chunks/7912.js +1 -0
  235. package/.next/server/chunks/7949.js +1 -0
  236. package/.next/server/chunks/7971.js +1 -0
  237. package/.next/server/chunks/7989.js +1 -0
  238. package/.next/server/chunks/842.js +22 -0
  239. package/.next/server/chunks/8762.js +15 -0
  240. package/.next/server/chunks/8823.js +77 -0
  241. package/.next/server/chunks/9146.js +4 -0
  242. package/.next/server/chunks/9676.js +1 -0
  243. package/.next/server/chunks/9783.js +22 -0
  244. package/.next/server/chunks/9969.js +3 -0
  245. package/.next/server/functions-config-manifest.json +18 -0
  246. package/.next/server/instrumentation.js +1 -0
  247. package/.next/server/instrumentation.js.nft.json +1 -0
  248. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  249. package/.next/server/middleware-build-manifest.js +1 -0
  250. package/.next/server/middleware-manifest.json +6 -0
  251. package/.next/server/middleware-react-loadable-manifest.js +1 -0
  252. package/.next/server/middleware.js +18 -0
  253. package/.next/server/middleware.js.nft.json +1 -0
  254. package/.next/server/next-font-manifest.js +1 -0
  255. package/.next/server/next-font-manifest.json +1 -0
  256. package/.next/server/pages/500.html +1 -0
  257. package/.next/server/pages-manifest.json +3 -0
  258. package/.next/server/prefetch-hints.json +1 -0
  259. package/.next/server/server-reference-manifest.js +1 -0
  260. package/.next/server/server-reference-manifest.json +1 -0
  261. package/.next/server/webpack-runtime.js +1 -0
  262. package/.next/static/chunks/1858-339516f78a4b00da.js +1 -0
  263. package/.next/static/chunks/2320-fc8b39380e69d465.js +2 -0
  264. package/.next/static/chunks/23550918-ff694f70f4b0648c.js +1 -0
  265. package/.next/static/chunks/3219-ebb3c23be38c838d.js +1 -0
  266. package/.next/static/chunks/4263-adecb5b466380b6e.js +1 -0
  267. package/.next/static/chunks/5479-0cceab68cd0ca9c7.js +1 -0
  268. package/.next/static/chunks/5701-665b927b06158b76.js +1 -0
  269. package/.next/static/chunks/5920.6451a68b63918988.js +1 -0
  270. package/.next/static/chunks/6575-5c9139720bb0f5bf.js +4 -0
  271. package/.next/static/chunks/6834-4759af1ce7d95fb6.js +32 -0
  272. package/.next/static/chunks/7509.721cd47a931c5518.js +1 -0
  273. package/.next/static/chunks/8264-1ca011989ee2b231.js +1 -0
  274. package/.next/static/chunks/9219-4a39a98b5502d9d1.js +1 -0
  275. package/.next/static/chunks/9690-53d5222618cbeddb.js +1 -0
  276. package/.next/static/chunks/app/(app)/activity/page-3973534281ecea81.js +1 -0
  277. package/.next/static/chunks/app/(app)/agents/[handle]/page-83662a175c098282.js +1 -0
  278. package/.next/static/chunks/app/(app)/code/page-33979545192cd137.js +1 -0
  279. package/.next/static/chunks/app/(app)/config/page-9933aed1ca8a85c1.js +1 -0
  280. package/.next/static/chunks/app/(app)/costs/page-131c4dc580efcc19.js +1 -0
  281. package/.next/static/chunks/app/(app)/cron/page-53ea1aff998a87ca.js +1 -0
  282. package/.next/static/chunks/app/(app)/dashboard/page-deed83aaa9d0d447.js +1 -0
  283. package/.next/static/chunks/app/(app)/docs/[id]/page-38c993d73c0eab4f.js +1 -0
  284. package/.next/static/chunks/app/(app)/docs/page-bf463b55d0554e86.js +1 -0
  285. package/.next/static/chunks/app/(app)/error-988cd28480809861.js +1 -0
  286. package/.next/static/chunks/app/(app)/github/page-62678b4e82dfecb6.js +1 -0
  287. package/.next/static/chunks/app/(app)/goals/page-4adb426fe1c96106.js +1 -0
  288. package/.next/static/chunks/app/(app)/inbox/page-e347dc55ab467310.js +1 -0
  289. package/.next/static/chunks/app/(app)/knowledge/page-65393a045b4349be.js +1 -0
  290. package/.next/static/chunks/app/(app)/layout-7f65675705b011d8.js +1 -0
  291. package/.next/static/chunks/app/(app)/models/page-e01f1dd7e49a2951.js +1 -0
  292. package/.next/static/chunks/app/(app)/notifications/page-56548ac87aef00da.js +1 -0
  293. package/.next/static/chunks/app/(app)/org/page-699e6a6dc0db7d81.js +1 -0
  294. package/.next/static/chunks/app/(app)/organizations/page-36051a380a7e8eb7.js +1 -0
  295. package/.next/static/chunks/app/(app)/page-7d1011a566f81520.js +1 -0
  296. package/.next/static/chunks/app/(app)/planner/page-dab7ced94083373a.js +1 -0
  297. package/.next/static/chunks/app/(app)/plugins/page-5b5a1f53389be42e.js +1 -0
  298. package/.next/static/chunks/app/(app)/pm/page-0de5c08c0b227bb0.js +1 -0
  299. package/.next/static/chunks/app/(app)/prepare-deploy/page-e426038552df8d41.js +1 -0
  300. package/.next/static/chunks/app/(app)/profile/page-608dfcaf8aae0a69.js +1 -0
  301. package/.next/static/chunks/app/(app)/pulse/page-309ccaca91de1faa.js +1 -0
  302. package/.next/static/chunks/app/(app)/reports/[id]/page-53ea1aff998a87ca.js +1 -0
  303. package/.next/static/chunks/app/(app)/reports/page-68cdc6dcfa472d86.js +1 -0
  304. package/.next/static/chunks/app/(app)/routines/page-bcc55550b197a9fa.js +1 -0
  305. package/.next/static/chunks/app/(app)/search/page-5c5f67558d0dbf0d.js +1 -0
  306. package/.next/static/chunks/app/(app)/security/page-a7d41e36aa366b45.js +1 -0
  307. package/.next/static/chunks/app/(app)/skills/page-c5b21e89593b8336.js +1 -0
  308. package/.next/static/chunks/app/(app)/tasks/page-08ae079e3e54d2ce.js +1 -0
  309. package/.next/static/chunks/app/(app)/test-dev/page-633f82dfd9c3ce23.js +1 -0
  310. package/.next/static/chunks/app/(app)/update/page-4be019054351bfac.js +1 -0
  311. package/.next/static/chunks/app/(auth)/login/page-6e85d3377062acae.js +1 -0
  312. package/.next/static/chunks/app/(auth)/onboarding/page-ebb10c175abf3b85.js +1 -0
  313. package/.next/static/chunks/app/_global-error/page-23fe50a6bf589c97.js +1 -0
  314. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +1 -0
  315. package/.next/static/chunks/app/api/auth/[...all]/route-23fe50a6bf589c97.js +1 -0
  316. package/.next/static/chunks/app/api/cron/tick/route-23fe50a6bf589c97.js +1 -0
  317. package/.next/static/chunks/app/api/dev-login/route-23fe50a6bf589c97.js +1 -0
  318. package/.next/static/chunks/app/api/locks/acquire/route-23fe50a6bf589c97.js +1 -0
  319. package/.next/static/chunks/app/api/models/progress/route-23fe50a6bf589c97.js +1 -0
  320. package/.next/static/chunks/app/api/passkey/authenticate/options/route-23fe50a6bf589c97.js +1 -0
  321. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-23fe50a6bf589c97.js +1 -0
  322. package/.next/static/chunks/app/api/passkey/register/options/route-23fe50a6bf589c97.js +1 -0
  323. package/.next/static/chunks/app/api/passkey/register/verify/route-23fe50a6bf589c97.js +1 -0
  324. package/.next/static/chunks/app/api/stream/route-23fe50a6bf589c97.js +1 -0
  325. package/.next/static/chunks/app/api/sync/file/route-23fe50a6bf589c97.js +1 -0
  326. package/.next/static/chunks/app/api/telegram/poll/route-23fe50a6bf589c97.js +1 -0
  327. package/.next/static/chunks/app/api/upload/route-23fe50a6bf589c97.js +1 -0
  328. package/.next/static/chunks/app/api/v1/[[...path]]/route-23fe50a6bf589c97.js +1 -0
  329. package/.next/static/chunks/app/error-09899a13c38b6e89.js +1 -0
  330. package/.next/static/chunks/app/global-error-b8050d4d886f448c.js +1 -0
  331. package/.next/static/chunks/app/layout-ab9deed1e7e2e9df.js +1 -0
  332. package/.next/static/chunks/framework-4b2c6b6043dd203f.js +1 -0
  333. package/.next/static/chunks/main-722e16032e7764d1.js +5 -0
  334. package/.next/static/chunks/main-app-761880af2b6f1962.js +1 -0
  335. package/.next/static/chunks/next/dist/client/components/builtin/app-error-23fe50a6bf589c97.js +1 -0
  336. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-23fe50a6bf589c97.js +1 -0
  337. package/.next/static/chunks/next/dist/client/components/builtin/not-found-23fe50a6bf589c97.js +1 -0
  338. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-23fe50a6bf589c97.js +1 -0
  339. package/.next/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  340. package/.next/static/chunks/webpack-222e3894b78c67db.js +1 -0
  341. package/.next/static/css/0a9b5805594444e3.css +1 -0
  342. package/.next/static/yztMvBwyrWWkSqP6jfXoa/_buildManifest.js +1 -0
  343. package/.next/static/yztMvBwyrWWkSqP6jfXoa/_ssgManifest.js +1 -0
  344. package/.next/trace-build +1 -0
  345. package/.next/types/app/(app)/activity/page.ts +87 -0
  346. package/.next/types/app/(app)/agents/[handle]/page.ts +87 -0
  347. package/.next/types/app/(app)/code/page.ts +87 -0
  348. package/.next/types/app/(app)/config/page.ts +87 -0
  349. package/.next/types/app/(app)/costs/page.ts +87 -0
  350. package/.next/types/app/(app)/cron/page.ts +87 -0
  351. package/.next/types/app/(app)/dashboard/page.ts +87 -0
  352. package/.next/types/app/(app)/docs/[id]/page.ts +87 -0
  353. package/.next/types/app/(app)/docs/page.ts +87 -0
  354. package/.next/types/app/(app)/github/page.ts +87 -0
  355. package/.next/types/app/(app)/goals/page.ts +87 -0
  356. package/.next/types/app/(app)/inbox/page.ts +87 -0
  357. package/.next/types/app/(app)/knowledge/page.ts +87 -0
  358. package/.next/types/app/(app)/models/page.ts +87 -0
  359. package/.next/types/app/(app)/notifications/page.ts +87 -0
  360. package/.next/types/app/(app)/org/page.ts +87 -0
  361. package/.next/types/app/(app)/organizations/page.ts +87 -0
  362. package/.next/types/app/(app)/page.ts +87 -0
  363. package/.next/types/app/(app)/planner/page.ts +87 -0
  364. package/.next/types/app/(app)/plugins/page.ts +87 -0
  365. package/.next/types/app/(app)/pm/page.ts +87 -0
  366. package/.next/types/app/(app)/prepare-deploy/page.ts +87 -0
  367. package/.next/types/app/(app)/profile/page.ts +87 -0
  368. package/.next/types/app/(app)/pulse/page.ts +87 -0
  369. package/.next/types/app/(app)/reports/[id]/page.ts +87 -0
  370. package/.next/types/app/(app)/reports/page.ts +87 -0
  371. package/.next/types/app/(app)/routines/page.ts +87 -0
  372. package/.next/types/app/(app)/search/page.ts +87 -0
  373. package/.next/types/app/(app)/security/page.ts +87 -0
  374. package/.next/types/app/(app)/skills/page.ts +87 -0
  375. package/.next/types/app/(app)/tasks/page.ts +87 -0
  376. package/.next/types/app/(app)/test-dev/page.ts +87 -0
  377. package/.next/types/app/(app)/update/page.ts +87 -0
  378. package/.next/types/app/(auth)/login/page.ts +87 -0
  379. package/.next/types/app/(auth)/onboarding/page.ts +87 -0
  380. package/.next/types/app/api/auth/[...all]/route.ts +351 -0
  381. package/.next/types/app/api/cron/tick/route.ts +351 -0
  382. package/.next/types/app/api/dev-login/route.ts +351 -0
  383. package/.next/types/app/api/locks/acquire/route.ts +351 -0
  384. package/.next/types/app/api/models/progress/route.ts +351 -0
  385. package/.next/types/app/api/passkey/authenticate/options/route.ts +351 -0
  386. package/.next/types/app/api/passkey/authenticate/verify/route.ts +351 -0
  387. package/.next/types/app/api/passkey/register/options/route.ts +351 -0
  388. package/.next/types/app/api/passkey/register/verify/route.ts +351 -0
  389. package/.next/types/app/api/stream/route.ts +351 -0
  390. package/.next/types/app/api/sync/file/route.ts +351 -0
  391. package/.next/types/app/api/telegram/poll/route.ts +351 -0
  392. package/.next/types/app/api/upload/route.ts +351 -0
  393. package/.next/types/app/api/v1/[[...path]]/route.ts +351 -0
  394. package/.next/types/cache-life.d.ts +145 -0
  395. package/.next/types/link.d.ts +210 -0
  396. package/.next/types/package.json +1 -0
  397. package/.next/types/routes.d.ts +120 -0
  398. package/.next/types/validator.ts +511 -0
  399. package/CHANGELOG.md +312 -0
  400. package/LICENSE +21 -0
  401. package/README.md +382 -0
  402. package/README.pt-BR.md +391 -0
  403. package/bin/constella.mjs +329 -0
  404. package/bin/guard-hook.mjs +44 -0
  405. package/bin/lock-hook.mjs +49 -0
  406. package/bin/worker.mjs +142 -0
  407. package/docs/assets/arch-orbit.svg +56 -0
  408. package/docs/assets/blackhole.svg +37 -0
  409. package/docs/assets/divider-orbit.svg +23 -0
  410. package/docs/assets/hero-constella.svg +72 -0
  411. package/docs/en/AGENTS.md +279 -0
  412. package/docs/en/AI_ARCHITECTURE.md +373 -0
  413. package/docs/en/ARCHITECTURE.md +334 -0
  414. package/docs/en/AUTH_MODE.md +247 -0
  415. package/docs/en/CHAT_COMMANDS.md +305 -0
  416. package/docs/en/CONFIGURATION.md +340 -0
  417. package/docs/en/DEPLOY.md +331 -0
  418. package/docs/en/DM.md +297 -0
  419. package/docs/en/FAQ.md +258 -0
  420. package/docs/en/GITHUB.md +341 -0
  421. package/docs/en/GOALS_SPECS_ISSUES.md +303 -0
  422. package/docs/en/INBOX.md +340 -0
  423. package/docs/en/INSTALLATION.md +329 -0
  424. package/docs/en/KB_AGENT.md +305 -0
  425. package/docs/en/KB_RAG.md +356 -0
  426. package/docs/en/MCP.md +313 -0
  427. package/docs/en/MEMORY_RAG.md +289 -0
  428. package/docs/en/MODELS.md +341 -0
  429. package/docs/en/ONBOARDING.md +327 -0
  430. package/docs/en/PLUGINS.md +290 -0
  431. package/docs/en/PORTABLE_MODE.md +387 -0
  432. package/docs/en/PO_AGENT.md +379 -0
  433. package/docs/en/PREPARE_DEPLOY.md +308 -0
  434. package/docs/en/PROJECT_STACKS.md +258 -0
  435. package/docs/en/PUBLIC_API.md +315 -0
  436. package/docs/en/PUBLISHING.md +343 -0
  437. package/docs/en/README.md +95 -0
  438. package/docs/en/SECURITY.md +280 -0
  439. package/docs/en/SKILLS.md +349 -0
  440. package/docs/en/START_MODE.md +340 -0
  441. package/docs/en/SYNCED_BLOCKS.md +320 -0
  442. package/docs/en/TEAM_ROOM.md +285 -0
  443. package/docs/en/TELEGRAM.md +294 -0
  444. package/docs/en/TEST_DEV.md +321 -0
  445. package/docs/en/TROUBLESHOOTING.md +294 -0
  446. package/docs/en/UPDATE.md +301 -0
  447. package/docs/en/VPS_MODE.md +334 -0
  448. package/docs/en/WORKFLOW.md +321 -0
  449. package/docs/pt/AGENTS.md +279 -0
  450. package/docs/pt/AI_ARCHITECTURE.md +373 -0
  451. package/docs/pt/ARCHITECTURE.md +334 -0
  452. package/docs/pt/AUTH_MODE.md +247 -0
  453. package/docs/pt/CHAT_COMMANDS.md +307 -0
  454. package/docs/pt/CONFIGURATION.md +340 -0
  455. package/docs/pt/DEPLOY.md +331 -0
  456. package/docs/pt/DM.md +297 -0
  457. package/docs/pt/FAQ.md +258 -0
  458. package/docs/pt/GITHUB.md +341 -0
  459. package/docs/pt/GOALS_SPECS_ISSUES.md +303 -0
  460. package/docs/pt/INBOX.md +340 -0
  461. package/docs/pt/INSTALLATION.md +329 -0
  462. package/docs/pt/KB_AGENT.md +305 -0
  463. package/docs/pt/KB_RAG.md +356 -0
  464. package/docs/pt/MCP.md +313 -0
  465. package/docs/pt/MEMORY_RAG.md +289 -0
  466. package/docs/pt/MODELS.md +341 -0
  467. package/docs/pt/ONBOARDING.md +327 -0
  468. package/docs/pt/PLUGINS.md +290 -0
  469. package/docs/pt/PORTABLE_MODE.md +387 -0
  470. package/docs/pt/PO_AGENT.md +379 -0
  471. package/docs/pt/PREPARE_DEPLOY.md +308 -0
  472. package/docs/pt/PROJECT_STACKS.md +258 -0
  473. package/docs/pt/PUBLIC_API.md +315 -0
  474. package/docs/pt/PUBLISHING.md +343 -0
  475. package/docs/pt/README.md +95 -0
  476. package/docs/pt/SECURITY.md +280 -0
  477. package/docs/pt/SKILLS.md +349 -0
  478. package/docs/pt/START_MODE.md +340 -0
  479. package/docs/pt/SYNCED_BLOCKS.md +320 -0
  480. package/docs/pt/TEAM_ROOM.md +285 -0
  481. package/docs/pt/TELEGRAM.md +294 -0
  482. package/docs/pt/TEST_DEV.md +321 -0
  483. package/docs/pt/TROUBLESHOOTING.md +294 -0
  484. package/docs/pt/UPDATE.md +301 -0
  485. package/docs/pt/VPS_MODE.md +334 -0
  486. package/docs/pt/WORKFLOW.md +321 -0
  487. package/drizzle/0000_regular_nightshade.sql +644 -0
  488. package/drizzle/0001_mixed_zombie.sql +106 -0
  489. package/drizzle/meta/0000_snapshot.json +4650 -0
  490. package/drizzle/meta/0001_snapshot.json +5418 -0
  491. package/drizzle/meta/_journal.json +20 -0
  492. package/drizzle.config.mjs +16 -0
  493. package/next.config.mjs +18 -0
  494. package/package.json +130 -0
  495. package/scripts/clean-repo.mjs +20 -0
  496. package/scripts/dev-all.mjs +46 -0
  497. package/scripts/i18n-parity.mjs +57 -0
  498. package/scripts/mcp-server.mjs +100 -0
  499. package/scripts/postbuild.mjs +11 -0
  500. package/scripts/publish-public.mjs +116 -0
  501. package/scripts/start-all.mjs +45 -0
  502. package/scripts/trim-next.mjs +23 -0
  503. package/scripts/vps-install.sh +39 -0
  504. package/skills/CONTRIBUTING.md +122 -0
  505. package/skills/COVERAGE.md +129 -0
  506. package/skills/INDEX.json +3443 -0
  507. package/skills/README.md +57 -0
  508. package/skills/design/animation-motion/SKILL.md +60 -0
  509. package/skills/design/color-and-typography/SKILL.md +60 -0
  510. package/skills/design/css-techniques/SKILL.md +58 -0
  511. package/skills/design/design-systems/SKILL.md +60 -0
  512. package/skills/design/gradients/SKILL.md +59 -0
  513. package/skills/design/graphic-design-basics/SKILL.md +55 -0
  514. package/skills/design/microinteractions/SKILL.md +58 -0
  515. package/skills/design/responsive-layout/SKILL.md +59 -0
  516. package/skills/design/ui-ux-principles/SKILL.md +58 -0
  517. package/skills/engineering/architecture/api-design-rest-graphql/SKILL.md +67 -0
  518. package/skills/engineering/architecture/caching-strategies/SKILL.md +59 -0
  519. package/skills/engineering/architecture/data-modeling/SKILL.md +64 -0
  520. package/skills/engineering/architecture/message-queues-async/SKILL.md +58 -0
  521. package/skills/engineering/architecture/scalability-reliability/SKILL.md +62 -0
  522. package/skills/engineering/architecture/software-architecture-patterns/SKILL.md +56 -0
  523. package/skills/engineering/architecture/system-design-fundamentals/SKILL.md +56 -0
  524. package/skills/engineering/backend/auth-and-authorization/SKILL.md +62 -0
  525. package/skills/engineering/backend/backend-fundamentals/SKILL.md +65 -0
  526. package/skills/engineering/backend/observability-logging/SKILL.md +60 -0
  527. package/skills/engineering/frontend/accessibility-wcag/SKILL.md +57 -0
  528. package/skills/engineering/frontend/frontend-architecture/SKILL.md +65 -0
  529. package/skills/engineering/frontend/rendering-strategies-ssr-csr/SKILL.md +60 -0
  530. package/skills/engineering/frontend/state-management/SKILL.md +69 -0
  531. package/skills/engineering/performance/backend-performance/SKILL.md +69 -0
  532. package/skills/engineering/performance/database-query-optimization/SKILL.md +64 -0
  533. package/skills/engineering/performance/profiling-and-benchmarking/SKILL.md +60 -0
  534. package/skills/engineering/performance/web-performance-core-vitals/SKILL.md +72 -0
  535. package/skills/engineering/practices/clean-code/SKILL.md +61 -0
  536. package/skills/engineering/practices/code-optimization/SKILL.md +60 -0
  537. package/skills/engineering/practices/code-review-practices/SKILL.md +58 -0
  538. package/skills/engineering/practices/git-workflow/SKILL.md +62 -0
  539. package/skills/engineering/practices/refactoring/SKILL.md +58 -0
  540. package/skills/engineering/security/appsec-fundamentals/SKILL.md +70 -0
  541. package/skills/engineering/security/dependency-supply-chain/SKILL.md +77 -0
  542. package/skills/engineering/security/owasp-asvs/SKILL.md +54 -0
  543. package/skills/engineering/security/owasp-top-10/SKILL.md +63 -0
  544. package/skills/engineering/security/secrets-management/SKILL.md +58 -0
  545. package/skills/engineering/security/secure-auth-sessions/SKILL.md +56 -0
  546. package/skills/engineering/testing/tdd-and-coverage/SKILL.md +62 -0
  547. package/skills/engineering/testing/testing-strategy-pyramid/SKILL.md +56 -0
  548. package/skills/engineering/testing/unit-integration-e2e/SKILL.md +75 -0
  549. package/skills/languages/c/SKILL.md +74 -0
  550. package/skills/languages/clojure/SKILL.md +73 -0
  551. package/skills/languages/cpp/SKILL.md +75 -0
  552. package/skills/languages/csharp/SKILL.md +75 -0
  553. package/skills/languages/dart/SKILL.md +82 -0
  554. package/skills/languages/elixir/SKILL.md +74 -0
  555. package/skills/languages/erlang/SKILL.md +76 -0
  556. package/skills/languages/go/SKILL.md +83 -0
  557. package/skills/languages/haskell/SKILL.md +70 -0
  558. package/skills/languages/java/SKILL.md +71 -0
  559. package/skills/languages/javascript/SKILL.md +62 -0
  560. package/skills/languages/kotlin/SKILL.md +68 -0
  561. package/skills/languages/lua/SKILL.md +79 -0
  562. package/skills/languages/objectivec/SKILL.md +83 -0
  563. package/skills/languages/php/SKILL.md +74 -0
  564. package/skills/languages/python/SKILL.md +68 -0
  565. package/skills/languages/r/SKILL.md +70 -0
  566. package/skills/languages/ruby/SKILL.md +67 -0
  567. package/skills/languages/rust/SKILL.md +72 -0
  568. package/skills/languages/scala/SKILL.md +73 -0
  569. package/skills/languages/swift/SKILL.md +73 -0
  570. package/skills/languages/typescript/SKILL.md +69 -0
  571. package/skills/meta/authoring-agent-skills/SKILL.md +73 -0
  572. package/skills/meta/progressive-disclosure/SKILL.md +65 -0
  573. package/skills/meta/skill-frontmatter-spec/SKILL.md +65 -0
  574. package/skills/process/adr-technical-decisions/SKILL.md +59 -0
  575. package/skills/process/app-planning/SKILL.md +63 -0
  576. package/skills/process/architecture-before-code/SKILL.md +52 -0
  577. package/skills/process/breaking-work-into-sprints/SKILL.md +53 -0
  578. package/skills/process/idea-to-product/SKILL.md +50 -0
  579. package/skills/process/mocks-and-screen-flows/SKILL.md +52 -0
  580. package/skills/process/prioritization-moscow-rice/SKILL.md +64 -0
  581. package/skills/process/problem-framing/SKILL.md +51 -0
  582. package/skills/process/product-discovery/SKILL.md +53 -0
  583. package/skills/process/readme-generation/SKILL.md +90 -0
  584. package/skills/process/requirements-to-specs/SKILL.md +53 -0
  585. package/skills/process/research-official-docs/SKILL.md +58 -0
  586. package/skills/process/review-code-perf-security/SKILL.md +65 -0
  587. package/skills/process/security-by-design/SKILL.md +68 -0
  588. package/skills/process/specs-to-issues/SKILL.md +53 -0
  589. package/skills/process/testing-before-done/SKILL.md +61 -0
  590. package/skills/process/validating-ux-navigation/SKILL.md +63 -0
  591. package/skills/references/ai-attachments-ui/SKILL.md +66 -0
  592. package/skills/references/ai-in-browser-webllm/SKILL.md +74 -0
  593. package/skills/references/ai-tool-ui-patterns/SKILL.md +63 -0
  594. package/skills/references/component-patterns-gallery/SKILL.md +62 -0
  595. package/skills/references/gradient-resources/SKILL.md +66 -0
  596. package/skills/references/react-component-libraries/SKILL.md +61 -0
  597. package/skills/references/saas-landing-patterns/SKILL.md +67 -0
  598. package/skills/references/shadcn-tailwind-theming/SKILL.md +74 -0
  599. package/skills/references/vercel-ai-sdk-elements/SKILL.md +66 -0
  600. package/skills/references/web-animation-codrops/SKILL.md +68 -0
  601. package/skills/stacks/aiml/jupyter/SKILL.md +68 -0
  602. package/skills/stacks/aiml/keras/SKILL.md +77 -0
  603. package/skills/stacks/aiml/numpy/SKILL.md +69 -0
  604. package/skills/stacks/aiml/pandas/SKILL.md +72 -0
  605. package/skills/stacks/aiml/pytorch/SKILL.md +77 -0
  606. package/skills/stacks/aiml/scikit-learn/SKILL.md +74 -0
  607. package/skills/stacks/aiml/tensorflow/SKILL.md +79 -0
  608. package/skills/stacks/auth/auth0/SKILL.md +63 -0
  609. package/skills/stacks/auth/authjs/SKILL.md +69 -0
  610. package/skills/stacks/auth/clerk/SKILL.md +72 -0
  611. package/skills/stacks/auth/keycloak/SKILL.md +63 -0
  612. package/skills/stacks/auth/lucia/SKILL.md +56 -0
  613. package/skills/stacks/auth/passport/SKILL.md +70 -0
  614. package/skills/stacks/auth/supabase-auth/SKILL.md +66 -0
  615. package/skills/stacks/baas/amplify/SKILL.md +71 -0
  616. package/skills/stacks/baas/appwrite/SKILL.md +79 -0
  617. package/skills/stacks/baas/firebase/SKILL.md +73 -0
  618. package/skills/stacks/baas/heroku/SKILL.md +71 -0
  619. package/skills/stacks/backend/actix/SKILL.md +77 -0
  620. package/skills/stacks/backend/adonisjs/SKILL.md +65 -0
  621. package/skills/stacks/backend/aspnet-core/SKILL.md +75 -0
  622. package/skills/stacks/backend/codeigniter/SKILL.md +76 -0
  623. package/skills/stacks/backend/django/SKILL.md +62 -0
  624. package/skills/stacks/backend/express/SKILL.md +65 -0
  625. package/skills/stacks/backend/fastapi/SKILL.md +64 -0
  626. package/skills/stacks/backend/fastify/SKILL.md +64 -0
  627. package/skills/stacks/backend/fiber/SKILL.md +68 -0
  628. package/skills/stacks/backend/flask/SKILL.md +71 -0
  629. package/skills/stacks/backend/gin/SKILL.md +68 -0
  630. package/skills/stacks/backend/graphql/SKILL.md +70 -0
  631. package/skills/stacks/backend/hono/SKILL.md +64 -0
  632. package/skills/stacks/backend/koa/SKILL.md +63 -0
  633. package/skills/stacks/backend/laravel/SKILL.md +73 -0
  634. package/skills/stacks/backend/nestjs/SKILL.md +70 -0
  635. package/skills/stacks/backend/nginx/SKILL.md +77 -0
  636. package/skills/stacks/backend/phoenix/SKILL.md +68 -0
  637. package/skills/stacks/backend/rails/SKILL.md +67 -0
  638. package/skills/stacks/backend/spring/SKILL.md +70 -0
  639. package/skills/stacks/backend/spring-boot/SKILL.md +70 -0
  640. package/skills/stacks/backend/symfony/SKILL.md +77 -0
  641. package/skills/stacks/container/containerd/SKILL.md +75 -0
  642. package/skills/stacks/container/docker/SKILL.md +90 -0
  643. package/skills/stacks/container/podman/SKILL.md +93 -0
  644. package/skills/stacks/database/cassandra/SKILL.md +74 -0
  645. package/skills/stacks/database/cockroachdb/SKILL.md +69 -0
  646. package/skills/stacks/database/dynamodb/SKILL.md +62 -0
  647. package/skills/stacks/database/mariadb/SKILL.md +71 -0
  648. package/skills/stacks/database/mongodb/SKILL.md +71 -0
  649. package/skills/stacks/database/mysql/SKILL.md +72 -0
  650. package/skills/stacks/database/neon/SKILL.md +68 -0
  651. package/skills/stacks/database/planetscale/SKILL.md +70 -0
  652. package/skills/stacks/database/postgresql/SKILL.md +81 -0
  653. package/skills/stacks/database/redis/SKILL.md +78 -0
  654. package/skills/stacks/database/sqlite/SKILL.md +70 -0
  655. package/skills/stacks/database/supabase/SKILL.md +79 -0
  656. package/skills/stacks/dataviz/chart-js/SKILL.md +72 -0
  657. package/skills/stacks/dataviz/d3/SKILL.md +77 -0
  658. package/skills/stacks/dataviz/grafana/SKILL.md +69 -0
  659. package/skills/stacks/dataviz/plotly/SKILL.md +71 -0
  660. package/skills/stacks/frontend/alpine/SKILL.md +75 -0
  661. package/skills/stacks/frontend/angular/SKILL.md +75 -0
  662. package/skills/stacks/frontend/backbone/SKILL.md +82 -0
  663. package/skills/stacks/frontend/ember/SKILL.md +85 -0
  664. package/skills/stacks/frontend/htmx/SKILL.md +73 -0
  665. package/skills/stacks/frontend/lit/SKILL.md +76 -0
  666. package/skills/stacks/frontend/preact/SKILL.md +74 -0
  667. package/skills/stacks/frontend/qwik/SKILL.md +65 -0
  668. package/skills/stacks/frontend/react/SKILL.md +77 -0
  669. package/skills/stacks/frontend/solidjs/SKILL.md +75 -0
  670. package/skills/stacks/frontend/svelte/SKILL.md +70 -0
  671. package/skills/stacks/frontend/vue/SKILL.md +69 -0
  672. package/skills/stacks/infra/ansible/SKILL.md +76 -0
  673. package/skills/stacks/infra/aws/SKILL.md +66 -0
  674. package/skills/stacks/infra/azure/SKILL.md +72 -0
  675. package/skills/stacks/infra/circleci/SKILL.md +78 -0
  676. package/skills/stacks/infra/cloudflare/SKILL.md +65 -0
  677. package/skills/stacks/infra/fly-io/SKILL.md +63 -0
  678. package/skills/stacks/infra/gcp/SKILL.md +66 -0
  679. package/skills/stacks/infra/jenkins/SKILL.md +73 -0
  680. package/skills/stacks/infra/kubernetes/SKILL.md +64 -0
  681. package/skills/stacks/infra/netlify/SKILL.md +60 -0
  682. package/skills/stacks/infra/railway/SKILL.md +63 -0
  683. package/skills/stacks/infra/tailscale/SKILL.md +65 -0
  684. package/skills/stacks/infra/terraform/SKILL.md +75 -0
  685. package/skills/stacks/infra/vagrant/SKILL.md +70 -0
  686. package/skills/stacks/infra/vercel/SKILL.md +60 -0
  687. package/skills/stacks/meta/astro/SKILL.md +64 -0
  688. package/skills/stacks/meta/docusaurus/SKILL.md +71 -0
  689. package/skills/stacks/meta/eleventy/SKILL.md +69 -0
  690. package/skills/stacks/meta/gatsby/SKILL.md +63 -0
  691. package/skills/stacks/meta/hugo/SKILL.md +73 -0
  692. package/skills/stacks/meta/jekyll/SKILL.md +70 -0
  693. package/skills/stacks/meta/nextjs/SKILL.md +62 -0
  694. package/skills/stacks/meta/nuxt/SKILL.md +66 -0
  695. package/skills/stacks/meta/remix/SKILL.md +67 -0
  696. package/skills/stacks/meta/sveltekit/SKILL.md +70 -0
  697. package/skills/stacks/meta/vite/SKILL.md +63 -0
  698. package/skills/stacks/mobile/android/SKILL.md +77 -0
  699. package/skills/stacks/mobile/flutter/SKILL.md +77 -0
  700. package/skills/stacks/mobile/ionic/SKILL.md +72 -0
  701. package/skills/stacks/mobile/nativescript/SKILL.md +71 -0
  702. package/skills/stacks/mobile/react-native/SKILL.md +75 -0
  703. package/skills/stacks/mobile/xamarin/SKILL.md +73 -0
  704. package/skills/stacks/orm/diesel/SKILL.md +72 -0
  705. package/skills/stacks/orm/django-orm/SKILL.md +58 -0
  706. package/skills/stacks/orm/drizzle/SKILL.md +67 -0
  707. package/skills/stacks/orm/gorm/SKILL.md +73 -0
  708. package/skills/stacks/orm/knex/SKILL.md +64 -0
  709. package/skills/stacks/orm/mongoose/SKILL.md +64 -0
  710. package/skills/stacks/orm/prisma/SKILL.md +64 -0
  711. package/skills/stacks/orm/sequelize/SKILL.md +65 -0
  712. package/skills/stacks/orm/sqlalchemy/SKILL.md +71 -0
  713. package/skills/stacks/orm/typeorm/SKILL.md +70 -0
  714. package/skills/stacks/queue/bullmq/SKILL.md +69 -0
  715. package/skills/stacks/queue/celery/SKILL.md +68 -0
  716. package/skills/stacks/queue/kafka/SKILL.md +66 -0
  717. package/skills/stacks/queue/nats/SKILL.md +66 -0
  718. package/skills/stacks/queue/rabbitmq/SKILL.md +64 -0
  719. package/skills/stacks/queue/redis/SKILL.md +66 -0
  720. package/skills/stacks/runtime/beam/SKILL.md +72 -0
  721. package/skills/stacks/runtime/bun/SKILL.md +80 -0
  722. package/skills/stacks/runtime/deno/SKILL.md +74 -0
  723. package/skills/stacks/runtime/dotnet/SKILL.md +64 -0
  724. package/skills/stacks/runtime/jvm/SKILL.md +66 -0
  725. package/skills/stacks/runtime/node/SKILL.md +70 -0
  726. package/skills/stacks/runtime/pypy/SKILL.md +69 -0
  727. package/skills/stacks/runtime/python3/SKILL.md +70 -0
  728. package/skills/stacks/styling/bootstrap/SKILL.md +74 -0
  729. package/skills/stacks/styling/bulma/SKILL.md +80 -0
  730. package/skills/stacks/styling/chakra-ui/SKILL.md +61 -0
  731. package/skills/stacks/styling/css-modules/SKILL.md +54 -0
  732. package/skills/stacks/styling/mui/SKILL.md +60 -0
  733. package/skills/stacks/styling/sass/SKILL.md +63 -0
  734. package/skills/stacks/styling/shadcn-ui/SKILL.md +58 -0
  735. package/skills/stacks/styling/styled-components/SKILL.md +62 -0
  736. package/skills/stacks/styling/tailwind/SKILL.md +59 -0
  737. package/skills/stacks/styling/unocss/SKILL.md +64 -0
  738. package/skills/stacks/styling/vanilla-extract/SKILL.md +64 -0
  739. package/skills/stacks/styling/vuetify/SKILL.md +89 -0
  740. package/skills/stacks/testing/cypress/SKILL.md +68 -0
  741. package/skills/stacks/testing/jasmine/SKILL.md +67 -0
  742. package/skills/stacks/testing/jest/SKILL.md +67 -0
  743. package/skills/stacks/testing/mocha/SKILL.md +71 -0
  744. package/skills/stacks/testing/playwright/SKILL.md +68 -0
  745. package/skills/stacks/testing/puppeteer/SKILL.md +70 -0
  746. package/skills/stacks/testing/selenium/SKILL.md +70 -0
  747. package/skills/stacks/testing/vitest/SKILL.md +68 -0
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: code-optimization
3
+ description: Making code faster the right way — measure first, fix algorithms before micro-optimizing, and validate with benchmarks.
4
+ domain: engineering
5
+ category: practices
6
+ tags: [performance, optimization, profiling, benchmarking, algorithms]
7
+ official_sources:
8
+ - https://developer.mozilla.org/en-US/docs/Web/Performance
9
+ - https://en.algorithmica.org/hpc/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Code Optimization
14
+
15
+ ## Overview
16
+ Code optimization is making software faster or lighter without breaking correctness — but only where measurement shows it matters. Consult this when something is genuinely slow, before reaching for a rewrite. MDN's Web Performance pages cover measuring and budgeting on the web; Algorithmica's "Algorithms for Modern Hardware" covers profiling, benchmarking, and low-level optimization on modern CPUs.
17
+
18
+ ## Official sources
19
+ - Docs (web performance): https://developer.mozilla.org/en-US/docs/Web/Performance
20
+ - Docs (high-performance computing): https://en.algorithmica.org/hpc/
21
+ - Repo (Algorithmica): https://github.com/algorithmica-org/algorithmica
22
+
23
+ ## Core concepts
24
+ - **Measure first.** Before optimizing, establish a baseline with real tools and metrics; MDN's overarching guidance is to measure your actual performance before changing anything.
25
+ - **Profiling vs. benchmarking.** Profiling finds *where* time goes (instrumentation, statistical sampling, machine-code analysis — covered in Algorithmica's profiling chapter); benchmarking measures *whether* a specific change actually helped.
26
+ - **Algorithms still dominate, but not alone.** Asymptotic complexity (Big-O) is the first lever, yet Algorithmica stresses that on modern hardware it is no longer the sole deciding factor — constant factors and hardware behavior matter.
27
+ - **The memory hierarchy / cache.** Access patterns and CPU caching often determine real speed; cache-friendly layouts can beat algorithmically "equal" code (Algorithmica devotes a section to caching and memory).
28
+ - **Performance budgets.** MDN recommends setting budgets — explicit limits on metrics like load time or bundle size — to prevent regressions over time.
29
+ - **Measure user-perceived performance.** MDN notes that what matters is how users perceive performance (RUM, perceived metrics), not just raw milliseconds.
30
+
31
+ ## Best practices
32
+ - **Profile to find the real bottleneck, then optimize that.** Optimize the hot path the profiler identifies rather than guessing; most code is not on the critical path.
33
+ - **Improve the algorithm/data structure before micro-optimizing.** A better Big-O usually beats hand-tuning a poor algorithm; reach for SIMD/cache tricks only after the algorithm is right.
34
+ - **Benchmark every change.** Confirm each optimization is a real, repeatable speedup (and didn't regress correctness) before keeping it.
35
+ - **Set and enforce a performance budget.** Use budgets in CI/monitoring so performance gains don't silently erode (MDN performance budgets).
36
+
37
+ ## Common pitfalls
38
+ - **Optimizing without measuring** → profile first; intuition about the bottleneck is frequently wrong, and effort lands off the hot path.
39
+ - **Micro-optimizing a bad algorithm** → fix the algorithm/data structure first; constant-factor tweaks can't fix a quadratic loop.
40
+ - **Trusting a one-shot timing** → benchmark with repetition and a stable setup; noise and warm-up effects make single runs misleading.
41
+ - **Sacrificing correctness/readability for speed off the hot path** → only trade clarity for performance where measurement proves it matters.
42
+
43
+ ## Examples
44
+ ```javascript
45
+ // O(n^2): membership check inside a loop
46
+ const dupes = a.filter(x => b.includes(x)); // includes scans b each time
47
+
48
+ // O(n): hoist the lookups into a Set — algorithmic win, then measure
49
+ const bSet = new Set(b);
50
+ const dupes2 = a.filter(x => bSet.has(x));
51
+ // Verify with a benchmark before assuming it's faster for your input sizes.
52
+ ```
53
+
54
+ ## Further reading
55
+ - MDN — Measuring performance: https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Performance/Measuring_performance
56
+ - Algorithmica — Profiling: https://en.algorithmica.org/hpc/profiling/
57
+
58
+ ## Related skills
59
+ - ../clean-code — keep optimized code readable; document non-obvious perf tradeoffs
60
+ - ../refactoring — restructure safely under test before/after optimizing
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: code-review-practices
3
+ description: How to review and author code changes — what reviewers look for, review speed, and writing useful, kind review comments.
4
+ domain: engineering
5
+ category: practices
6
+ tags: [code-review, pull-request, review-checklist, collaboration]
7
+ official_sources:
8
+ - https://google.github.io/eng-practices/review/
9
+ - https://github.com/google/eng-practices
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Code Review Practices
14
+
15
+ ## Overview
16
+ Code review is the process where someone other than the change's author examines the code before it lands, primarily to keep the codebase healthy over time. Consult this when reviewing a pull/change request or preparing your own change for review. Google's Engineering Practices documentation is a well-known, freely published reference for both reviewers and change authors.
17
+
18
+ ## Official sources
19
+ - Docs: https://google.github.io/eng-practices/review/
20
+ - Repo: https://github.com/google/eng-practices
21
+
22
+ ## Core concepts
23
+ - **Purpose of review.** Review exists to maintain the overall health of the codebase over time, not to demand perfection in every change.
24
+ - **What reviewers look at.** Google's guide enumerates areas to examine: design, functionality (does it do what the author intended), complexity/simplicity, tests, naming, comments, style-guide compliance, and documentation updates.
25
+ - **The reviewer/author split.** Google publishes two complementary guides — one for the *reviewer* (how to review) and one for the *change author* (how to get a change reviewed smoothly).
26
+ - **Speed matters.** Reviews should be fast: slow reviews block authors, delay feedback, and degrade team velocity, so reviewers are expected to respond promptly even if a full review takes longer.
27
+ - **Alternatives exist.** Pair programming and in-person review are valid substitutes for asynchronous review in some situations.
28
+
29
+ ## Best practices
30
+ - **Review for design first, nits last.** Confirm the change is well-designed and does the right thing before quibbling over minor style (which a linter should catch anyway).
31
+ - **Be prompt.** Respond to review requests quickly to keep authors unblocked, even when the change is large enough to need follow-up.
32
+ - **Write kind, actionable comments.** Explain the reasoning behind a request, and clearly distinguish must-fix issues from optional suggestions (e.g. prefix non-blocking nits).
33
+ - **Approve once it improves overall code health.** A change does not have to be perfect to be approved — only a net improvement to the codebase that is appropriately tested.
34
+
35
+ ## Common pitfalls
36
+ - **Demanding perfection / endless rounds** → approve once the change improves code health; capture larger ideas as follow-up rather than blocking.
37
+ - **Letting reviews sit for days** → prioritize prompt responses; slow reviews are a primary cause of team frustration and slowdown.
38
+ - **Vague comments ("this is wrong")** → state the problem, why it matters, and a concrete suggested fix; mark optional items as optional.
39
+
40
+ ## Examples
41
+ ```text
42
+ Review comment styles (author-friendly):
43
+
44
+ Blocking: This query runs inside the loop, so it's O(n) round-trips.
45
+ Move it out of the loop or batch the IDs.
46
+
47
+ Optional: Nit (non-blocking): `getUserData` could be `fetchUser` to
48
+ match the naming used elsewhere in this file.
49
+ ```
50
+
51
+ ## Further reading
52
+ - The Standard of Code Review: https://google.github.io/eng-practices/review/reviewer/standard.html
53
+ - How to write code review comments: https://google.github.io/eng-practices/review/reviewer/comments.html
54
+ - The CL author's guide: https://google.github.io/eng-practices/review/developer/
55
+
56
+ ## Related skills
57
+ - ../clean-code — many review checks (naming, cohesion) are clean-code concerns
58
+ - ../git-workflow — PRs and commit hygiene that make changes reviewable
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: git-workflow
3
+ description: Day-to-day Git collaboration — branching, focused commits, pull requests, and Conventional Commits message format.
4
+ domain: engineering
5
+ category: practices
6
+ tags: [git, version-control, branching, commits, conventional-commits, pull-request]
7
+ official_sources:
8
+ - https://git-scm.com/docs
9
+ - https://www.conventionalcommits.org/en/v1.0.0/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Git Workflow
14
+
15
+ ## Overview
16
+ A Git workflow is the set of conventions a team uses for branching, committing, and integrating changes so history stays readable and changes stay reviewable. Consult this when deciding how to branch, how to structure commits, or how to format commit messages. Git's own reference manual defines the commands; the Conventional Commits spec defines a popular structured message format.
17
+
18
+ ## Official sources
19
+ - Docs (Git reference manual): https://git-scm.com/docs
20
+ - Pro Git book: https://git-scm.com/book
21
+ - Conventional Commits spec: https://www.conventionalcommits.org/en/v1.0.0/
22
+
23
+ ## Core concepts
24
+ - **Branches isolate work.** `git branch` / `git switch` create lightweight lines of development; do feature work on a branch and integrate via `git merge` or `git rebase` (both documented in the Git reference).
25
+ - **Commits are the unit of history.** `git add` stages changes and `git commit` records them; a good commit captures one logical change with a message explaining what and why.
26
+ - **Sharing.** `git push` publishes commits to a remote and `git pull` fetches and integrates remote changes; pull requests wrap a branch for review before integration.
27
+ - **Conventional Commits structure.** The spec defines `<type>[optional scope]: <description>`, then an optional body and optional footer(s).
28
+ - **Types & semver mapping.** `feat` (a new feature → MINOR) and `fix` (a bug fix → PATCH) are the core types; `docs`, `refactor`, `perf`, `test`, `build`, `ci`, `chore`, `style` are also recommended.
29
+ - **Breaking changes.** Indicated either by a `!` after the type/scope (`feat!:`) or a `BREAKING CHANGE:` footer; both signal a MAJOR version bump.
30
+
31
+ ## Best practices
32
+ - **Keep commits small and focused.** One logical change per commit makes review, revert, and `git bisect` tractable (separate refactoring from behavior change — see refactoring).
33
+ - **Write meaningful messages.** Use an imperative description; for non-trivial changes, explain *why* in the body. Conventional Commits adds machine-readable type/scope so tools can generate changelogs and version bumps.
34
+ - **Branch per change, integrate via review.** Open a pull request so a reviewer examines the change before it lands (see code-review-practices).
35
+ - **Mark breaking changes explicitly.** Use `!` or a `BREAKING CHANGE:` footer so consumers and release tooling correctly bump the major version.
36
+
37
+ ## Common pitfalls
38
+ - **Vague messages ("fix stuff", "wip")** → write a clear type/description and a body explaining why; future readers and changelog tooling depend on it.
39
+ - **One huge commit mixing many concerns** → split into focused commits so each can be reviewed and reverted independently.
40
+ - **Hiding a breaking change in a `feat` or `fix`** → use `feat!:`/`fix!:` or a `BREAKING CHANGE:` footer so it triggers a MAJOR bump rather than surprising consumers.
41
+
42
+ ## Examples
43
+ ```text
44
+ feat(auth): add password reset endpoint
45
+
46
+ Sends a single-use token by email and expires it after 15 minutes.
47
+
48
+ Refs: #482
49
+
50
+ # Breaking change variants:
51
+ feat(api)!: drop deprecated v1 user fields
52
+ # or, via footer:
53
+ BREAKING CHANGE: the `username` field is removed from the user payload
54
+ ```
55
+
56
+ ## Further reading
57
+ - Pro Git — Branching: https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell
58
+ - Conventional Commits spec (full): https://www.conventionalcommits.org/en/v1.0.0/
59
+
60
+ ## Related skills
61
+ - ../code-review-practices — pull requests and reviewable change hygiene
62
+ - ../refactoring — keeping structure-only commits separate from behavior commits
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: refactoring
3
+ description: Improving code's internal structure without changing observable behavior, via small steps verified by tests.
4
+ domain: engineering
5
+ category: practices
6
+ tags: [refactoring, code-smells, tests, technical-debt]
7
+ official_sources:
8
+ - https://refactoring.com/
9
+ - https://refactoring.com/catalog/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Refactoring
14
+
15
+ ## Overview
16
+ Refactoring is changing the internal structure of software to make it easier to understand and cheaper to modify — *without* changing its observable behavior. Consult this when cleaning up code before or after adding a feature, paying down technical debt, or making a change feel hard. Martin Fowler's refactoring.com defines the discipline and catalogs the named refactorings.
17
+
18
+ ## Official sources
19
+ - Docs (definition): https://refactoring.com/
20
+ - Catalog of named refactorings: https://refactoring.com/catalog/
21
+
22
+ ## Core concepts
23
+ - **Definition (behavior-preserving).** Per Fowler, refactoring is "a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior."
24
+ - **A series of small transformations.** The heart of refactoring is many tiny behavior-preserving steps; each does little, but the sequence produces a significant restructuring. Small steps make it less likely to go wrong.
25
+ - **Keep the system working.** The system is kept fully working after each refactoring, which reduces the chance it gets seriously broken mid-change.
26
+ - **Code smells.** Smells are easy-to-spot surface symptoms (e.g. long functions, duplicated code, large classes) that often point to a deeper problem worth refactoring. Fowler's catalog pairs common smells with the refactorings that address them.
27
+ - **Tests as the safety net.** Running tests after each change is what makes refactoring predictable and safe; when automated refactoring tools are unavailable, frequent testing is how mistakes get caught.
28
+
29
+ ## Best practices
30
+ - **Refactor under green tests.** Have a passing test suite first; refactor in small steps and re-run tests after each, so any break is localized to the last change.
31
+ - **Separate refactoring from behavior change.** Do not mix a refactoring commit with a feature/bugfix commit — keep "tidy structure" and "change behavior" as distinct steps (and ideally distinct commits).
32
+ - **Refactor when it makes the next change easier.** Tidy the area you are about to modify ("preparatory refactoring") rather than scheduling a big separate cleanup.
33
+ - **Take small steps.** Prefer many tiny, reversible transformations over one large rewrite; this keeps the system shippable throughout.
34
+
35
+ ## Common pitfalls
36
+ - **Refactoring without tests** → add characterization tests first; without a safety net you cannot tell whether behavior was preserved.
37
+ - **Mixing refactoring with feature work in one big diff** → split into structure-only changes and behavior changes so reviewers (and `git bisect`) can reason about each.
38
+ - **Big-bang rewrite instead of stepwise change** → break it into a sequence of small named refactorings, keeping the build green between each.
39
+
40
+ ## Examples
41
+ ```javascript
42
+ // Smell: long function mixing extraction and formatting.
43
+ // Step 1 — Extract Function (behavior preserved), run tests:
44
+ function printOwing(invoice) {
45
+ printBanner();
46
+ const outstanding = calculateOutstanding(invoice); // extracted
47
+ printDetails(invoice, outstanding); // extracted
48
+ }
49
+ // Each extraction is a small step; tests stay green throughout.
50
+ ```
51
+
52
+ ## Further reading
53
+ - Catalog of refactorings: https://refactoring.com/catalog/
54
+ - Community: refactoring.guru groups smells/techniques into browsable categories (commercial site, not an official source): https://refactoring.guru/refactoring
55
+
56
+ ## Related skills
57
+ - ../clean-code — the target state refactoring moves toward
58
+ - ../code-review-practices — reviewers flag smells; refactoring resolves them
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: appsec-fundamentals
3
+ description: Application security fundamentals — OWASP Proactive Controls, input validation, output encoding, and secure-by-default design; consult when building any feature.
4
+ domain: engineering
5
+ category: security
6
+ tags: [appsec, proactive-controls, input-validation, output-encoding, owasp]
7
+ official_sources:
8
+ - https://top10proactive.owasp.org/
9
+ - https://cheatsheetseries.owasp.org/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Application Security Fundamentals
14
+
15
+ ## Overview
16
+ While the OWASP Top 10 describes what goes wrong, the OWASP Top 10 Proactive Controls describe what to build to prevent it. This skill summarizes the proactive controls and the foundational defenses (input validation, output/context-aware encoding, secure defaults) that every feature should apply by default. Read this at the start of building a feature, not after a vulnerability is found. For deep, topic-specific guidance, follow the linked OWASP Cheat Sheets.
17
+
18
+ ## Official sources
19
+ - Proactive Controls (2024): https://top10proactive.owasp.org/
20
+ - Proactive Controls repo: https://github.com/OWASP/www-project-proactive-controls/
21
+ - Cheat Sheet Series (130+ topic guides): https://cheatsheetseries.owasp.org/
22
+ - Cheat Sheet repo: https://github.com/OWASP/CheatSheetSeries
23
+ - License: Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0)
24
+
25
+ ## Core concepts
26
+ The OWASP Top 10 Proactive Controls (2024) are the security techniques to include in every project:
27
+
28
+ - **C1 Implement Access Control** — enforce authorization server-side, deny by default.
29
+ - **C2 Use Cryptography to Protect Data** — protect data at rest and in transit with vetted algorithms and managed keys.
30
+ - **C3 Validate all Input & Handle Exceptions** — treat all input as untrusted; fail safely on errors.
31
+ - **C4 Address Security from the Start** — threat-model and design controls early (secure design).
32
+ - **C5 Secure By Default Configurations** — ship hardened defaults rather than relying on later hardening.
33
+ - **C6 Keep your Components Secure** — track and patch third-party dependencies.
34
+ - **C7 Secure Digital Identities** — robust authentication, session, and credential handling.
35
+ - **C8 Leverage Browser Security Features** — use headers/policies (CSP, cookie attributes) the browser enforces.
36
+ - **C9 Implement Security Logging and Monitoring** — log security events and enable detection.
37
+ - **C10 Stop Server Side Request Forgery** — validate and restrict outbound requests built from user input.
38
+
39
+ Two cross-cutting defenses underpin several controls:
40
+ - **Input validation** — prefer allow-list (positive) validation of type, length, format, and range; validation is defense-in-depth, not a substitute for safe APIs.
41
+ - **Output / context-aware encoding** — encode untrusted data for the exact sink it lands in (HTML body, HTML attribute, JavaScript, URL, SQL) to neutralize injection.
42
+
43
+ ## Best practices
44
+ - Use parameterized queries and safe APIs to stop injection at the boundary; treat input validation as an additional layer, not the primary defense.
45
+ - Apply output encoding based on the output context, since the correct escaping differs between HTML, attributes, JavaScript, and URLs.
46
+ - Adopt secure-by-default configuration (C5): least privilege, disabled debug endpoints, and minimal exposed surface from day one.
47
+ - Consult the relevant OWASP Cheat Sheet for any non-trivial control rather than improvising (the series is the canonical implementation reference).
48
+
49
+ ## Common pitfalls
50
+ - Relying on input validation alone to prevent injection → combine validation with parameterized queries and context-aware encoding.
51
+ - Using a single "escape" function everywhere → encoding is context-specific; HTML-encoding a value placed into a JavaScript string is still unsafe.
52
+ - Bolting on security after the build (skipping C4) → design controls in from the start; retrofitting access control and crypto is error-prone.
53
+
54
+ ## Examples
55
+ ```text
56
+ # Context-aware output encoding (concept):
57
+ HTML body -> HTML entity encode ( < becomes &lt; )
58
+ HTML attribute -> attribute encode + quote the attribute
59
+ JavaScript -> JS string encode / avoid building JS from input
60
+ URL parameter -> URL/percent encode
61
+ ```
62
+
63
+ ## Further reading
64
+ - Input Validation Cheat Sheet, Cross Site Scripting Prevention Cheat Sheet, Injection Prevention Cheat Sheet — https://cheatsheetseries.owasp.org/
65
+ - Proactive Controls detailed pages — https://top10proactive.owasp.org/
66
+
67
+ ## Related skills
68
+ - ../owasp-top-10 — the risks these controls prevent
69
+ - ../owasp-asvs — testable requirements aligned to these controls
70
+ - ../secure-auth-sessions — implementation detail for C7
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: dependency-supply-chain
3
+ description: Manage dependency and supply-chain risk — scan for known-vulnerable components (OWASP Dependency-Check) and verify build provenance with SLSA levels.
4
+ domain: engineering
5
+ category: security
6
+ tags: [supply-chain, dependencies, sca, slsa, provenance, owasp]
7
+ official_sources:
8
+ - https://owasp.org/www-project-dependency-check/
9
+ - https://slsa.dev/
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Dependency & Supply-Chain Security
14
+
15
+ ## Overview
16
+ Most applications are mostly third-party code, so a vulnerable or tampered dependency is a direct path into your system (OWASP Top 10 A03 Software Supply Chain Failures). This skill covers two complementary defenses: detecting known-vulnerable components with Software Composition Analysis (OWASP Dependency-Check) and raising the integrity of how artifacts are built using the SLSA framework. Read it when adding dependencies, configuring CI/CD, or hardening a release pipeline.
17
+
18
+ ## Official sources
19
+ - OWASP Dependency-Check (docs): https://owasp.org/www-project-dependency-check/
20
+ - Dependency-Check repo: https://github.com/dependency-check/DependencyCheck
21
+ - SLSA (docs): https://slsa.dev/
22
+ - SLSA repo: https://github.com/slsa-framework/slsa (an OpenSSF project)
23
+ - Licenses: Dependency-Check (Apache-2.0); SLSA spec (Community Specification License 1.0)
24
+
25
+ ## Install / setup
26
+ OWASP Dependency-Check CLI quick start (verbatim from the official repo README; macOS via Homebrew):
27
+ ```bash
28
+ $ brew update && brew install dependency-check
29
+ $ dependency-check -h
30
+ $ dependency-check --out . --scan [path to jar files to be scanned]
31
+ ```
32
+ On other platforms, download the latest release from GitHub, then run the bundled script:
33
+ ```bash
34
+ # *nix
35
+ $ ./bin/dependency-check.sh -h
36
+ $ ./bin/dependency-check.sh --out . --scan [path to jar files to be scanned]
37
+ ```
38
+ ```bat
39
+ :: Windows
40
+ > .\bin\dependency-check.bat -h
41
+ > .\bin\dependency-check.bat --out . --scan [path to jar files to be scanned]
42
+ ```
43
+
44
+ ## Core concepts
45
+ - **Software Composition Analysis (SCA).** Dependency-Check inventories a project's dependencies, derives CPE identifiers, and maps them to known CVEs from the National Vulnerability Database so you avoid shipping components with publicly disclosed vulnerabilities.
46
+ - **Pipeline integration.** Dependency-Check runs as a CLI and ships plugins/integrations for Maven, Gradle, Ant, GitHub Actions, Jenkins, Azure DevOps, and Docker (some community-maintained), so scans can gate builds.
47
+ - **SLSA framework.** SLSA ("Supply-chain Levels for Software Artifacts") is a checklist of standards and controls to prevent tampering and improve artifact integrity from source to service.
48
+ - **Provenance.** Provenance is verifiable metadata describing what entity built an artifact, what process was used, and what the inputs were. Generating provenance is the first on-ramp to SLSA.
49
+ - **SLSA build levels.** Build L0 = no guarantees; Build L1 = provenance exists (may be unsigned); Build L2 = signed provenance from a hosted build platform (prevents post-build tampering); Build L3 = hardened builds with strong isolation (prevents tampering during the build and cross-build interference).
50
+
51
+ ## Best practices
52
+ - Run SCA (Dependency-Check) in CI and fail the build on newly introduced known-vulnerable dependencies, not just on a schedule.
53
+ - Generate and verify build provenance; aim to progress up the SLSA build levels (start at L1, sign provenance for L2, harden the builder for L3).
54
+ - Pin dependency versions and maintain a software bill of materials (SBOM) so you can quickly identify exposure when a new CVE drops.
55
+ - Keep components current and patched (OWASP Proactive Control C6) rather than letting transitive dependencies drift.
56
+
57
+ ## Common pitfalls
58
+ - Scanning only direct dependencies → transitive dependencies carry most known CVEs; scan the full resolved tree.
59
+ - Trusting an artifact with no provenance → without signed provenance you cannot prove how or where it was built; require at least SLSA Build L1 and prefer L2+.
60
+ - Treating a one-time scan as sufficient → vulnerability data changes daily; re-scan on every build and re-evaluate released artifacts as new CVEs are published.
61
+
62
+ ## Examples
63
+ ```yaml
64
+ # Concept: gate a build on SCA results, then attest provenance
65
+ steps:
66
+ - run: dependency-check --out reports --scan ./build/libs --failOnCVSS 7
67
+ - run: generate-and-sign-provenance # work toward SLSA Build L2/L3
68
+ ```
69
+
70
+ ## Further reading
71
+ - SLSA build levels specification: https://slsa.dev/spec/v1.0/levels (latest spec linked from slsa.dev)
72
+ - OWASP Top 10 A03 Software Supply Chain Failures — ../owasp-top-10
73
+
74
+ ## Related skills
75
+ - ../owasp-top-10 — A03 Software Supply Chain Failures
76
+ - ../appsec-fundamentals — C6 Keep your Components Secure
77
+ - ../secrets-management — protecting pipeline/build secrets
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: owasp-asvs
3
+ description: OWASP Application Security Verification Standard 5.0 — testable security requirements organized by chapter and verification level; consult to define or verify appsec requirements.
4
+ domain: engineering
5
+ category: security
6
+ tags: [owasp, asvs, security-requirements, verification, appsec]
7
+ official_sources:
8
+ - https://owasp.org/www-project-application-security-verification-standard/
9
+ - https://github.com/OWASP/ASVS
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # OWASP ASVS
14
+
15
+ ## Overview
16
+ The Application Security Verification Standard (ASVS) is an OWASP flagship project that provides a comprehensive, testable list of application security requirements. Unlike the awareness-oriented Top 10, ASVS is meant to be used as a measurable standard: a basis for security requirements during design, a checklist for testing/verification, and a procurement contract baseline. Read this when you need concrete, citable requirements for what "secure enough" means at a chosen rigor level.
17
+
18
+ ## Official sources
19
+ - Docs / project: https://owasp.org/www-project-application-security-verification-standard/
20
+ - Repo: https://github.com/OWASP/ASVS
21
+ - License: Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0)
22
+ - Current stable: ASVS 5.0.0 (released May 2025 at Global AppSec EU Barcelona)
23
+
24
+ ## Core concepts
25
+ - **Verification levels (L1, L2, L3).** Requirements are tiered by increasing rigor. In 5.0, L1 is scoped to first-layer / foundational defenses (a deliberately smaller set than 4.x to lower the adoption barrier); L2 raises the bar (e.g., requiring multi-factor authentication); L3 is the most advanced (e.g., hardware-backed, attested authentication). Choose the level by the application's risk and data sensitivity.
26
+ - **Requirement identifiers.** Requirements use a `<chapter>.<section>.<requirement>` numbering scheme and should be cited with a version prefix, e.g. `v5.0.0-1.2.5`, so references stay unambiguous across editions.
27
+ - **Chapter structure (V1-V17).** ASVS 5.0 organizes requirements into chapters such as Encoding and Sanitization, Validation and Business Logic, Web Frontend Security, API and Web Service, File Handling, Authentication, Session Management, Authorization, Self-contained Tokens, OAuth and OIDC, Cryptography, Secure Communication, Configuration, Data Protection, Secure Coding and Architecture, Security Logging and Error Handling, and WebRTC.
28
+ - **Standard, not a tool.** ASVS defines *what* to verify; it does not prescribe a specific scanner or test method. Teams map each requirement to manual review, automated tests, or both.
29
+
30
+ ## Best practices
31
+ - Pick a target level up front based on risk (data sensitivity, exposure, regulatory needs) and treat it as the verification floor for the whole application.
32
+ - Use ASVS requirement IDs (with version prefix) directly in tickets, test cases, and acceptance criteria so coverage is auditable.
33
+ - Integrate the relevant chapter requirements into design reviews early rather than testing for them only at the end.
34
+
35
+ ## Common pitfalls
36
+ - Treating all of L1+L2+L3 as mandatory → each level is cumulative and chosen by risk; applying L3 everywhere wastes effort and slows delivery.
37
+ - Citing version 4.0.3 requirement numbers in a 5.0 program → the structure and level scoping changed substantially in 5.0; always confirm the IDs against the version you target.
38
+ - Using ASVS as awareness reading → it is a verification standard; pair it with the Top 10 for prioritization and with cheat sheets for implementation guidance.
39
+
40
+ ## Examples
41
+ ```text
42
+ # Referencing an ASVS requirement in a security acceptance criterion:
43
+ Given a login endpoint, it MUST satisfy ASVS v5.0.0 (Authentication, chapter V6)
44
+ at the target verification level (e.g., L2 requires multi-factor authentication).
45
+ ```
46
+
47
+ ## Further reading
48
+ - Downloads (PDF / Word / CSV) and bleeding-edge master branch: linked from the project page above
49
+ - OWASP Top 10 for risk prioritization: ../owasp-top-10
50
+
51
+ ## Related skills
52
+ - ../owasp-top-10 — awareness/prioritization input that ASVS makes testable
53
+ - ../appsec-fundamentals — proactive controls aligned to ASVS chapters
54
+ - ../secure-auth-sessions — implementation detail for ASVS V6 and V7
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: owasp-top-10
3
+ description: The OWASP Top 10 web application security risks (2025 edition) and how to mitigate them; consult when threat-modeling or hardening web apps.
4
+ domain: engineering
5
+ category: security
6
+ tags: [owasp, web-security, vulnerabilities, threat-modeling, appsec]
7
+ official_sources:
8
+ - https://owasp.org/Top10/
9
+ - https://github.com/OWASP/Top10
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # OWASP Top 10
14
+
15
+ ## Overview
16
+ The OWASP Top 10 is the most widely referenced awareness document for web application security, ranking the most critical risks based on contributed data and a community survey. Read this when you need a shared vocabulary for the highest-impact classes of web vulnerabilities, when threat-modeling a feature, or when prioritizing remediation. The list is a starting point for awareness, not an exhaustive security standard (use ASVS for verification).
17
+
18
+ ## Official sources
19
+ - Docs: https://owasp.org/Top10/ (redirects to the current 2025 edition at https://owasp.org/Top10/2025/)
20
+ - Repo: https://github.com/OWASP/Top10
21
+ - License: Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0)
22
+
23
+ ## Core concepts
24
+ The 2025 edition defines ten categories (A01-A10). Each maps to a set of CWE weaknesses:
25
+
26
+ - **A01:2025 Broken Access Control** — users acting outside their intended permissions (IDOR, missing authorization checks, privilege escalation).
27
+ - **A02:2025 Security Misconfiguration** — insecure defaults, verbose errors, unpatched/exposed components, overly permissive settings.
28
+ - **A03:2025 Software Supply Chain Failures** — risks from vulnerable, compromised, or tampered third-party components and build pipelines.
29
+ - **A04:2025 Cryptographic Failures** — weak, missing, or misapplied cryptography exposing data in transit or at rest.
30
+ - **A05:2025 Injection** — untrusted input interpreted as code/commands (SQLi, OS command injection, XSS is included here).
31
+ - **A06:2025 Insecure Design** — flaws rooted in missing or ineffective security controls at the design stage.
32
+ - **A07:2025 Authentication Failures** — weaknesses in identity confirmation and session handling (credential stuffing, weak recovery).
33
+ - **A08:2025 Software or Data Integrity Failures** — unverified updates, insecure deserialization, untrusted CI/CD assumptions.
34
+ - **A09:2025 Security Logging and Alerting Failures** — insufficient detection, logging, and timely alerting on attacks.
35
+ - **A10:2025 Mishandling of Exceptional Conditions** — incorrect handling of errors and edge cases leading to failures or insecure states.
36
+
37
+ ## Best practices
38
+ - Treat the Top 10 as an awareness baseline and pair it with a verification standard such as OWASP ASVS for testable requirements.
39
+ - Address Broken Access Control (A01, consistently the top risk) by enforcing authorization server-side on every request and denying by default.
40
+ - Prevent Injection (A05) with parameterized queries / prepared statements and context-aware output encoding rather than manual escaping.
41
+ - Manage supply-chain risk (A03) with a software bill of materials (SBOM), dependency scanning, and verified provenance for build artifacts.
42
+
43
+ ## Common pitfalls
44
+ - Relying on client-side checks for access control → enforce all authorization decisions on the server; never trust hidden fields or disabled UI.
45
+ - Treating the Top 10 as a complete checklist → it is a prioritization aid, not a comprehensive security program; many real risks fall outside it.
46
+ - Citing the outdated 2021 list (superseded) → reference the 2025 edition; category names and ordering changed (e.g., Injection moved, supply chain added).
47
+
48
+ ## Examples
49
+ ```sql
50
+ -- A05 Injection: use a parameterized query, never string concatenation
51
+ -- Vulnerable: "SELECT * FROM users WHERE email = '" + input + "'"
52
+ -- Safe (parameterized):
53
+ SELECT * FROM users WHERE email = ?; -- bind `input` as a parameter
54
+ ```
55
+
56
+ ## Further reading
57
+ - Per-category detail pages: https://owasp.org/Top10/2025/
58
+ - OWASP ASVS (testable verification requirements): ../owasp-asvs
59
+
60
+ ## Related skills
61
+ - ../owasp-asvs — turns Top 10 awareness into verifiable, level-based requirements
62
+ - ../appsec-fundamentals — proactive controls that prevent these risks by design
63
+ - ../dependency-supply-chain — mitigates A03 Software Supply Chain Failures
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: secrets-management
3
+ description: Store, rotate, and never commit secrets — vaults over source/env vars, encryption, least privilege, rotation, and secret detection per OWASP guidance.
4
+ domain: engineering
5
+ category: security
6
+ tags: [secrets, vault, rotation, credentials, owasp]
7
+ official_sources:
8
+ - https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html
9
+ - https://github.com/OWASP/CheatSheetSeries
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Secrets Management
14
+
15
+ ## Overview
16
+ Secrets (API keys, database credentials, tokens, certificates, encryption keys) are the keys to the kingdom, and leaked secrets are a leading cause of breaches. This skill summarizes the OWASP Secrets Management Cheat Sheet: where secrets should live, how to rotate and revoke them, and how to keep them out of source code. Read it before wiring any credential into an application, CI/CD pipeline, or infrastructure-as-code.
17
+
18
+ ## Official sources
19
+ - Secrets Management Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html
20
+ - Repo: https://github.com/OWASP/CheatSheetSeries
21
+ - License: Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0)
22
+
23
+ ## Core concepts
24
+ - **Use a secrets manager, not source code.** Store secrets in a dedicated solution (cloud services like AWS Secrets Manager, Azure Key Vault, Google Secret Manager, or platform-agnostic tools like HashiCorp Vault), and inject them at deploy time via the orchestrator rather than hardcoding them.
25
+ - **Lifecycle: creation, rotation, revocation, expiration.** Generate cryptographically strong secrets with least privilege, rotate them regularly so stolen credentials are short-lived, revoke compromised secrets immediately, and set expirations that force rotation.
26
+ - **Encryption at rest and in transit.** Encrypt stored secrets with strong algorithms and never transmit them in plaintext (use TLS). Consider envelope encryption, keeping the encryption keys separate from the secrets they protect.
27
+ - **Least privilege access.** Apply fine-grained, secret-level permissions; engineers should not have access to all secrets, and CI/CD systems should reach only the secrets they require. Prefer identity-based access (role assumption) over shared static credentials.
28
+ - **Dynamic vs static secrets.** Prefer short-lived dynamic secrets (generated per session/deployment, auto-expiring) where supported; reserve static long-lived secrets for cases that require them, with rigorous rotation.
29
+ - **Detect secrets in code.** Use automated detection (e.g., detect-secrets) with pre-commit hooks and IDE/shift-left scanning to catch secrets before they are committed.
30
+
31
+ ## Best practices
32
+ - Keep secrets out of source code, container images, and environment variables baked into images; resolve them at runtime from a manager.
33
+ - Automate rotation and minimize direct human interaction with raw secret values to reduce error and exposure.
34
+ - Scope access per secret and per identity; audit and monitor access rather than granting broad blanket permissions.
35
+ - Use distinct test secrets in detection tooling to reduce false positives while still catching real leaks.
36
+
37
+ ## Common pitfalls
38
+ - Committing a secret to git → it persists in history; rotate/revoke the secret immediately and scrub history; add pre-commit secret scanning.
39
+ - Treating environment variables as a secure store → they can leak via logs, process listings, and child processes; prefer a managed secrets solution.
40
+ - Long-lived, never-rotated credentials → set expirations and rotate; prefer dynamic, short-lived secrets where possible.
41
+ - Giving every engineer or every CI job access to all secrets → enforce least privilege at the individual-secret level.
42
+
43
+ ## Examples
44
+ ```text
45
+ # Resolve a secret at runtime instead of hardcoding (concept):
46
+ 1. App authenticates to the secrets manager using its workload identity (no static key).
47
+ 2. Manager returns a short-lived, scoped secret (e.g., a dynamic DB credential).
48
+ 3. App uses it; the credential auto-expires and is rotated by the manager.
49
+ ```
50
+
51
+ ## Further reading
52
+ - Secrets Management Cheat Sheet (full lifecycle and tooling detail) — link above
53
+ - ASVS chapter V11 Cryptography and V13 Configuration — ../owasp-asvs
54
+
55
+ ## Related skills
56
+ - ../appsec-fundamentals — C2 Use Cryptography to Protect Data
57
+ - ../secure-auth-sessions — secrets back credential/session security
58
+ - ../dependency-supply-chain — pipeline secrets and build integrity
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: secure-auth-sessions
3
+ description: Safe authentication and session management per OWASP cheat sheets — passwords, MFA, session IDs, secure cookies, regeneration, and timeouts.
4
+ domain: engineering
5
+ category: security
6
+ tags: [authentication, sessions, mfa, cookies, owasp]
7
+ official_sources:
8
+ - https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
9
+ - https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html
10
+ verified: 2026-06-16
11
+ ---
12
+
13
+ # Secure Authentication & Session Management
14
+
15
+ ## Overview
16
+ Authentication confirms who a user is; session management keeps them authenticated across requests without re-proving identity each time. Both are high-value targets and appear in the OWASP Top 10 (A07 Authentication Failures). This skill distills the OWASP Authentication and Session Management cheat sheets into the decisions you most often get wrong. Read it when designing login, registration, password reset, or any stateful session.
17
+
18
+ ## Official sources
19
+ - Authentication Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html
20
+ - Session Management Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html
21
+ - Repo: https://github.com/OWASP/CheatSheetSeries
22
+ - License: Creative Commons Attribution-ShareAlike 4.0 (CC BY-SA 4.0)
23
+
24
+ ## Core concepts
25
+ - **Passwords.** Enforce a minimum length (OWASP guidance: at least 8 characters with MFA, 15 without) and a generous maximum (at least 64 characters to allow passphrases). Allow all characters including Unicode and whitespace, and avoid arbitrary composition rules and mandatory periodic rotation.
26
+ - **Breached-password and MFA.** Block common and previously breached passwords (e.g., via a Pwned Passwords-style check). Multi-factor authentication is the single strongest defense against password-related attacks.
27
+ - **Generic error messages.** Use identical responses for failed login regardless of cause (e.g., "Login failed; Invalid user ID or password") so attackers cannot enumerate valid accounts.
28
+ - **Secure password storage.** Never store plaintext or reversible passwords; use a dedicated password-hashing function (see the Password Storage Cheat Sheet) rather than a general-purpose hash.
29
+ - **Session IDs.** Generate session IDs with at least 64 bits of entropy, keep their value meaningless (no embedded data), and rename framework defaults (PHPSESSID, JSESSIONID) to a generic name like `id`.
30
+ - **Session lifecycle.** Regenerate the session ID on any privilege change, especially at login (prevents session fixation). Enforce both an idle timeout and an absolute timeout, and provide a server-side logout that invalidates the session.
31
+
32
+ ## Best practices
33
+ - Set cookie attributes `Secure`, `HttpOnly`, and `SameSite=Strict` (or `Lax`); for the strongest binding use the `__Host-` cookie name prefix (requires Secure, Path=/, and no Domain).
34
+ - Regenerate the session identifier immediately after successful authentication and after any privilege escalation.
35
+ - Keep authentication responses and timing uniform to avoid username/account enumeration.
36
+ - Prefer MFA for any account with meaningful access, and verify against breached-password lists at registration and password change.
37
+
38
+ ## Common pitfalls
39
+ - Reusing the pre-login session ID after authentication → regenerate it on login to prevent session fixation.
40
+ - Distinct "user not found" vs "wrong password" messages → return one generic failure message and avoid timing oracles.
41
+ - Storing passwords with a fast/general hash (or imposing complexity rules and forced rotation) → use a proper password-hashing algorithm and follow modern length-over-complexity guidance.
42
+ - Omitting `HttpOnly`/`Secure`/`SameSite` on the session cookie → enables XSS theft, plaintext interception, and CSRF.
43
+
44
+ ## Examples
45
+ ```http
46
+ Set-Cookie: __Host-id=<64-bit-entropy-value>; Secure; HttpOnly; SameSite=Strict; Path=/
47
+ ```
48
+
49
+ ## Further reading
50
+ - Password Storage Cheat Sheet, Forgot Password Cheat Sheet, Multifactor Authentication Cheat Sheet — https://cheatsheetseries.owasp.org/
51
+ - ASVS chapters V6 (Authentication) and V7 (Session Management) — ../owasp-asvs
52
+
53
+ ## Related skills
54
+ - ../owasp-asvs — testable auth/session requirements (V6, V7)
55
+ - ../appsec-fundamentals — C7 Secure Digital Identities
56
+ - ../secrets-management — protecting the credentials and keys behind auth