timsquad 3.5.0 → 3.7.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 (454) hide show
  1. package/README.ko.md +103 -107
  2. package/README.md +100 -104
  3. package/dist/commands/daemon.d.ts.map +1 -1
  4. package/dist/commands/daemon.js +48 -2
  5. package/dist/commands/daemon.js.map +1 -1
  6. package/dist/commands/init.js +46 -14
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/{upgrade.d.ts → update.d.ts} +3 -3
  9. package/dist/commands/update.d.ts.map +1 -0
  10. package/dist/commands/{upgrade.js → update.js} +12 -17
  11. package/dist/commands/update.js.map +1 -0
  12. package/dist/daemon/context-writer.d.ts +14 -0
  13. package/dist/daemon/context-writer.d.ts.map +1 -1
  14. package/dist/daemon/context-writer.js +29 -0
  15. package/dist/daemon/context-writer.js.map +1 -1
  16. package/dist/daemon/event-queue.d.ts +7 -11
  17. package/dist/daemon/event-queue.d.ts.map +1 -1
  18. package/dist/daemon/event-queue.js +78 -118
  19. package/dist/daemon/event-queue.js.map +1 -1
  20. package/dist/daemon/file-watcher.d.ts +14 -8
  21. package/dist/daemon/file-watcher.d.ts.map +1 -1
  22. package/dist/daemon/file-watcher.js +78 -41
  23. package/dist/daemon/file-watcher.js.map +1 -1
  24. package/dist/daemon/index.d.ts +1 -1
  25. package/dist/daemon/index.d.ts.map +1 -1
  26. package/dist/daemon/index.js +54 -47
  27. package/dist/daemon/index.js.map +1 -1
  28. package/dist/index.js +3 -41
  29. package/dist/index.js.map +1 -1
  30. package/dist/lib/agent-generator.d.ts.map +1 -1
  31. package/dist/lib/agent-generator.js +21 -10
  32. package/dist/lib/agent-generator.js.map +1 -1
  33. package/dist/lib/compile-rules.d.ts +2 -0
  34. package/dist/lib/compile-rules.d.ts.map +1 -1
  35. package/dist/lib/compile-rules.js +39 -4
  36. package/dist/lib/compile-rules.js.map +1 -1
  37. package/dist/lib/compiler.d.ts +22 -1
  38. package/dist/lib/compiler.d.ts.map +1 -1
  39. package/dist/lib/compiler.js +178 -12
  40. package/dist/lib/compiler.js.map +1 -1
  41. package/dist/lib/config.d.ts +3 -0
  42. package/dist/lib/config.d.ts.map +1 -1
  43. package/dist/lib/config.js +17 -2
  44. package/dist/lib/config.js.map +1 -1
  45. package/dist/{commands/log.d.ts → lib/log-utils.d.ts} +7 -15
  46. package/dist/lib/log-utils.d.ts.map +1 -0
  47. package/dist/lib/log-utils.js +347 -0
  48. package/dist/lib/log-utils.js.map +1 -0
  49. package/dist/lib/skill-generator.d.ts +1 -1
  50. package/dist/lib/skill-generator.d.ts.map +1 -1
  51. package/dist/lib/skill-generator.js +19 -44
  52. package/dist/lib/skill-generator.js.map +1 -1
  53. package/dist/lib/ssot-map.d.ts +31 -0
  54. package/dist/lib/ssot-map.d.ts.map +1 -0
  55. package/dist/lib/ssot-map.js +79 -0
  56. package/dist/lib/ssot-map.js.map +1 -0
  57. package/dist/lib/template.d.ts +10 -3
  58. package/dist/lib/template.d.ts.map +1 -1
  59. package/dist/lib/template.js +137 -22
  60. package/dist/lib/template.js.map +1 -1
  61. package/dist/lib/upgrade-backup.js +1 -1
  62. package/dist/lib/upgrade-backup.js.map +1 -1
  63. package/dist/lib/workflow-state.d.ts +1 -1
  64. package/dist/lib/workflow-state.d.ts.map +1 -1
  65. package/dist/lib/workflow-state.js +1 -1
  66. package/dist/lib/workflow-state.js.map +1 -1
  67. package/dist/types/config.d.ts +10 -1
  68. package/dist/types/config.d.ts.map +1 -1
  69. package/dist/types/config.js +46 -41
  70. package/dist/types/config.js.map +1 -1
  71. package/dist/types/feedback.d.ts +1 -54
  72. package/dist/types/feedback.d.ts.map +1 -1
  73. package/dist/types/feedback.js +1 -22
  74. package/dist/types/feedback.js.map +1 -1
  75. package/dist/types/index.d.ts +1 -0
  76. package/dist/types/index.d.ts.map +1 -1
  77. package/dist/types/index.js +1 -0
  78. package/dist/types/index.js.map +1 -1
  79. package/dist/types/meta-index.d.ts +8 -0
  80. package/dist/types/meta-index.d.ts.map +1 -1
  81. package/dist/types/project.d.ts +6 -1
  82. package/dist/types/project.d.ts.map +1 -1
  83. package/dist/types/project.js +15 -0
  84. package/dist/types/project.js.map +1 -1
  85. package/dist/types/ssot-map.d.ts +30 -0
  86. package/dist/types/ssot-map.d.ts.map +1 -0
  87. package/dist/types/ssot-map.js +6 -0
  88. package/dist/types/ssot-map.js.map +1 -0
  89. package/package.json +1 -1
  90. package/templates/base/agents/base/tsq-architect.md +1 -1
  91. package/templates/base/agents/base/tsq-dba.md +3 -1
  92. package/templates/base/agents/base/tsq-designer.md +3 -1
  93. package/templates/base/agents/base/tsq-developer.md +3 -1
  94. package/templates/base/agents/base/tsq-librarian.md +45 -0
  95. package/templates/base/agents/base/tsq-qa.md +3 -1
  96. package/templates/base/agents/base/tsq-security.md +3 -1
  97. package/templates/base/agents/overlays/platform/claude-code.md +2 -2
  98. package/templates/base/config.template.yaml +17 -28
  99. package/templates/base/knowledge/templates/task-result.md +5 -10
  100. package/templates/base/skills/_shared/naming-conventions.md +49 -0
  101. package/templates/base/skills/_template/SKILL.md +31 -17
  102. package/templates/base/skills/{architecture → tsq-architecture}/SKILL.md +2 -2
  103. package/templates/base/skills/tsq-audit/SKILL.md +74 -0
  104. package/templates/base/skills/{methodology/bdd → tsq-bdd}/SKILL.md +14 -9
  105. package/templates/base/skills/tsq-coding/SKILL.md +65 -0
  106. package/templates/base/skills/tsq-coding/rules/async-patterns.md +81 -0
  107. package/templates/base/skills/tsq-coding/rules/code-organization.md +80 -0
  108. package/templates/base/skills/tsq-coding/rules/error-handling.md +76 -0
  109. package/templates/base/skills/tsq-coding/rules/type-safety.md +85 -0
  110. package/templates/base/skills/tsq-controller/SKILL.md +81 -0
  111. package/templates/base/skills/tsq-controller/memory/.gitkeep +0 -0
  112. package/templates/base/skills/{mobile/dart → tsq-dart}/SKILL.md +5 -3
  113. package/templates/base/skills/{database → tsq-database}/SKILL.md +13 -27
  114. package/templates/base/skills/tsq-database/rules/query-optimization.md +32 -0
  115. package/templates/base/skills/tsq-database/rules/supabase-patterns.md +94 -0
  116. package/templates/base/skills/{methodology/ddd → tsq-ddd}/SKILL.md +15 -10
  117. package/templates/base/skills/{methodology/debugging → tsq-debugging}/SKILL.md +2 -2
  118. package/templates/base/skills/tsq-decompose/SKILL.md +117 -0
  119. package/templates/base/skills/tsq-delete/SKILL.md +72 -0
  120. package/templates/base/skills/{mobile/flutter → tsq-flutter}/SKILL.md +6 -3
  121. package/templates/base/skills/tsq-grill/SKILL.md +86 -0
  122. package/templates/base/skills/{backend/node → tsq-hono}/SKILL.md +6 -4
  123. package/templates/base/skills/tsq-librarian/SKILL.md +78 -0
  124. package/templates/base/skills/tsq-log/SKILL.md +30 -0
  125. package/templates/base/skills/{frontend/nextjs → tsq-nextjs}/SKILL.md +14 -9
  126. package/templates/base/skills/{planning → tsq-planning}/SKILL.md +2 -2
  127. package/templates/base/skills/{database/prisma → tsq-prisma}/SKILL.md +15 -9
  128. package/templates/base/skills/tsq-product-audit/SKILL.md +113 -0
  129. package/templates/base/skills/tsq-product-audit/checklists/01-security.md +86 -0
  130. package/templates/base/skills/tsq-product-audit/checklists/02-performance.md +67 -0
  131. package/templates/base/skills/tsq-product-audit/checklists/03-seo.md +46 -0
  132. package/templates/base/skills/tsq-product-audit/checklists/04-accessibility.md +66 -0
  133. package/templates/base/skills/tsq-product-audit/checklists/05-ui-ux.md +50 -0
  134. package/templates/base/skills/tsq-product-audit/checklists/06-architecture.md +53 -0
  135. package/templates/base/skills/tsq-product-audit/checklists/07-functional-requirements.md +55 -0
  136. package/templates/base/skills/tsq-product-audit/rules/audit-protocol.md +136 -0
  137. package/templates/base/skills/tsq-product-audit/rules/false-positive-guard.md +81 -0
  138. package/templates/base/skills/tsq-product-audit/rules/scoring-criteria.md +113 -0
  139. package/templates/base/skills/tsq-product-audit/templates/improvement-plan-template.md +60 -0
  140. package/templates/base/skills/tsq-product-audit/templates/report-template.md +88 -0
  141. package/templates/base/skills/tsq-prompt/SKILL.md +86 -0
  142. package/templates/base/skills/tsq-protocol/SKILL.md +101 -33
  143. package/templates/base/skills/{frontend/react → tsq-react}/SKILL.md +6 -3
  144. package/templates/base/skills/tsq-retro/SKILL.md +86 -0
  145. package/templates/base/skills/tsq-retro/references/feedback-guide.md +58 -0
  146. package/templates/base/skills/tsq-retro/references/improve-protocol.md +87 -0
  147. package/templates/base/skills/tsq-retro/references/improvement-template.md +26 -0
  148. package/templates/base/skills/tsq-security/SKILL.md +66 -0
  149. package/templates/base/skills/tsq-security/rules/auth-patterns.md +62 -0
  150. package/templates/base/skills/tsq-security/rules/dependency-security.md +69 -0
  151. package/templates/base/skills/tsq-security/rules/input-validation.md +68 -0
  152. package/templates/base/skills/tsq-security/rules/secrets-management.md +65 -0
  153. package/templates/base/skills/tsq-spec/SKILL.md +58 -0
  154. package/templates/base/skills/{stability-verification → tsq-stability}/SKILL.md +3 -3
  155. package/templates/base/skills/tsq-start/SKILL.md +90 -0
  156. package/templates/base/skills/tsq-start/references/onboarding-questions.md +177 -0
  157. package/templates/base/skills/tsq-status/SKILL.md +32 -0
  158. package/templates/base/skills/{methodology/tdd → tsq-tdd}/SKILL.md +12 -3
  159. package/templates/base/skills/tsq-testing/SKILL.md +69 -0
  160. package/templates/base/skills/tsq-testing/references/e2e-stability.md +33 -0
  161. package/templates/base/skills/{typescript → tsq-typescript}/SKILL.md +5 -11
  162. package/templates/base/skills/{ui-design → tsq-ui}/SKILL.md +2 -2
  163. package/templates/base/skills/tsq-update/SKILL.md +48 -0
  164. package/templates/base/timsquad/constraints/competency-framework.xml +2 -2
  165. package/templates/base/timsquad/constraints/ssot-schema.xml +2 -2
  166. package/templates/base/timsquad/process/phase-checklist.yaml +1 -1
  167. package/templates/base/timsquad/process/state-machine.xml +2 -2
  168. package/templates/base/timsquad/process/validation-rules.xml +8 -8
  169. package/templates/base/timsquad/process/workflow-base.xml +8 -8
  170. package/templates/base/timsquad/retrospective/cycle-report.template.md +2 -2
  171. package/templates/base/timsquad/retrospective/patterns/failure-patterns.md +1 -1
  172. package/templates/base/timsquad/retrospective/patterns/success-patterns.md +2 -2
  173. package/templates/base/timsquad/retrospective/retrospective-state.xml +2 -2
  174. package/templates/base/timsquad/ssot/audit-trail-spec.template.md +155 -0
  175. package/templates/base/timsquad/ssot/compliance-matrix.template.md +105 -0
  176. package/templates/base/timsquad/ssot/component-map.template.md +181 -0
  177. package/templates/base/timsquad/ssot/data-design.template.md +4 -4
  178. package/templates/base/timsquad/ssot/deployment-spec.template.md +29 -22
  179. package/templates/base/timsquad/ssot/env-config.template.md +4 -2
  180. package/templates/base/timsquad/ssot/error-codes.template.md +3 -3
  181. package/templates/base/timsquad/ssot/functional-spec.template.md +40 -3
  182. package/templates/base/timsquad/ssot/glossary.template.md +2 -2
  183. package/templates/base/timsquad/ssot/infra-topology.template.md +191 -0
  184. package/templates/base/timsquad/ssot/integration-spec.template.md +2 -2
  185. package/templates/base/timsquad/ssot/monitoring-spec.template.md +185 -0
  186. package/templates/base/timsquad/ssot/navigation-map.template.md +154 -0
  187. package/templates/base/timsquad/ssot/performance-budget.template.md +132 -0
  188. package/templates/base/timsquad/ssot/planning.template.md +3 -3
  189. package/templates/base/timsquad/ssot/prd/_template.md +73 -0
  190. package/templates/base/timsquad/ssot/prd.template.md +10 -21
  191. package/templates/base/timsquad/ssot/requirements.template.md +3 -3
  192. package/templates/base/timsquad/ssot/sdk-spec.template.md +223 -0
  193. package/templates/base/timsquad/ssot/service-spec.template.md +3 -3
  194. package/templates/base/timsquad/ssot/state-machine.template.md +127 -0
  195. package/templates/base/timsquad/ssot/test-spec.template.md +11 -1
  196. package/templates/base/timsquad/ssot/ui-ux-spec.template.md +43 -3
  197. package/templates/base/timsquad/ssot-map.template.yaml +69 -0
  198. package/templates/base/timsquad/state/workspace.xml +11 -11
  199. package/templates/platforms/claude-code/rules/adr-rules.md +1 -1
  200. package/templates/platforms/claude-code/rules/api-conventions.md +12 -0
  201. package/templates/platforms/claude-code/rules/build-gate.md +1 -1
  202. package/templates/platforms/claude-code/rules/completion-verification.md +0 -2
  203. package/templates/platforms/claude-code/rules/context-monitor.md +1 -1
  204. package/templates/platforms/claude-code/rules/feedback-routing.md +2 -2
  205. package/templates/platforms/claude-code/rules/librarian-constraints.md +11 -0
  206. package/templates/platforms/claude-code/rules/phase-management.md +2 -2
  207. package/templates/platforms/claude-code/rules/plan-review.md +2 -2
  208. package/templates/platforms/claude-code/rules/quality-guards.md +0 -2
  209. package/templates/platforms/claude-code/rules/sequence-management.md +15 -15
  210. package/templates/platforms/claude-code/rules/session-notes.md +1 -1
  211. package/templates/platforms/claude-code/rules/test-conventions.md +13 -0
  212. package/templates/platforms/claude-code/rules/workspace-sync.md +1 -1
  213. package/templates/platforms/claude-code/scripts/build-gate.sh +6 -1
  214. package/templates/platforms/claude-code/scripts/change-scope-guard.sh +110 -0
  215. package/templates/platforms/claude-code/scripts/check-capability.sh +68 -0
  216. package/templates/platforms/claude-code/scripts/completion-guard.sh +134 -14
  217. package/templates/platforms/claude-code/scripts/context-restore.sh +95 -0
  218. package/templates/platforms/claude-code/scripts/e2e-commit-gate.sh +70 -0
  219. package/templates/platforms/claude-code/scripts/e2e-marker.sh +51 -0
  220. package/templates/platforms/claude-code/scripts/phase-guard.sh +3 -6
  221. package/templates/platforms/claude-code/scripts/pre-compact.sh +70 -0
  222. package/templates/platforms/claude-code/scripts/safe-guard.sh +2 -5
  223. package/templates/platforms/claude-code/scripts/subagent-start.sh +11 -0
  224. package/templates/platforms/claude-code/scripts/subagent-stop.sh +11 -0
  225. package/templates/platforms/claude-code/settings.json +28 -56
  226. package/templates/project-types/api-backend/config.yaml +9 -5
  227. package/templates/project-types/api-backend/process/workflow.xml +2 -2
  228. package/templates/project-types/fintech/config.yaml +13 -19
  229. package/templates/project-types/fintech/ssot/audit-trail-spec.template.md +207 -0
  230. package/templates/project-types/fintech/ssot/compliance-matrix.template.md +187 -0
  231. package/templates/project-types/infra/config.yaml +7 -4
  232. package/templates/project-types/infra/process/workflow.xml +3 -3
  233. package/templates/project-types/mobile-app/config.yaml +8 -14
  234. package/templates/project-types/mobile-app/process/workflow.xml +4 -4
  235. package/templates/project-types/platform/config.yaml +8 -5
  236. package/templates/project-types/platform/process/workflow.xml +3 -3
  237. package/templates/project-types/web-app/config.yaml +9 -15
  238. package/templates/project-types/web-app/process/workflow.xml +6 -6
  239. package/templates/project-types/web-service/config.yaml +10 -19
  240. package/templates/project-types/web-service/process/workflow.xml +6 -6
  241. package/dist/commands/compile.d.ts +0 -3
  242. package/dist/commands/compile.d.ts.map +0 -1
  243. package/dist/commands/compile.js +0 -170
  244. package/dist/commands/compile.js.map +0 -1
  245. package/dist/commands/feedback.d.ts +0 -12
  246. package/dist/commands/feedback.d.ts.map +0 -1
  247. package/dist/commands/feedback.js +0 -382
  248. package/dist/commands/feedback.js.map +0 -1
  249. package/dist/commands/full.d.ts +0 -3
  250. package/dist/commands/full.d.ts.map +0 -1
  251. package/dist/commands/full.js +0 -88
  252. package/dist/commands/full.js.map +0 -1
  253. package/dist/commands/git/commit.d.ts +0 -3
  254. package/dist/commands/git/commit.d.ts.map +0 -1
  255. package/dist/commands/git/commit.js +0 -85
  256. package/dist/commands/git/commit.js.map +0 -1
  257. package/dist/commands/git/index.d.ts +0 -5
  258. package/dist/commands/git/index.d.ts.map +0 -1
  259. package/dist/commands/git/index.js +0 -5
  260. package/dist/commands/git/index.js.map +0 -1
  261. package/dist/commands/git/pr.d.ts +0 -3
  262. package/dist/commands/git/pr.d.ts.map +0 -1
  263. package/dist/commands/git/pr.js +0 -139
  264. package/dist/commands/git/pr.js.map +0 -1
  265. package/dist/commands/git/release.d.ts +0 -3
  266. package/dist/commands/git/release.d.ts.map +0 -1
  267. package/dist/commands/git/release.js +0 -153
  268. package/dist/commands/git/release.js.map +0 -1
  269. package/dist/commands/git/sync.d.ts +0 -3
  270. package/dist/commands/git/sync.d.ts.map +0 -1
  271. package/dist/commands/git/sync.js +0 -132
  272. package/dist/commands/git/sync.js.map +0 -1
  273. package/dist/commands/improve.d.ts +0 -3
  274. package/dist/commands/improve.d.ts.map +0 -1
  275. package/dist/commands/improve.js +0 -286
  276. package/dist/commands/improve.js.map +0 -1
  277. package/dist/commands/knowledge.d.ts +0 -3
  278. package/dist/commands/knowledge.d.ts.map +0 -1
  279. package/dist/commands/knowledge.js +0 -316
  280. package/dist/commands/knowledge.js.map +0 -1
  281. package/dist/commands/log.d.ts.map +0 -1
  282. package/dist/commands/log.js +0 -1436
  283. package/dist/commands/log.js.map +0 -1
  284. package/dist/commands/meta-index.d.ts +0 -3
  285. package/dist/commands/meta-index.d.ts.map +0 -1
  286. package/dist/commands/meta-index.js +0 -401
  287. package/dist/commands/meta-index.js.map +0 -1
  288. package/dist/commands/metrics.d.ts +0 -3
  289. package/dist/commands/metrics.d.ts.map +0 -1
  290. package/dist/commands/metrics.js +0 -843
  291. package/dist/commands/metrics.js.map +0 -1
  292. package/dist/commands/quick.d.ts +0 -3
  293. package/dist/commands/quick.d.ts.map +0 -1
  294. package/dist/commands/quick.js +0 -136
  295. package/dist/commands/quick.js.map +0 -1
  296. package/dist/commands/retro.d.ts +0 -3
  297. package/dist/commands/retro.d.ts.map +0 -1
  298. package/dist/commands/retro.js +0 -828
  299. package/dist/commands/retro.js.map +0 -1
  300. package/dist/commands/session.d.ts +0 -3
  301. package/dist/commands/session.d.ts.map +0 -1
  302. package/dist/commands/session.js +0 -346
  303. package/dist/commands/session.js.map +0 -1
  304. package/dist/commands/skills.d.ts +0 -12
  305. package/dist/commands/skills.d.ts.map +0 -1
  306. package/dist/commands/skills.js +0 -228
  307. package/dist/commands/skills.js.map +0 -1
  308. package/dist/commands/status.d.ts +0 -3
  309. package/dist/commands/status.d.ts.map +0 -1
  310. package/dist/commands/status.js +0 -127
  311. package/dist/commands/status.js.map +0 -1
  312. package/dist/commands/upgrade.d.ts.map +0 -1
  313. package/dist/commands/upgrade.js.map +0 -1
  314. package/dist/commands/watch.d.ts +0 -3
  315. package/dist/commands/watch.d.ts.map +0 -1
  316. package/dist/commands/watch.js +0 -213
  317. package/dist/commands/watch.js.map +0 -1
  318. package/dist/commands/workflow.d.ts +0 -3
  319. package/dist/commands/workflow.d.ts.map +0 -1
  320. package/dist/commands/workflow.js +0 -607
  321. package/dist/commands/workflow.js.map +0 -1
  322. package/templates/base/skills/coding/SKILL.md +0 -47
  323. package/templates/base/skills/controller/SKILL.md +0 -111
  324. package/templates/base/skills/prompt-engineering/SKILL.md +0 -103
  325. package/templates/base/skills/retrospective/SKILL.md +0 -102
  326. package/templates/base/skills/security/SKILL.md +0 -55
  327. package/templates/base/skills/testing/SKILL.md +0 -63
  328. package/templates/base/timsquad/feedback/feedback-router.sh +0 -341
  329. package/templates/base/timsquad/feedback/routing-rules.yaml +0 -352
  330. package/templates/platforms/claude-code/CLAUDE.md.template +0 -89
  331. package/templates/platforms/claude-code/rules/skill-suggest.md +0 -27
  332. package/templates/platforms/claude-code/scripts/skill-rules.json +0 -85
  333. package/templates/platforms/claude-code/scripts/skill-suggest.sh +0 -105
  334. /package/templates/base/skills/{architecture → tsq-architecture}/references/adr-template.md +0 -0
  335. /package/templates/base/skills/{architecture → tsq-architecture}/references/api-design.md +0 -0
  336. /package/templates/base/skills/{methodology/bdd → tsq-bdd}/rules/gherkin-patterns.md +0 -0
  337. /package/templates/base/skills/{coding → tsq-coding}/rules/patterns.md +0 -0
  338. /package/templates/base/skills/{controller → tsq-controller}/references/README.md +0 -0
  339. /package/templates/base/skills/{controller → tsq-controller}/rules/README.md +0 -0
  340. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/async-patterns.md +0 -0
  341. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/code-style.md +0 -0
  342. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/null-safety.md +0 -0
  343. /package/templates/base/skills/{mobile/dart → tsq-dart}/rules/type-system.md +0 -0
  344. /package/templates/base/skills/{methodology/ddd → tsq-ddd}/rules/strategic-patterns.md +0 -0
  345. /package/templates/base/skills/{methodology/debugging → tsq-debugging}/references/root-cause-tracing.md +0 -0
  346. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/SKILL.md +0 -0
  347. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/references/ci-cd-pipeline.md +0 -0
  348. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/code-signing.md +0 -0
  349. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/codemagic-setup.md +0 -0
  350. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/fastlane-setup.md +0 -0
  351. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/github-actions.md +0 -0
  352. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/store-deployment.md +0 -0
  353. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/ci-cd/rules/versioning.md +0 -0
  354. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/SKILL.md +0 -0
  355. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/references/i18n-architecture.md +0 -0
  356. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/arb-files.md +0 -0
  357. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/locale-switching.md +0 -0
  358. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/localization-setup.md +0 -0
  359. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/plural-gender.md +0 -0
  360. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/i18n/rules/text-direction.md +0 -0
  361. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/SKILL.md +0 -0
  362. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/references/monitoring-architecture.md +0 -0
  363. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/analytics.md +0 -0
  364. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/crashlytics-setup.md +0 -0
  365. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/logging.md +0 -0
  366. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/performance-monitoring.md +0 -0
  367. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/monitoring/rules/sentry-integration.md +0 -0
  368. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/SKILL.md +0 -0
  369. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/references/api-client-architecture.md +0 -0
  370. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/caching.md +0 -0
  371. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/connectivity.md +0 -0
  372. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/dio-setup.md +0 -0
  373. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/error-handling.md +0 -0
  374. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/interceptors.md +0 -0
  375. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/networking/rules/retrofit-patterns.md +0 -0
  376. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/SKILL.md +0 -0
  377. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/references/notification-architecture.md +0 -0
  378. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/references/platform-setup.md +0 -0
  379. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/background-processing.md +0 -0
  380. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/deep-linking.md +0 -0
  381. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/fcm-setup.md +0 -0
  382. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/local-notifications.md +0 -0
  383. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/notification-handling.md +0 -0
  384. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/notification-permissions.md +0 -0
  385. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/push-notifications/rules/rich-notifications.md +0 -0
  386. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/references/freezed-patterns.md +0 -0
  387. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/references/project-structure.md +0 -0
  388. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/animations.md +0 -0
  389. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/architecture.md +0 -0
  390. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/navigation-routing.md +0 -0
  391. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/performance.md +0 -0
  392. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/platform-adaptive.md +0 -0
  393. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/state-management.md +0 -0
  394. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/testing.md +0 -0
  395. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/rules/widget-conventions.md +0 -0
  396. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/SKILL.md +0 -0
  397. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/references/mobile-security-checklist.md +0 -0
  398. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/api-key-protection.md +0 -0
  399. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/authentication.md +0 -0
  400. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/data-protection.md +0 -0
  401. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/obfuscation.md +0 -0
  402. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/secure-storage.md +0 -0
  403. /package/templates/base/skills/{mobile/flutter → tsq-flutter}/security/rules/ssl-pinning.md +0 -0
  404. /package/templates/base/skills/{backend/node → tsq-hono}/rules/async-patterns.md +0 -0
  405. /package/templates/base/skills/{backend/node → tsq-hono}/rules/deployment.md +0 -0
  406. /package/templates/base/skills/{backend/node → tsq-hono}/rules/env-config.md +0 -0
  407. /package/templates/base/skills/{backend/node → tsq-hono}/rules/error-handling.md +0 -0
  408. /package/templates/base/skills/{backend/node → tsq-hono}/rules/hono-app-setup.md +0 -0
  409. /package/templates/base/skills/{backend/node → tsq-hono}/rules/jwt-auth.md +0 -0
  410. /package/templates/base/skills/{backend/node → tsq-hono}/rules/middleware.md +0 -0
  411. /package/templates/base/skills/{backend/node → tsq-hono}/rules/testing.md +0 -0
  412. /package/templates/base/skills/{frontend/nextjs → tsq-nextjs}/rules/app-router.md +0 -0
  413. /package/templates/base/skills/{planning → tsq-planning}/references/prd-guide.md +0 -0
  414. /package/templates/base/skills/{planning → tsq-planning}/references/requirements-guide.md +0 -0
  415. /package/templates/base/skills/{database/prisma → tsq-prisma}/rules/queries.md +0 -0
  416. /package/templates/base/skills/{database/prisma → tsq-prisma}/rules/schema-design.md +0 -0
  417. /package/templates/base/skills/{frontend/react → tsq-react}/rules/_sections.md +0 -0
  418. /package/templates/base/skills/{frontend/react → tsq-react}/rules/anti-patterns.md +0 -0
  419. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-api-routes.md +0 -0
  420. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-defer-await.md +0 -0
  421. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-dependencies.md +0 -0
  422. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-parallel.md +0 -0
  423. /package/templates/base/skills/{frontend/react → tsq-react}/rules/async-suspense-boundaries.md +0 -0
  424. /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-barrel-imports.md +0 -0
  425. /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-defer-third-party.md +0 -0
  426. /package/templates/base/skills/{frontend/react → tsq-react}/rules/bundle-dynamic-imports.md +0 -0
  427. /package/templates/base/skills/{frontend/react → tsq-react}/rules/component-conventions.md +0 -0
  428. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-combine-iterations.md +0 -0
  429. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-early-exit.md +0 -0
  430. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-index-maps.md +0 -0
  431. /package/templates/base/skills/{frontend/react → tsq-react}/rules/js-set-map-lookups.md +0 -0
  432. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-conditional-render.md +0 -0
  433. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-content-visibility.md +0 -0
  434. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rendering-hoist-jsx.md +0 -0
  435. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-defer-reads.md +0 -0
  436. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-derived-state.md +0 -0
  437. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-memo.md +0 -0
  438. /package/templates/base/skills/{frontend/react → tsq-react}/rules/rerender-transitions.md +0 -0
  439. /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-after-nonblocking.md +0 -0
  440. /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-cache-react.md +0 -0
  441. /package/templates/base/skills/{frontend/react → tsq-react}/rules/server-parallel-fetching.md +0 -0
  442. /package/templates/base/skills/{frontend/react → tsq-react}/rules/state-location.md +0 -0
  443. /package/templates/base/skills/{security → tsq-security}/rules/owasp-examples.md +0 -0
  444. /package/templates/base/skills/{security → tsq-security}/scripts/check-secrets.sh +0 -0
  445. /package/templates/base/skills/{stability-verification → tsq-stability}/references/release-checklist.md +0 -0
  446. /package/templates/base/skills/{stability-verification → tsq-stability}/references/security-fix-patterns.md +0 -0
  447. /package/templates/base/skills/{stability-verification → tsq-stability}/rules/verification-layers.md +0 -0
  448. /package/templates/base/skills/{stability-verification → tsq-stability}/rules/verification-workflow.md +0 -0
  449. /package/templates/base/skills/{stability-verification → tsq-stability}/scripts/verify.sh +0 -0
  450. /package/templates/base/skills/{methodology/tdd → tsq-tdd}/rules/real-world-example.md +0 -0
  451. /package/templates/base/skills/{methodology/tdd → tsq-tdd}/rules/techniques.md +0 -0
  452. /package/templates/base/skills/{testing → tsq-testing}/references/testing-patterns.md +0 -0
  453. /package/templates/base/skills/{typescript → tsq-typescript}/rules/type-patterns.md +0 -0
  454. /package/templates/base/skills/{typescript → tsq-typescript}/rules/utility-types.md +0 -0
@@ -1,8 +1,10 @@
1
1
  ---
2
- name: nextjs
3
- description: Next.js App Router 개발 가이드라인
2
+ name: tsq-nextjs
3
+ description: |
4
+ Next.js App Router 개발 가이드라인. Server/Client Components, Server Actions, 캐싱 전략.
5
+ Use when: Next.js 프로젝트 개발, App Router 라우팅, Server Component 설계, Server Actions 구현 시.
4
6
  version: "1.0.0"
5
- tags: [nextjs, react, frontend]
7
+ tags: [tsq, nextjs, react, frontend]
6
8
  user-invocable: false
7
9
  ---
8
10
 
@@ -48,12 +50,15 @@ user-invocable: false
48
50
  - 동적 import: 무거운 컴포넌트 지연 로딩
49
51
 
50
52
  ## Checklist
51
- - [ ] Server Component 기본 사용
52
- - [ ] 'use client' 최소화
53
- - [ ] Server Actions로 mutation
54
- - [ ] 적절한 캐싱 전략
55
- - [ ] loading.tsx, error.tsx 구현
56
- - [ ] Metadata 설정
53
+
54
+ | Priority | Item |
55
+ |----------|------|
56
+ | CRITICAL | Server Component 기본 사용 |
57
+ | CRITICAL | 'use client' 최소화 |
58
+ | HIGH | Server Actions로 mutation |
59
+ | HIGH | 적절한 캐싱 전략 |
60
+ | MEDIUM | loading.tsx, error.tsx 구현 |
61
+ | MEDIUM | Metadata 설정 |
57
62
 
58
63
  ## 참조
59
64
  - `rules/app-router.md` — 디렉토리 구조, Server/Client 예시, Data Fetching, Metadata, Loading/Error 패턴
@@ -1,11 +1,11 @@
1
1
  ---
2
- name: planning
2
+ name: tsq-planning
3
3
  description: |
4
4
  기획 및 요건 정의 가이드라인.
5
5
  PRD, 요구사항 정의, 문서 구조화, 대용량 문서 분할 전략을 다룸.
6
6
  Use when: "기획, PRD, 요구사항, 요건 정의, 스코프, 마일스톤"
7
7
  version: "1.0.0"
8
- tags: [planning, prd, requirements]
8
+ tags: [tsq, planning, prd, requirements]
9
9
  user-invocable: false
10
10
  ---
11
11
 
@@ -1,8 +1,10 @@
1
1
  ---
2
- name: prisma
3
- description: Prisma ORM 개발 가이드라인
2
+ name: tsq-prisma
3
+ description: |
4
+ Prisma ORM 개발 가이드라인. 스키마 설계, 쿼리 최적화, 마이그레이션 관리, Repository 패턴.
5
+ Use when: Prisma 스키마 작성·수정, 마이그레이션 생성, ORM 쿼리 작성, 데이터 모델 설계 시.
4
6
  version: "1.0.0"
5
- tags: [prisma, orm, database]
7
+ tags: [tsq, prisma, orm, database]
6
8
  user-invocable: false
7
9
  ---
8
10
 
@@ -45,13 +47,17 @@ user-invocable: false
45
47
  - **금지**: 프로덕션에서 `db push`
46
48
 
47
49
  ## Checklist
48
- - [ ] 싱글톤 인스턴스 사용
49
- - [ ] 마이그레이션으로 스키마 관리
50
- - [ ] 트랜잭션으로 데이터 정합성
51
- - [ ] select로 필요한 필드만 조회
52
- - [ ] 인덱스 적절히 설정
53
- - [ ] Repository 패턴 적용
50
+
51
+ | Priority | Item |
52
+ |----------|------|
53
+ | CRITICAL | 싱글톤 인스턴스 사용 |
54
+ | CRITICAL | 마이그레이션으로 스키마 관리 |
55
+ | HIGH | 트랜잭션으로 데이터 정합성 |
56
+ | HIGH | select로 필요한 필드만 조회 |
57
+ | MEDIUM | 인덱스 적절히 설정 |
58
+ | MEDIUM | Repository 패턴 적용 |
54
59
 
55
60
  ## 참조
56
61
  - `rules/schema-design.md` — 모델 정의, 공통 필드, 소프트 삭제 패턴
57
62
  - `rules/queries.md` — 싱글톤, CRUD, Relations, 트랜잭션, Repository 패턴
63
+ - **tsq-database** — DB 설계 원칙, 쿼리 최적화, raw SQL 마이그레이션은 tsq-database 참조
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: tsq-product-audit
3
+ description: |
4
+ 통합 제품 감사 스킬. 7개 영역(Security, Performance, SEO, Accessibility, UI/UX, Architecture, Functional)을
5
+ 정량 스코어링으로 평가하고, 6단계 사이클(Plan→Audit→Report→Remediation Plan→Fix→Re-audit)로 운영한다.
6
+ Use when: Phase gate 전 품질 확인, 보안 감사, 성능 리뷰, 접근성 점검, 릴리스 전 최종 검증, 코드 감사 요청 시.
7
+ version: "2.0.0"
8
+ tags: [tsq, audit, quality, security, performance, accessibility, seo]
9
+ user-invocable: false
10
+ ---
11
+
12
+ # Product Audit
13
+
14
+ 7개 영역을 체계적으로 평가하고, 정량 스코어와 개선 사이클로 품질을 추적한다.
15
+
16
+ ## Philosophy
17
+
18
+ - 정량 70% + 정성 30% 가중 평균으로 객관적 평가
19
+ - 모든 항목에 `source: estimated | measured` 명시
20
+ - False Positive는 FP Registry로 관리하여 재감사 시 노이즈 제거
21
+ - Closed-loop: 감사 → 개선 → 재감사 사이클로 품질 수렴
22
+
23
+ ## Contract
24
+
25
+ - **Trigger**: 감사 태스크, Phase gate 전, 릴리스 전 검증
26
+ - **Input**: 감사 범위 + FP Registry + 이전 리포트 (재감사 시)
27
+ - **Output**: 정량 스코어 보고서 + severity 분류 + 개선 계획
28
+ - **Error**: Critical 항목 존재 시 gate 차단
29
+ - **Dependencies**: coding, testing
30
+
31
+ ## Protocol — 6단계 사이클
32
+
33
+ ### Phase 1: Plan (감사 계획)
34
+ 감사 범위, 대상 영역, 기준을 결정하고 계획을 저장한다.
35
+ - 프로젝트 타입에 따라 영역별 가중치 조정
36
+ - FP Registry 로딩, baseline(이전 감사 결과) 확인
37
+ - 계획을 문서로 저장 → 유저 컨펌 후 진행
38
+
39
+ ### Phase 2: Audit (감사 실행)
40
+ 계획에 따라 7개 영역을 순회하며 체크리스트 기반 평가.
41
+ - 각 항목: pass / fail / warning / skip + source 명시
42
+ - 자동화 가능 항목은 도구 실행 (Lighthouse, axe-core, eslint 등)
43
+ - 수동 항목은 코드 리뷰로 판정
44
+
45
+ ### Phase 3: Report (보고)
46
+ 감사 결과를 정량 스코어로 집계하고 개선점을 보고한다.
47
+ - 영역별 점수 + 가중 평균 종합 점수 산출
48
+ - severity별 finding 분류 (Critical/High/Medium/Low)
49
+ - 이전 감사 대비 diff (개선/악화 추적)
50
+
51
+ ### Phase 4: Remediation Plan (개선 계획)
52
+ 보고서를 토대로 개선 계획을 수립한다.
53
+ - severity 기준 우선순위 정렬
54
+ - 개선 계획 문서 작성 → 유저 컨펌 → 저장
55
+ - 컨펌 없이 개선 실시하지 않음
56
+
57
+ ### Phase 5: Fix (개선 실시)
58
+ 컨펌된 계획에 따라 개선을 실행하고 테스트한다.
59
+ - 개선 완료 후 관련 테스트 실행 (unit + integration)
60
+ - E2E 테스트까지 통과 확인
61
+ - 테스트 실패 시 수정 반복
62
+
63
+ ### Phase 6: Re-audit (재감사)
64
+ 개선 완료 후 동일 기준으로 재감사를 실시한다.
65
+ - Phase 2와 동일 절차, 이전 결과와 diff 비교
66
+ - Gate 기준 충족 시 완료, 미충족 시 Phase 4로 복귀
67
+
68
+ ## Verification
69
+
70
+ | Check | Method | Pass Criteria |
71
+ |-------|--------|---------------|
72
+ | 종합 점수 | 가중 평균 | >= 60점 (gate) |
73
+ | Critical 항목 | severity 확인 | 0건 |
74
+ | source 필드 | 리포트 확인 | 모든 항목 존재 |
75
+ | 재감사 diff | 이전 대비 비교 | PASS→FAIL 전환 0건 |
76
+
77
+ ## 7개 감사 영역
78
+
79
+ | # | 영역 | 핵심 기준 | 체크리스트 |
80
+ |---|------|-----------|-----------|
81
+ | 01 | Security | OWASP Top 10:2025, ASVS v5, CWE Top 25, CVSS 4.0 | [01-security](checklists/01-security.md) |
82
+ | 02 | Performance | Core Web Vitals (LCP/INP/CLS), Lighthouse v12 | [02-performance](checklists/02-performance.md) |
83
+ | 03 | SEO | E-E-A-T, AI Overview, Schema.org, Mobile-first | [03-seo](checklists/03-seo.md) |
84
+ | 04 | Accessibility | WCAG 2.2 AA, EAA 2025, WAI-ARIA APG | [04-accessibility](checklists/04-accessibility.md) |
85
+ | 05 | UI/UX | Nielsen 10 Heuristics, 반응형, 디자인 시스템 | [05-ui-ux](checklists/05-ui-ux.md) |
86
+ | 06 | Architecture & DB | ISO 25010:2023, 데이터 아키텍처, API 설계 | [06-architecture](checklists/06-architecture.md) |
87
+ | 07 | Functional & Requirements | RTM, 테스트 커버리지, 요구사항 추적 | [07-functional-requirements](checklists/07-functional-requirements.md) |
88
+
89
+ ## Severity & SLA
90
+
91
+ | Severity | Action | SLA |
92
+ |----------|--------|-----|
93
+ | Critical | 즉시 수정, 배포 차단 | 같은 Phase |
94
+ | High | 다음 시퀀스 내 수정 | 현재 Phase |
95
+ | Medium | 백로그 등록 | 다음 Phase |
96
+ | Low | 선택적 개선 | 스프린트 내 |
97
+
98
+ ## Resources
99
+
100
+ | Priority | Type | Resource | Description |
101
+ |----------|------|----------|-------------|
102
+ | HIGH | rule | [audit-protocol](rules/audit-protocol.md) | 6단계 절차 상세, 입출력, 도구 연동 |
103
+ | HIGH | rule | [scoring-criteria](rules/scoring-criteria.md) | 영역별 가중치, 점수 산출, gate 기준 |
104
+ | HIGH | rule | [false-positive-guard](rules/false-positive-guard.md) | FP Registry, 오탐 방지 규칙, 계층적 검증 |
105
+ | MEDIUM | checklist | [01-security](checklists/01-security.md) | OWASP 2025 + ASVS v5 + CWE Top 25 |
106
+ | MEDIUM | checklist | [02-performance](checklists/02-performance.md) | CWV 2026 + Lighthouse v12 |
107
+ | MEDIUM | checklist | [03-seo](checklists/03-seo.md) | E-E-A-T + AI Overview + Schema |
108
+ | MEDIUM | checklist | [04-accessibility](checklists/04-accessibility.md) | WCAG 2.2 AA + EAA 2025 |
109
+ | MEDIUM | checklist | [05-ui-ux](checklists/05-ui-ux.md) | Nielsen Heuristics + 반응형 + 디자인 시스템 |
110
+ | MEDIUM | checklist | [06-architecture](checklists/06-architecture.md) | ISO 25010 + DB + API 설계 |
111
+ | MEDIUM | checklist | [07-functional-requirements](checklists/07-functional-requirements.md) | RTM + 테스트 커버리지 |
112
+ | LOW | template | [report-template](templates/report-template.md) | 감사 보고서 양식 |
113
+ | LOW | template | [improvement-plan-template](templates/improvement-plan-template.md) | 개선 계획 양식 |
@@ -0,0 +1,86 @@
1
+ ---
2
+ title: Security Checklist
3
+ area: "01"
4
+ tags: security, owasp, asvs, cwe
5
+ standards: OWASP Top 10:2025, ASVS v5.0, CWE Top 25 2025, CVSS 4.0
6
+ ---
7
+
8
+ # 01. Security Checklist
9
+
10
+ ## A. Access Control & Authorization
11
+
12
+ | # | 항목 | Severity | 근거 |
13
+ |---|------|:--------:|------|
14
+ | A-1 | 서버 측 접근 제어 — 모든 요청에 적용, 클라이언트 측 검증에 의존하지 않음 | CRITICAL | OWASP A01, CWE-862 |
15
+ | A-2 | Deny-by-default — 명시적 허용만 접근 가능 | CRITICAL | OWASP A01, ASVS v5 V4 |
16
+ | A-3 | 객체 수준 권한 검증 (BOLA/IDOR 방지) — 모든 API 엔드포인트 | CRITICAL | API1:2023, CWE-639 |
17
+ | A-4 | 함수 수준 권한 검증 (BFLA 방지) — admin vs user 분리 | CRITICAL | API5:2023, CWE-284 |
18
+ | A-5 | 속성 수준 권한 검증 — mass assignment / 과도한 데이터 노출 방지 | HIGH | API3:2023 |
19
+ | A-6 | CORS 명시적 allowlist — 인증 엔드포인트에 wildcard origin 금지 | HIGH | OWASP A01, CWE-352 |
20
+ | A-7 | CSRF 방어 — 상태 변경 요청에 토큰 또는 SameSite 쿠키 | HIGH | CWE-352 |
21
+ | A-8 | 경로 탐색 방지 — 파일 경로 검증 및 정규화 | HIGH | CWE-22 |
22
+
23
+ ## B. Authentication & Session
24
+
25
+ | # | 항목 | Severity | 근거 |
26
+ |---|------|:--------:|------|
27
+ | B-1 | 비밀번호 정책: 최소 8자, 유출 DB 대조, 구성 규칙 강제 금지 | CRITICAL | NIST SP 800-63B, ASVS v5 V2 |
28
+ | B-2 | MFA 구현 — 피싱 저항 방식 우선 (passkeys, 하드웨어 키) | CRITICAL | NIST SP 800-63-4 |
29
+ | B-3 | JWT 검증: 만료, 발급자, 대상 확인, algorithm "none" 거부 | CRITICAL | API2:2023 |
30
+ | B-4 | 민감 작업 시 재인증 (비밀번호 변경, 결제 등) | HIGH | ASVS v5 V2 |
31
+ | B-5 | 인증 실패 시 계정 잠금 / 속도 제한 | HIGH | CWE-306 |
32
+ | B-6 | 세션 토큰: 암호학적 무작위 생성, Secure·HttpOnly·SameSite 플래그 | HIGH | ASVS v5 V3 |
33
+ | B-7 | OAuth 2.1 + PKCE 필수, implicit/hybrid flow 제거 | HIGH | OAuth 2.1 |
34
+ | B-8 | 짧은 수명 access token (5-15분) + refresh token rotation | HIGH | OAuth 2.1, ASVS v5 |
35
+
36
+ ## C. Injection Prevention
37
+
38
+ | # | 항목 | Severity | 근거 |
39
+ |---|------|:--------:|------|
40
+ | C-1 | Parameterized query / prepared statement — 모든 DB 접근 | CRITICAL | CWE-89 |
41
+ | C-2 | 컨텍스트 인식 출력 인코딩 — HTML/JS/CSS 내 사용자 데이터 | CRITICAL | CWE-79 |
42
+ | C-3 | 서버 측 입력 검증 — allowlist 기반 | CRITICAL | OWASP A05, ASVS v5 V5 |
43
+ | C-4 | OS 명령 삽입 방지 — 사용자 입력 포함 쉘 명령 금지, 안전한 API 사용 | CRITICAL | CWE-78 |
44
+ | C-5 | 코드 삽입 방지 — eval() 등에 사용자 데이터 금지 | CRITICAL | CWE-94 |
45
+ | C-6 | 역직렬화 공격 방지 — 신뢰하지 않는 직렬화 데이터 거부, JSON 사용 | HIGH | CWE-502 |
46
+ | C-7 | Content Security Policy (CSP) 헤더 설정 | HIGH | OWASP A05 |
47
+ | C-8 | 파일 업로드 제한 — 타입·크기·내용 검증, 웹루트 외부 저장, 파일명 변경 | HIGH | CWE-434 |
48
+
49
+ ## D. Security Misconfiguration
50
+
51
+ | # | 항목 | Severity | 근거 |
52
+ |---|------|:--------:|------|
53
+ | D-1 | 기본 자격증명, 샘플 앱, 불필요 기능 프로덕션에서 제거 | CRITICAL | OWASP A02, API8:2023 |
54
+ | D-2 | 디렉토리 목록, 스택 트레이스, 상세 오류 메시지 비활성화 | HIGH | OWASP A02 |
55
+ | D-3 | HTTPS 전면 적용 + HSTS (includeSubDomains, preload) | HIGH | OWASP A02 |
56
+ | D-4 | 보안 헤더: X-Content-Type-Options, X-Frame-Options, Referrer-Policy | MEDIUM | OWASP A02 |
57
+ | D-5 | 클라우드 스토리지/버킷 권한 최소화, IAM least-privilege | CRITICAL | OWASP A02 |
58
+
59
+ ## E. Cryptography
60
+
61
+ | # | 항목 | Severity | 근거 |
62
+ |---|------|:--------:|------|
63
+ | E-1 | 민감 데이터 암호화 — 저장: AES-256, 전송: TLS 1.2+ (1.3 권장) | CRITICAL | OWASP A04 |
64
+ | E-2 | 비밀번호 해싱: Argon2id, bcrypt, scrypt (적절한 work factor) | CRITICAL | ASVS v5 V2 |
65
+ | E-3 | 민감 데이터를 로그·URL·클라이언트 저장소에 저장 금지 | HIGH | CWE-200 |
66
+ | E-4 | 보안 관련 값은 암호학적 난수 생성기 사용 | HIGH | OWASP A04 |
67
+ | E-5 | 폐기된 프로토콜 비활성화 (SSLv3, TLS 1.0/1.1, 약한 암호 스위트) | HIGH | OWASP A04 |
68
+
69
+ ## F. Supply Chain
70
+
71
+ | # | 항목 | Severity | 근거 |
72
+ |---|------|:--------:|------|
73
+ | F-1 | 의존성 버전 고정 + lock 파일 + 체크섬/서명 검증 | HIGH | OWASP A03 |
74
+ | F-2 | 의존성 취약점 지속 스캔 (Dependabot, Snyk 등) | HIGH | OWASP A03 |
75
+ | F-3 | Typosquatting 및 dependency confusion 공격 모니터링 | HIGH | OWASP A03 |
76
+ | F-4 | SBOM 생성 (SPDX 또는 CycloneDX) — 빌드마다 | HIGH | CISA 2025, EU CRA |
77
+ | F-5 | 서드파티 API 무결성 검증 — upstream 무조건 신뢰 금지 | HIGH | API10:2023 |
78
+
79
+ ## G. Error Handling & Logging
80
+
81
+ | # | 항목 | Severity | 근거 |
82
+ |---|------|:--------:|------|
83
+ | G-1 | 안전한 실패 — 오류 시 접근 거부, "fail open" 금지 | CRITICAL | OWASP A10 |
84
+ | G-2 | 예외 시 민감 정보 노출 방지 (스택 트레이스, 내부 경로, SQL) | HIGH | OWASP A10, CWE-200 |
85
+ | G-3 | 인증 이벤트, 접근 제어 실패, 입력 검증 실패 로깅 | HIGH | OWASP A09 |
86
+ | G-4 | 로그 무결성 보호 — 로그 삽입 방지 | MEDIUM | OWASP A09 |
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: Performance Checklist
3
+ area: "02"
4
+ tags: performance, core-web-vitals, lighthouse
5
+ standards: Core Web Vitals 2026, Lighthouse v12
6
+ ---
7
+
8
+ # 02. Performance Checklist
9
+
10
+ ## Core Web Vitals 기준값
11
+
12
+ | Metric | Good | Needs Improvement | Poor |
13
+ |--------|:----:|:------------------:|:----:|
14
+ | LCP (Largest Contentful Paint) | <= 2.5s | 2.5s - 4.0s | > 4.0s |
15
+ | INP (Interaction to Next Paint) | <= 200ms | 200ms - 500ms | > 500ms |
16
+ | CLS (Cumulative Layout Shift) | <= 0.1 | 0.1 - 0.25 | > 0.25 |
17
+
18
+ 측정: 75th percentile, 28일 필드 데이터 기준.
19
+
20
+ ## A. Core Web Vitals
21
+
22
+ | # | 항목 | Severity | 근거 |
23
+ |---|------|:--------:|------|
24
+ | A-1 | LCP <= 2.5s (모바일 75th percentile) | CRITICAL | CWV — 모바일 페이지 38% 미통과 |
25
+ | A-2 | INP <= 200ms — 모든 인터랙션 응답 | CRITICAL | CWV — 43% 사이트 미통과, 가장 빈번한 실패 |
26
+ | A-3 | CLS <= 0.1 — 이미지/광고 공간 예약 (width/height, aspect-ratio) | CRITICAL | CWV |
27
+ | A-4 | Long task (>50ms) 분할 — `scheduler.yield()` 또는 Web Worker 활용 | HIGH | INP 최적화 |
28
+ | A-5 | 페이지 로드 중 인터랙션 INP 특별 관리 (로드 후 대비 2.6배 악화) | HIGH | CWV 필드 데이터 |
29
+
30
+ ## B. Bundle & Loading
31
+
32
+ | # | 항목 | Severity | 근거 |
33
+ |---|------|:--------:|------|
34
+ | B-1 | 초기 JS 번들 (gzip): <= 300-350KB | HIGH | 100KB당 3G에서 +3.2s |
35
+ | B-2 | Critical-path 리소스: <= 170KB | HIGH | 제한된 네트워크 기준 |
36
+ | B-3 | Code splitting + tree-shaking 적용 | HIGH | 번들 최적화 |
37
+ | B-4 | Below-the-fold 컴포넌트 lazy loading | HIGH | 초기 로딩 최적화 |
38
+ | B-5 | 서드파티 스크립트 지연 로딩 (Partytown 등) | MEDIUM | TBT 감소 |
39
+ | B-6 | SSR/RSC 적용 (콘텐츠 중심 페이지) — RSC는 클라이언트 JS 40-60% 감소 | MEDIUM | TTI 최적화 |
40
+
41
+ ## C. Rendering
42
+
43
+ | # | 항목 | Severity | 근거 |
44
+ |---|------|:--------:|------|
45
+ | C-1 | 불필요한 리렌더 방지 (React.memo, useMemo, useCallback) | MEDIUM | 렌더링 성능 |
46
+ | C-2 | DOM 복잡도 관리 — 과도한 DOM은 스타일 재계산·페인트 지연 | MEDIUM | 렌더링 성능 |
47
+ | C-3 | 이벤트 핸들러 최적화 — debounce, layout thrashing 방지 | MEDIUM | INP 최적화 |
48
+ | C-4 | 이미지 최적화 — WebP/AVIF, srcset, lazy loading | MEDIUM | LCP + 대역폭 |
49
+
50
+ ## D. Monitoring & Budget
51
+
52
+ | # | 항목 | Severity | 근거 |
53
+ |---|------|:--------:|------|
54
+ | D-1 | CI에 성능 예산 설정 (경고: 500KB, 에러: 1MB) | MEDIUM | 성능 회귀 방지 |
55
+ | D-2 | RUM (Real User Monitoring) 사용 — 랩 데이터만으로 불충분 | LOW | 필드 vs 랩 괴리 |
56
+
57
+ ## Lighthouse v12 점수 가중치 참고
58
+
59
+ | Metric | Weight |
60
+ |--------|:------:|
61
+ | Total Blocking Time (TBT) | 30% |
62
+ | Largest Contentful Paint (LCP) | 25% |
63
+ | Cumulative Layout Shift (CLS) | 25% |
64
+ | First Contentful Paint (FCP) | 10% |
65
+ | Speed Index (SI) | 10% |
66
+
67
+ Target: 90+ (green).
@@ -0,0 +1,46 @@
1
+ ---
2
+ title: SEO Checklist
3
+ area: "03"
4
+ tags: seo, e-e-a-t, structured-data, ai-overview
5
+ standards: Google Search Guidelines 2025-2026, Schema.org
6
+ ---
7
+
8
+ # 03. SEO Checklist
9
+
10
+ ## A. Technical SEO
11
+
12
+ | # | 항목 | Severity | 근거 |
13
+ |---|------|:--------:|------|
14
+ | A-1 | Core Web Vitals 통과 (LCP/INP/CLS) — 랭킹 시그널 | CRITICAL | Google 2025-26 |
15
+ | A-2 | Mobile-first 준수 — 터치 타겟 >= 48×48px, 본문 >= 16px, 수평 스크롤 없음 | CRITICAL | Google 모바일 인덱싱 |
16
+ | A-3 | HTTPS 전면 적용 | CRITICAL | 랭킹 시그널 |
17
+ | A-4 | 크롤 가능성 — robots.txt, sitemap.xml, 95%+ 인덱스율 목표 | HIGH | 기술적 SEO |
18
+ | A-5 | Canonical URL 설정 — 중복 콘텐츠 방지 | HIGH | 기술적 SEO |
19
+ | A-6 | JavaScript 렌더링 비용 관리 — SSR/SSG 우선, CSR은 SEO 위험 | HIGH | Google 렌더링 |
20
+
21
+ ## B. Structured Data
22
+
23
+ | # | 항목 | Severity | 근거 |
24
+ |---|------|:--------:|------|
25
+ | B-1 | JSON-LD 구조화 데이터 구현 (Article, Product, FAQ, HowTo 등) | CRITICAL | AI Overview 선정률 73% 향상 |
26
+ | B-2 | Schema.org 마크업 유효성 검증 (Google Rich Results Test) | HIGH | 구조화 데이터 |
27
+ | B-3 | 멀티모달 콘텐츠: 텍스트 + 이미지 + 비디오 + 스키마 조합 | HIGH | AI Overview 선정률 317% 향상 |
28
+
29
+ ## C. Content & E-E-A-T
30
+
31
+ | # | 항목 | Severity | 근거 |
32
+ |---|------|:--------:|------|
33
+ | C-1 | E-E-A-T 시그널 — 경험·전문성·권위·신뢰도 명확히 표현 | CRITICAL | Google 2025-26 핵심 |
34
+ | C-2 | 콘텐츠 최신성 — 3개월 이내 업데이트 시 AI 인용 6건 vs 구 콘텐츠 3.6건 | HIGH | AI Overview 인용 |
35
+ | C-3 | 헤딩 간 120-180 단어 구조화 — ChatGPT 인용 70% 향상 | HIGH | AI 인용 최적화 |
36
+ | C-4 | 실시간 팩트 검증 지원 — 최신 통계, 권위 있는 출처 인용 | HIGH | AI Overview 선정 89% 향상 |
37
+ | C-5 | 직접 경험 시그널 포함 (Helpful Content System) | HIGH | E-E-A-T |
38
+
39
+ ## D. Meta & Accessibility
40
+
41
+ | # | 항목 | Severity | 근거 |
42
+ |---|------|:--------:|------|
43
+ | D-1 | 고유한 title, meta description — 페이지별 | MEDIUM | 기본 SEO |
44
+ | D-2 | 의미 있는 링크 텍스트 — "여기 클릭" 금지 | MEDIUM | SEO + A11y |
45
+ | D-3 | 접근성 명세 게시 (EAA 요구사항, 신뢰 시그널) | MEDIUM | EAA 2025 |
46
+ | D-4 | "People Also Ask" 테마 최적화 | LOW | SERP 노출 |
@@ -0,0 +1,66 @@
1
+ ---
2
+ title: Accessibility Checklist
3
+ area: "04"
4
+ tags: accessibility, wcag, eaa, aria
5
+ standards: WCAG 2.2 AA, EAA 2025, WAI-ARIA APG
6
+ ---
7
+
8
+ # 04. Accessibility Checklist
9
+
10
+ ## A. Perceivable (인식 가능)
11
+
12
+ | # | 항목 | Severity | 근거 |
13
+ |---|------|:--------:|------|
14
+ | A-1 | 모든 이미지에 의미 있는 alt 텍스트 (장식용은 alt="") | CRITICAL | WCAG 1.1.1 |
15
+ | A-2 | 색상 대비: 일반 텍스트 >= 4.5:1, 대형 텍스트 >= 3:1 | CRITICAL | WCAG 1.4.3 |
16
+ | A-3 | 정보를 색상만으로 전달하지 않음 (패턴, 레이블 병행) | HIGH | WCAG 1.4.1 |
17
+ | A-4 | 미디어 대안 제공 — 자막, 오디오 설명 | MEDIUM | WCAG 1.2 |
18
+ | A-5 | `prefers-reduced-motion` 미디어 쿼리로 애니메이션 제어 | MEDIUM | WCAG 2.3.3 |
19
+
20
+ ## B. Operable (조작 가능)
21
+
22
+ | # | 항목 | Severity | 근거 |
23
+ |---|------|:--------:|------|
24
+ | B-1 | 전체 키보드 탐색 — 모든 인터랙티브 요소 접근·조작 가능 | CRITICAL | WCAG 2.1.1 |
25
+ | B-2 | 포커스 표시기 — 모든 포커스 가능 요소에 시각적 표시 | CRITICAL | WCAG 2.4.7 |
26
+ | B-3 | Focus Not Obscured — 포커스 요소가 sticky 헤더·모달에 가려지지 않음 | CRITICAL | WCAG 2.4.11 (2.2 신규) |
27
+ | B-4 | Target Size >= 24×24 CSS px (Google 권장 48×48px) | HIGH | WCAG 2.5.8 (2.2 신규) |
28
+ | B-5 | 드래그 대안 — 모든 drag-and-drop에 클릭 기반 대안 제공 | HIGH | WCAG 2.5.7 (2.2 신규) |
29
+ | B-6 | Skip navigation 링크 | MEDIUM | WCAG 2.4.1 |
30
+ | B-7 | 적절한 헤딩 계층 (h1-h6), 페이지당 h1 하나 | HIGH | WCAG 1.3.1 |
31
+
32
+ ## C. Understandable (이해 가능)
33
+
34
+ | # | 항목 | Severity | 근거 |
35
+ |---|------|:--------:|------|
36
+ | C-1 | Accessible Authentication — 비밀번호 붙여넣기 허용, 인지 기능 테스트 대안 | CRITICAL | WCAG 3.3.8 (2.2 신규) |
37
+ | C-2 | Consistent Help — 도움말 위치 페이지 간 일관 | HIGH | WCAG 3.2.6 (2.2 신규) |
38
+ | C-3 | Redundant Entry — 이전 입력 정보 재입력 요구 금지 | HIGH | WCAG 3.3.7 (2.2 신규) |
39
+ | C-4 | 폼 입력에 연결된 `<label>` — 오류 메시지 프로그래밍적 연결 | HIGH | WCAG 3.3.2 |
40
+ | C-5 | `lang` 속성 — `<html>`에 설정, 언어 변경 부분에 `lang` 마킹 | MEDIUM | WCAG 3.1.1 |
41
+ | C-6 | 오류 메시지: 평문, 해결책 포함 | MEDIUM | WCAG 3.3.3 |
42
+
43
+ ## D. Robust (견고)
44
+
45
+ | # | 항목 | Severity | 근거 |
46
+ |---|------|:--------:|------|
47
+ | D-1 | ARIA "철칙": 네이티브 HTML 우선 (`<button>`, `<a>`, `<input>`), ARIA는 HTML 불가 시만 | HIGH | WAI-ARIA APG |
48
+ | D-2 | ARIA roles/states/properties — APG 패턴 준수, 잘못된 ARIA > 없는 ARIA | HIGH | WAI-ARIA 1.2 |
49
+ | D-3 | Live region (`aria-live`) — 동적 콘텐츠 업데이트 (토스트, 알림, 로딩) | MEDIUM | WAI-ARIA |
50
+ | D-4 | 의미 있는 링크 텍스트 — "더 보기" 단독 금지 | MEDIUM | WCAG 2.4.4 |
51
+
52
+ ## E. Testing
53
+
54
+ | # | 항목 | Severity | 근거 |
55
+ |---|------|:--------:|------|
56
+ | E-1 | axe-core 자동 검사 통과 (WCAG 이슈 ~57% 탐지) | HIGH | 자동화 기준선 |
57
+ | E-2 | 스크린 리더 테스트 (NVDA+Firefox 또는 VoiceOver+Safari) | MEDIUM | 수동 검증 필수 |
58
+ | E-3 | CI에 axe-core 통합 | LOW | 회귀 방지 |
59
+
60
+ ## 법적 참고
61
+
62
+ | 규정 | 기준 | 발효 |
63
+ |------|------|------|
64
+ | EAA (European Accessibility Act) | WCAG 2.1 AA + EN 301 549 | 2025.06.28 |
65
+ | ADA (US) | WCAG 2.2 AA (사실상 표준) | 지속 |
66
+ | Section 508 | WCAG 2.2 AA | 업데이트됨 |
@@ -0,0 +1,50 @@
1
+ ---
2
+ title: UI/UX Checklist
3
+ area: "05"
4
+ tags: ui, ux, heuristics, responsive, design-system
5
+ standards: Nielsen 10 Heuristics, Responsive Design Best Practices
6
+ ---
7
+
8
+ # 05. UI/UX Checklist
9
+
10
+ ## A. Nielsen 10 Usability Heuristics
11
+
12
+ | # | 항목 | 점검 질문 | Severity |
13
+ |---|------|-----------|:--------:|
14
+ | A-1 | 시스템 상태 가시성 | 로딩·진행·확인 상태가 표시되는가? | HIGH |
15
+ | A-2 | 현실 세계 부합 | 내부 용어 대신 사용자 언어를 사용하는가? | HIGH |
16
+ | A-3 | 사용자 통제와 자유 | 실행취소·뒤로가기·취소가 명확한가? | HIGH |
17
+ | A-4 | 일관성과 표준 | 버튼·레이블·패턴이 전체적으로 일관된가? | HIGH |
18
+ | A-5 | 오류 예방 | 입력 검증, 비활성화, 파괴적 작업 확인이 있는가? | HIGH |
19
+ | A-6 | 인식 > 회상 | 필요한 정보가 보이는가, 기억을 요구하지 않는가? | MEDIUM |
20
+ | A-7 | 유연성과 효율 | 키보드 단축키, 파워 유저 기능이 있는가? | MEDIUM |
21
+ | A-8 | 미적·미니멀 디자인 | 불필요한 요소 없이 목적에 집중하는가? | MEDIUM |
22
+ | A-9 | 오류 인식·진단·복구 | 오류 메시지가 평문이고 해결책을 제시하는가? | HIGH |
23
+ | A-10 | 도움과 문서 | 검색 가능하고, 작업 지향적이며, 간결한가? | LOW |
24
+
25
+ 평가: 3-5명 평가자 권장 (1인은 ~35% 이슈만 발견).
26
+ Severity: 1(외형) ~ 4(재앙) 스케일.
27
+
28
+ ## B. Responsive Design
29
+
30
+ | # | 항목 | Severity | 근거 |
31
+ |---|------|:--------:|------|
32
+ | B-1 | Mobile-first 접근 — 모바일 트래픽 > 70% | CRITICAL | 웹 트래픽 통계 |
33
+ | B-2 | 터치 타겟 >= 44×44px, 적절한 간격, hover-only 인터랙션 없음 | CRITICAL | 모바일 UX |
34
+ | B-3 | 본문 텍스트 >= 16px — 줌 없이 읽기 가능 | CRITICAL | 가독성 |
35
+ | B-4 | 수평 스크롤 없음 — 모든 뷰포트에서 콘텐츠가 화면 안에 | HIGH | 레이아웃 |
36
+ | B-5 | 콘텐츠 기반 breakpoint — 임의 픽셀 값이 아닌 콘텐츠 기준 | HIGH | 반응형 설계 |
37
+ | B-6 | 유동 타이포그래피 — `clamp()` 활용 | MEDIUM | 가독성 |
38
+ | B-7 | 실제 기기 테스트 (iOS + Android) + DevTools 에뮬레이션 | HIGH | 디바이스 호환 |
39
+ | B-8 | 느린 네트워크 테스트 (3G 스로틀링) | MEDIUM | 저사양 환경 |
40
+
41
+ ## C. Design System
42
+
43
+ | # | 항목 | Severity | 근거 |
44
+ |---|------|:--------:|------|
45
+ | C-1 | 컴포넌트가 디자인 토큰 준수 (색상, 간격, 타이포, 그림자) | HIGH | 일관성 |
46
+ | C-2 | 하드코딩된 색상/간격 없음 — 모두 토큰 참조 | HIGH | 유지보수 |
47
+ | C-3 | 일관된 타이포 스케일 적용 | HIGH | 시각적 위계 |
48
+ | C-4 | 일관된 간격 시스템 (4px/8px 기반 그리드) | MEDIUM | 레이아웃 |
49
+ | C-5 | 인터랙티브 상태 정의 — default, hover, focus, active, disabled, loading, error | MEDIUM | 상호작용 |
50
+ | C-6 | 아이콘 세트 통일 — 일관된 크기와 스타일 | MEDIUM | 시각적 통일 |
@@ -0,0 +1,53 @@
1
+ ---
2
+ title: Architecture & DB Checklist
3
+ area: "06"
4
+ tags: architecture, database, api, iso-25010
5
+ standards: ISO/IEC 25010:2023, OWASP API Security, Data Architecture Best Practices
6
+ ---
7
+
8
+ # 06. Architecture & DB Checklist
9
+
10
+ ## A. 코드 아키텍처 (ISO 25010:2023 기반)
11
+
12
+ | # | 항목 | Severity | 근거 |
13
+ |---|------|:--------:|------|
14
+ | A-1 | 관심사 분리 — 프레젠테이션·비즈니스·데이터 계층 분리 | HIGH | Maintainability |
15
+ | A-2 | 의존성 방향 — 상위 계층이 하위 계층에만 의존 (역방향 금지) | HIGH | Maintainability |
16
+ | A-3 | 순환 의존성 없음 — 모듈 간 순환 참조 금지 | HIGH | Maintainability |
17
+ | A-4 | 단일 책임 원칙 — 모듈/클래스당 하나의 변경 사유 | MEDIUM | Maintainability |
18
+ | A-5 | 인터페이스 분리 — 불필요한 의존성 강제 금지 | MEDIUM | Flexibility (신규) |
19
+ | A-6 | 설정 외부화 — 하드코딩된 설정값, 시크릿 금지 | HIGH | Security + Flexibility |
20
+ | A-7 | 에러 경계 — 장애 전파 차단, graceful degradation | HIGH | Reliability |
21
+
22
+ ## B. API 설계
23
+
24
+ | # | 항목 | Severity | 근거 |
25
+ |---|------|:--------:|------|
26
+ | B-1 | API 버전 관리 — 명시적 버전, 이전 버전 폐기 계획 | HIGH | API9:2023 |
27
+ | B-2 | Rate limiting — 모든 API 엔드포인트에 리소스 소비 제어 | HIGH | API4:2023 |
28
+ | B-3 | 입력 검증 — content-type, 크기, 스키마 검증 | HIGH | API8:2023 |
29
+ | B-4 | 응답 최소화 — 필요한 필드만 반환 (과도한 데이터 노출 방지) | MEDIUM | API3:2023 |
30
+ | B-5 | API 인벤토리 — 모든 API, 서비스, 버전 목록 유지 | MEDIUM | API9:2023 |
31
+ | B-6 | SSRF 방지 — 서버 측 아웃바운드 URL allowlist | HIGH | API7:2023, CWE-918 |
32
+
33
+ ## C. 데이터베이스
34
+
35
+ | # | 항목 | Severity | 근거 |
36
+ |---|------|:--------:|------|
37
+ | C-1 | 정규화 기준 충족 (3NF 기본, 비정규화 시 ADR 문서) | HIGH | 데이터 무결성 |
38
+ | C-2 | 인덱스 전략 — 쿼리 패턴 기반, 불필요 인덱스 없음 | HIGH | Performance |
39
+ | C-3 | N+1 쿼리 방지 — Eager loading 또는 JOIN 사용 | HIGH | Performance |
40
+ | C-4 | 마이그레이션 롤백 스크립트 존재 | HIGH | Reliability |
41
+ | C-5 | 민감 데이터 암호화 — at rest (AES-256), in transit (TLS) | CRITICAL | Security |
42
+ | C-6 | Least-privilege 접근 — 역할 기반 DB 권한 | HIGH | Security |
43
+ | C-7 | 감사 로깅 — 변조 방지 저장소 | MEDIUM | Compliance |
44
+ | C-8 | 커넥션 풀 관리 — 누수 없음, 적절한 pool size | MEDIUM | Reliability |
45
+
46
+ ## D. 인프라 & 확장성
47
+
48
+ | # | 항목 | Severity | 근거 |
49
+ |---|------|:--------:|------|
50
+ | D-1 | 환경 분리 — dev/staging/production 격리 | HIGH | Safety (ISO 25010 신규) |
51
+ | D-2 | 헬스체크 엔드포인트 존재 | MEDIUM | Reliability |
52
+ | D-3 | 수평 확장 가능 설계 — stateless 서비스, 세션 외부화 | MEDIUM | Scalability |
53
+ | D-4 | 장애 복구 계획 — 백업, 복구 절차 문서화 | MEDIUM | Reliability |
@@ -0,0 +1,55 @@
1
+ ---
2
+ title: Functional & Requirements Checklist
3
+ area: "07"
4
+ tags: functional, requirements, rtm, coverage
5
+ standards: ISO 29119, Requirements Traceability Matrix
6
+ ---
7
+
8
+ # 07. Functional & Requirements Checklist
9
+
10
+ ## A. Requirements Traceability
11
+
12
+ | # | 항목 | Severity | 근거 |
13
+ |---|------|:--------:|------|
14
+ | A-1 | 양방향 추적성 — 요구사항 → 테스트 → 결함, 역방향도 가능 | HIGH | RTM 핵심 |
15
+ | A-2 | 모든 요구사항에 대응하는 테스트 케이스 존재 | HIGH | 요구사항 커버리지 |
16
+ | A-3 | 모든 기능에 대한 인수 조건 명시 | HIGH | 검증 가능성 |
17
+ | A-4 | RTM 최신 상태 유지 — 스프린트마다 갱신 | MEDIUM | Living document |
18
+ | A-5 | 미구현 요구사항 식별 및 사유 기록 | MEDIUM | 추적성 |
19
+
20
+ ## B. Functional Testing
21
+
22
+ | # | 항목 | Severity | 근거 |
23
+ |---|------|:--------:|------|
24
+ | B-1 | Happy path 테스트 — 모든 핵심 기능의 정상 흐름 | CRITICAL | 기본 품질 |
25
+ | B-2 | Edge case 테스트 — 경계 조건 (빈 값, 0, null, 최대값) | HIGH | 견고성 |
26
+ | B-3 | Error case 테스트 — 오류 상황, 네트워크 장애, 잘못된 입력 | HIGH | 안정성 |
27
+ | B-4 | 기능당 5-7개 핵심 테스트 + 3-5개 엣지 케이스 | MEDIUM | 적정 커버리지 |
28
+ | B-5 | 자동화 + 탐색적 테스트 병행 | MEDIUM | ISO 29119 |
29
+
30
+ ## C. Test Coverage
31
+
32
+ | # | 항목 | Severity | 근거 |
33
+ |---|------|:--------:|------|
34
+ | C-1 | 라인 커버리지 >= 80% | HIGH | 커버리지 기준 |
35
+ | C-2 | 브랜치 커버리지 >= 70% | HIGH | 커버리지 기준 |
36
+ | C-3 | 함수 커버리지 >= 80% | MEDIUM | 커버리지 기준 |
37
+ | C-4 | 커버리지 리포트 CI 통합 — 회귀 감지 | MEDIUM | 자동화 |
38
+ | C-5 | 커버리지 하락 시 PR 차단 또는 경고 | MEDIUM | 품질 게이트 |
39
+
40
+ ## D. Integration & E2E
41
+
42
+ | # | 항목 | Severity | 근거 |
43
+ |---|------|:--------:|------|
44
+ | D-1 | 핵심 사용자 여정(Critical User Journey) E2E 테스트 | HIGH | 통합 품질 |
45
+ | D-2 | API 통합 테스트 — 외부 서비스 연동 검증 | HIGH | 호환성 |
46
+ | D-3 | E2E 안정성 — flaky test 비율 < 5% | MEDIUM | 테스트 신뢰도 |
47
+ | D-4 | 테스트 데이터 관리 — 독립적, 재현 가능한 테스트 환경 | MEDIUM | 테스트 품질 |
48
+
49
+ ## E. Regression
50
+
51
+ | # | 항목 | Severity | 근거 |
52
+ |---|------|:--------:|------|
53
+ | E-1 | 변경 영향 분석 — 코드 변경과 테스트 케이스 매핑 | HIGH | 회귀 방지 |
54
+ | E-2 | 회귀 테스트 스위트 CI 통합 | HIGH | 자동화 |
55
+ | E-3 | 이전 감사 finding에 대한 회귀 테스트 존재 | MEDIUM | 재발 방지 |