nitm-ai-dev-toolkit 3.0.15

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 (754) hide show
  1. package/CHANGELOG.md +109 -0
  2. package/LICENSE +21 -0
  3. package/README.md +881 -0
  4. package/bin/cli.js +398 -0
  5. package/package.json +41 -0
  6. package/src/monorepo/.agents/rules/ponytail.md +3 -0
  7. package/src/monorepo/.agents/skills/acli/SKILL.md +424 -0
  8. package/src/monorepo/.agents/skills/bkt-cli/SKILL.md +374 -0
  9. package/src/monorepo/.agents/skills/brainstorming/SKILL.md +54 -0
  10. package/src/monorepo/.agents/skills/code-simplifier/SKILL.md +109 -0
  11. package/src/monorepo/.agents/skills/debugger/SKILL.md +123 -0
  12. package/src/monorepo/.agents/skills/dispatching-parallel-agents/SKILL.md +206 -0
  13. package/src/monorepo/.agents/skills/executing-plans/SKILL.md +76 -0
  14. package/src/monorepo/.agents/skills/finishing-a-development-branch/SKILL.md +200 -0
  15. package/src/monorepo/.agents/skills/gh-cli/SKILL.md +461 -0
  16. package/src/monorepo/.agents/skills/glab-cli/SKILL.md +468 -0
  17. package/src/monorepo/.agents/skills/issue-tracker/SKILL.md +119 -0
  18. package/src/monorepo/.agents/skills/linear-cli/SKILL.md +276 -0
  19. package/src/monorepo/.agents/skills/logging/SKILL.md +393 -0
  20. package/src/monorepo/.agents/skills/orient-to-recent-work/SKILL.md +43 -0
  21. package/src/monorepo/.agents/skills/ponytail/SKILL.md +101 -0
  22. package/src/monorepo/.agents/skills/ponytail-audit/SKILL.md +41 -0
  23. package/src/monorepo/.agents/skills/ponytail-debt/SKILL.md +44 -0
  24. package/src/monorepo/.agents/skills/ponytail-gain/SKILL.md +51 -0
  25. package/src/monorepo/.agents/skills/ponytail-help/SKILL.md +74 -0
  26. package/src/monorepo/.agents/skills/ponytail-review/SKILL.md +57 -0
  27. package/src/monorepo/.agents/skills/project-documentation/SKILL.md +425 -0
  28. package/src/monorepo/.agents/skills/receiving-code-review/SKILL.md +213 -0
  29. package/src/monorepo/.agents/skills/requesting-code-review/SKILL.md +105 -0
  30. package/src/monorepo/.agents/skills/requesting-code-review/code-reviewer.md +146 -0
  31. package/src/monorepo/.agents/skills/security-reviewer/SKILL.md +144 -0
  32. package/src/monorepo/.agents/skills/subagent-driven-development/SKILL.md +279 -0
  33. package/src/monorepo/.agents/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  34. package/src/monorepo/.agents/skills/subagent-driven-development/implementer-prompt.md +78 -0
  35. package/src/monorepo/.agents/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  36. package/src/monorepo/.agents/skills/systematic-debugging/CREATION-LOG.md +119 -0
  37. package/src/monorepo/.agents/skills/systematic-debugging/SKILL.md +296 -0
  38. package/src/monorepo/.agents/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  39. package/src/monorepo/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
  40. package/src/monorepo/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
  41. package/src/monorepo/.agents/skills/systematic-debugging/find-polluter.sh +63 -0
  42. package/src/monorepo/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
  43. package/src/monorepo/.agents/skills/systematic-debugging/test-academic.md +14 -0
  44. package/src/monorepo/.agents/skills/systematic-debugging/test-pressure-1.md +58 -0
  45. package/src/monorepo/.agents/skills/systematic-debugging/test-pressure-2.md +68 -0
  46. package/src/monorepo/.agents/skills/systematic-debugging/test-pressure-3.md +69 -0
  47. package/src/monorepo/.agents/skills/test-driven-development/SKILL.md +371 -0
  48. package/src/monorepo/.agents/skills/test-driven-development/testing-anti-patterns.md +299 -0
  49. package/src/monorepo/.agents/skills/using-git-worktrees/SKILL.md +291 -0
  50. package/src/monorepo/.agents/skills/using-superpowers/SKILL.md +87 -0
  51. package/src/monorepo/.agents/skills/verification-before-completion/SKILL.md +148 -0
  52. package/src/monorepo/.agents/skills/writing-plans/SKILL.md +116 -0
  53. package/src/monorepo/.agents/skills/writing-skills/SKILL.md +655 -0
  54. package/src/monorepo/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
  55. package/src/monorepo/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  56. package/src/monorepo/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
  57. package/src/monorepo/.agents/skills/writing-skills/persuasion-principles.md +187 -0
  58. package/src/monorepo/.agents/skills/writing-skills/render-graphs.js +168 -0
  59. package/src/monorepo/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
  60. package/src/monorepo/.claude/agents/admin-portal.agent.md +11 -0
  61. package/src/monorepo/.claude/agents/api-specialist.agent.md +11 -0
  62. package/src/monorepo/.claude/agents/backend-architect.agent.md +11 -0
  63. package/src/monorepo/.claude/agents/documenter.agent.md +11 -0
  64. package/src/monorepo/.claude/agents/feature-builder.agent.md +23 -0
  65. package/src/monorepo/.claude/agents/frontend-developer.agent.md +11 -0
  66. package/src/monorepo/.claude/agents/green.agent.md +12 -0
  67. package/src/monorepo/.claude/agents/implementer.agent.md +12 -0
  68. package/src/monorepo/.claude/agents/planner.agent.md +12 -0
  69. package/src/monorepo/.claude/agents/red.agent.md +12 -0
  70. package/src/monorepo/.claude/agents/refactor.agent.md +12 -0
  71. package/src/monorepo/.claude/agents/researcher.agent.md +12 -0
  72. package/src/monorepo/.claude/agents/reviewer.agent.md +11 -0
  73. package/src/monorepo/.claude/agents/tdd.agent.md +12 -0
  74. package/src/monorepo/.claude/agents-snippets/admin-portal.md +90 -0
  75. package/src/monorepo/.claude/agents-snippets/api-specialist.md +57 -0
  76. package/src/monorepo/.claude/agents-snippets/backend-architect.md +49 -0
  77. package/src/monorepo/.claude/agents-snippets/documenter.md +58 -0
  78. package/src/monorepo/.claude/agents-snippets/feature-builder.md +49 -0
  79. package/src/monorepo/.claude/agents-snippets/frontend-developer.md +49 -0
  80. package/src/monorepo/.claude/agents-snippets/green.md +18 -0
  81. package/src/monorepo/.claude/agents-snippets/implementer.md +31 -0
  82. package/src/monorepo/.claude/agents-snippets/planner.md +40 -0
  83. package/src/monorepo/.claude/agents-snippets/red.md +14 -0
  84. package/src/monorepo/.claude/agents-snippets/refactor.md +22 -0
  85. package/src/monorepo/.claude/agents-snippets/researcher.md +43 -0
  86. package/src/monorepo/.claude/agents-snippets/reviewer.md +83 -0
  87. package/src/monorepo/.claude/agents-snippets/tdd.md +18 -0
  88. package/src/monorepo/.claude/commands/assign-tasks.md +13 -0
  89. package/src/monorepo/.claude/commands/bootstrap-patch.md +15 -0
  90. package/src/monorepo/.claude/commands/bootstrap-upgrade.md +15 -0
  91. package/src/monorepo/.claude/commands/bootstrap.md +15 -0
  92. package/src/monorepo/.claude/commands/commit-push.md +13 -0
  93. package/src/monorepo/.claude/commands/constitution.md +15 -0
  94. package/src/monorepo/.claude/commands/create-skill.md +15 -0
  95. package/src/monorepo/.claude/commands/implement-feature.md +15 -0
  96. package/src/monorepo/.claude/commands/implement-fixes.md +15 -0
  97. package/src/monorepo/.claude/commands/implement.md +15 -0
  98. package/src/monorepo/.claude/commands/plan.md +15 -0
  99. package/src/monorepo/.claude/commands/playwright-test.md +13 -0
  100. package/src/monorepo/.claude/commands/ponytail-audit.md +15 -0
  101. package/src/monorepo/.claude/commands/ponytail-debt.md +15 -0
  102. package/src/monorepo/.claude/commands/ponytail-gain.md +15 -0
  103. package/src/monorepo/.claude/commands/ponytail-help.md +15 -0
  104. package/src/monorepo/.claude/commands/ponytail-review.md +15 -0
  105. package/src/monorepo/.claude/commands/ponytail.md +15 -0
  106. package/src/monorepo/.claude/commands/release-notes.md +13 -0
  107. package/src/monorepo/.claude/commands/review-pr.md +15 -0
  108. package/src/monorepo/.claude/commands/review-staged.md +15 -0
  109. package/src/monorepo/.claude/commands/review.md +15 -0
  110. package/src/monorepo/.claude/commands/specify.md +15 -0
  111. package/src/monorepo/.claude/commands/tasks.md +13 -0
  112. package/src/monorepo/.claude/prompt-snippets/assign-tasks.md +169 -0
  113. package/src/monorepo/.claude/prompt-snippets/bootstrap-patch.md +199 -0
  114. package/src/monorepo/.claude/prompt-snippets/bootstrap-upgrade.md +452 -0
  115. package/src/monorepo/.claude/prompt-snippets/bootstrap.md +764 -0
  116. package/src/monorepo/.claude/prompt-snippets/commit-push.md +69 -0
  117. package/src/monorepo/.claude/prompt-snippets/constitution.md +57 -0
  118. package/src/monorepo/.claude/prompt-snippets/create-skill.md +490 -0
  119. package/src/monorepo/.claude/prompt-snippets/implement-feature.md +119 -0
  120. package/src/monorepo/.claude/prompt-snippets/implement-fixes.md +122 -0
  121. package/src/monorepo/.claude/prompt-snippets/implement.md +56 -0
  122. package/src/monorepo/.claude/prompt-snippets/plan.md +67 -0
  123. package/src/monorepo/.claude/prompt-snippets/playwright-test.md +55 -0
  124. package/src/monorepo/.claude/prompt-snippets/ponytail-audit.md +5 -0
  125. package/src/monorepo/.claude/prompt-snippets/ponytail-debt.md +5 -0
  126. package/src/monorepo/.claude/prompt-snippets/ponytail-gain.md +5 -0
  127. package/src/monorepo/.claude/prompt-snippets/ponytail-help.md +5 -0
  128. package/src/monorepo/.claude/prompt-snippets/ponytail-review.md +5 -0
  129. package/src/monorepo/.claude/prompt-snippets/ponytail.md +5 -0
  130. package/src/monorepo/.claude/prompt-snippets/release-notes.md +134 -0
  131. package/src/monorepo/.claude/prompt-snippets/review-pr.md +156 -0
  132. package/src/monorepo/.claude/prompt-snippets/review-staged.md +35 -0
  133. package/src/monorepo/.claude/prompt-snippets/review.md +139 -0
  134. package/src/monorepo/.claude/prompt-snippets/specify.md +51 -0
  135. package/src/monorepo/.claude/prompt-snippets/tasks.md +108 -0
  136. package/src/monorepo/.claude/rules/agent-conduct.md +14 -0
  137. package/src/monorepo/.claude/rules/api-server.md +19 -0
  138. package/src/monorepo/.claude/rules/coding-standards.md +13 -0
  139. package/src/monorepo/.claude/rules/component-structure.md +18 -0
  140. package/src/monorepo/.claude/rules/core-libraries.md +16 -0
  141. package/src/monorepo/.claude/rules/environment-tooling.md +12 -0
  142. package/src/monorepo/.claude/rules/logging-comments.md +17 -0
  143. package/src/monorepo/.claude/rules/logging.md +17 -0
  144. package/src/monorepo/.claude/rules/orient-to-recent-work.md +13 -0
  145. package/src/monorepo/.claude/rules/prisma-migrations.md +16 -0
  146. package/src/monorepo/.claude/rules/project-context.md +14 -0
  147. package/src/monorepo/.claude/rules/server-client-separation.md +17 -0
  148. package/src/monorepo/.claude/rules/subagent-workflow.md +14 -0
  149. package/src/monorepo/.claude/rules/testing-quality.md +19 -0
  150. package/src/monorepo/.claude/rules/testing.md +16 -0
  151. package/src/monorepo/.claude/rules/ui-accessibility.md +18 -0
  152. package/src/monorepo/.claude/rules/version-control.md +14 -0
  153. package/src/monorepo/.claude/rules/what-to-avoid.md +14 -0
  154. package/src/monorepo/.claude/rules-snippets/agent-conduct.md +51 -0
  155. package/src/monorepo/.claude/rules-snippets/api-server.md +5 -0
  156. package/src/monorepo/.claude/rules-snippets/coding-standards.md +45 -0
  157. package/src/monorepo/.claude/rules-snippets/component-structure.md +6 -0
  158. package/src/monorepo/.claude/rules-snippets/core-libraries.md +6 -0
  159. package/src/monorepo/.claude/rules-snippets/deployment.md +41 -0
  160. package/src/monorepo/.claude/rules-snippets/documentation.md +210 -0
  161. package/src/monorepo/.claude/rules-snippets/environment-tooling.md +4 -0
  162. package/src/monorepo/.claude/rules-snippets/logging-comments.md +4 -0
  163. package/src/monorepo/.claude/rules-snippets/logging.md +107 -0
  164. package/src/monorepo/.claude/rules-snippets/patterns.md +134 -0
  165. package/src/monorepo/.claude/rules-snippets/ponytail.md +24 -0
  166. package/src/monorepo/.claude/rules-snippets/prisma-migrations.md +6 -0
  167. package/src/monorepo/.claude/rules-snippets/project-context.md +8 -0
  168. package/src/monorepo/.claude/rules-snippets/server-client-separation.md +5 -0
  169. package/src/monorepo/.claude/rules-snippets/subagent-workflow.md +134 -0
  170. package/src/monorepo/.claude/rules-snippets/testing-quality.md +5 -0
  171. package/src/monorepo/.claude/rules-snippets/testing.md +42 -0
  172. package/src/monorepo/.claude/rules-snippets/ui-accessibility.md +5 -0
  173. package/src/monorepo/.claude/rules-snippets/version-control.md +4 -0
  174. package/src/monorepo/.claude/rules-snippets/what-to-avoid.md +6 -0
  175. package/src/monorepo/.claude/rules-snippets/workflows.md +81 -0
  176. package/src/monorepo/.claude/settings.json +7 -0
  177. package/src/monorepo/.claude/skills/README.md +50 -0
  178. package/src/monorepo/.cursor/agents/admin-portal.agent.md +11 -0
  179. package/src/monorepo/.cursor/agents/api-specialist.agent.md +11 -0
  180. package/src/monorepo/.cursor/agents/backend-architect.agent.md +11 -0
  181. package/src/monorepo/.cursor/agents/documenter.agent.md +11 -0
  182. package/src/monorepo/.cursor/agents/feature-builder.agent.md +11 -0
  183. package/src/monorepo/.cursor/agents/frontend-developer.agent.md +11 -0
  184. package/src/monorepo/.cursor/agents/green.agent.md +11 -0
  185. package/src/monorepo/.cursor/agents/implementer.agent.md +11 -0
  186. package/src/monorepo/.cursor/agents/planner.agent.md +11 -0
  187. package/src/monorepo/.cursor/agents/red.agent.md +11 -0
  188. package/src/monorepo/.cursor/agents/refactor.agent.md +11 -0
  189. package/src/monorepo/.cursor/agents/researcher.agent.md +11 -0
  190. package/src/monorepo/.cursor/agents/reviewer.agent.md +11 -0
  191. package/src/monorepo/.cursor/agents/tdd.agent.md +11 -0
  192. package/src/monorepo/.cursor/commands/assign-tasks.md +13 -0
  193. package/src/monorepo/.cursor/commands/bootstrap-patch.md +17 -0
  194. package/src/monorepo/.cursor/commands/bootstrap-upgrade.md +15 -0
  195. package/src/monorepo/.cursor/commands/bootstrap.md +17 -0
  196. package/src/monorepo/.cursor/commands/commit-push.md +15 -0
  197. package/src/monorepo/.cursor/commands/constitution.md +17 -0
  198. package/src/monorepo/.cursor/commands/create-skill.md +17 -0
  199. package/src/monorepo/.cursor/commands/implement-feature.md +17 -0
  200. package/src/monorepo/.cursor/commands/implement-fixes.md +17 -0
  201. package/src/monorepo/.cursor/commands/implement.md +17 -0
  202. package/src/monorepo/.cursor/commands/plan.md +17 -0
  203. package/src/monorepo/.cursor/commands/playwright-test.md +15 -0
  204. package/src/monorepo/.cursor/commands/ponytail-audit.md +13 -0
  205. package/src/monorepo/.cursor/commands/ponytail-debt.md +13 -0
  206. package/src/monorepo/.cursor/commands/ponytail-gain.md +13 -0
  207. package/src/monorepo/.cursor/commands/ponytail-help.md +13 -0
  208. package/src/monorepo/.cursor/commands/ponytail-review.md +13 -0
  209. package/src/monorepo/.cursor/commands/ponytail.md +13 -0
  210. package/src/monorepo/.cursor/commands/release-notes.md +15 -0
  211. package/src/monorepo/.cursor/commands/review-pr.md +17 -0
  212. package/src/monorepo/.cursor/commands/review-staged.md +10 -0
  213. package/src/monorepo/.cursor/commands/review.md +17 -0
  214. package/src/monorepo/.cursor/commands/specify.md +17 -0
  215. package/src/monorepo/.cursor/commands/tasks.md +15 -0
  216. package/src/monorepo/.cursor/mcp.json +13 -0
  217. package/src/monorepo/.cursor/rules/agent-conduct.mdc +11 -0
  218. package/src/monorepo/.cursor/rules/api-server.mdc +11 -0
  219. package/src/monorepo/.cursor/rules/coding-standards.mdc +11 -0
  220. package/src/monorepo/.cursor/rules/component-structure.mdc +11 -0
  221. package/src/monorepo/.cursor/rules/core-libraries.mdc +11 -0
  222. package/src/monorepo/.cursor/rules/environment-tooling.mdc +11 -0
  223. package/src/monorepo/.cursor/rules/logging-comments.mdc +11 -0
  224. package/src/monorepo/.cursor/rules/logging.mdc +10 -0
  225. package/src/monorepo/.cursor/rules/orient-to-recent-work.mdc +9 -0
  226. package/src/monorepo/.cursor/rules/ponytail.mdc +9 -0
  227. package/src/monorepo/.cursor/rules/prisma-migrations.mdc +11 -0
  228. package/src/monorepo/.cursor/rules/project-context.mdc +11 -0
  229. package/src/monorepo/.cursor/rules/server-client-separation.mdc +11 -0
  230. package/src/monorepo/.cursor/rules/subagent-workflow.mdc +11 -0
  231. package/src/monorepo/.cursor/rules/testing-quality.mdc +11 -0
  232. package/src/monorepo/.cursor/rules/ui-accessibility.mdc +11 -0
  233. package/src/monorepo/.cursor/rules/version-control.mdc +11 -0
  234. package/src/monorepo/.cursor/rules/what-to-avoid.mdc +11 -0
  235. package/src/monorepo/.cursor/skills/README.md +50 -0
  236. package/src/monorepo/.github/agents/admin-portal.agent.md +11 -0
  237. package/src/monorepo/.github/agents/api-specialist.agent.md +11 -0
  238. package/src/monorepo/.github/agents/backend-architect.agent.md +11 -0
  239. package/src/monorepo/.github/agents/documenter.agent.md +11 -0
  240. package/src/monorepo/.github/agents/feature-builder.agent.md +24 -0
  241. package/src/monorepo/.github/agents/frontend-developer.agent.md +11 -0
  242. package/src/monorepo/.github/agents/green.agent.md +12 -0
  243. package/src/monorepo/.github/agents/implementer.agent.md +12 -0
  244. package/src/monorepo/.github/agents/planner.agent.md +12 -0
  245. package/src/monorepo/.github/agents/red.agent.md +12 -0
  246. package/src/monorepo/.github/agents/refactor.agent.md +12 -0
  247. package/src/monorepo/.github/agents/researcher.agent.md +12 -0
  248. package/src/monorepo/.github/agents/reviewer.agent.md +11 -0
  249. package/src/monorepo/.github/agents/tdd.agent.md +13 -0
  250. package/src/monorepo/.github/copilot-instructions.md +95 -0
  251. package/src/monorepo/.github/instructions/agent-conduct.instructions.md +14 -0
  252. package/src/monorepo/.github/instructions/api-server.instructions.md +14 -0
  253. package/src/monorepo/.github/instructions/coding-standards.instructions.md +13 -0
  254. package/src/monorepo/.github/instructions/component-structure.instructions.md +14 -0
  255. package/src/monorepo/.github/instructions/core-libraries.instructions.md +14 -0
  256. package/src/monorepo/.github/instructions/deployment.instructions.md +13 -0
  257. package/src/monorepo/.github/instructions/documentation.instructions.md +14 -0
  258. package/src/monorepo/.github/instructions/environment-tooling.instructions.md +14 -0
  259. package/src/monorepo/.github/instructions/logging-comments.instructions.md +14 -0
  260. package/src/monorepo/.github/instructions/logging.instructions.md +14 -0
  261. package/src/monorepo/.github/instructions/patterns.instructions.md +14 -0
  262. package/src/monorepo/.github/instructions/prisma-migrations.instructions.md +14 -0
  263. package/src/monorepo/.github/instructions/project-context.instructions.md +13 -0
  264. package/src/monorepo/.github/instructions/server-client-separation.instructions.md +14 -0
  265. package/src/monorepo/.github/instructions/subagent-workflow.instructions.md +14 -0
  266. package/src/monorepo/.github/instructions/testing-quality.instructions.md +15 -0
  267. package/src/monorepo/.github/instructions/testing.instructions.md +14 -0
  268. package/src/monorepo/.github/instructions/ui-accessibility.instructions.md +14 -0
  269. package/src/monorepo/.github/instructions/version-control.instructions.md +14 -0
  270. package/src/monorepo/.github/instructions/what-to-avoid.instructions.md +14 -0
  271. package/src/monorepo/.github/instructions/workflows.instructions.md +14 -0
  272. package/src/monorepo/.github/prompts/assign-tasks.prompt.md +14 -0
  273. package/src/monorepo/.github/prompts/bootstrap-patch.prompt.md +15 -0
  274. package/src/monorepo/.github/prompts/bootstrap-upgrade.prompt.md +15 -0
  275. package/src/monorepo/.github/prompts/bootstrap.prompt.md +15 -0
  276. package/src/monorepo/.github/prompts/commit-push.prompt.md +13 -0
  277. package/src/monorepo/.github/prompts/constitution.prompt.md +15 -0
  278. package/src/monorepo/.github/prompts/create-skill.prompt.md +15 -0
  279. package/src/monorepo/.github/prompts/implement-feature.prompt.md +15 -0
  280. package/src/monorepo/.github/prompts/implement-fixes.prompt.md +15 -0
  281. package/src/monorepo/.github/prompts/implement.prompt.md +15 -0
  282. package/src/monorepo/.github/prompts/plan.prompt.md +15 -0
  283. package/src/monorepo/.github/prompts/playwright-test.prompt.md +13 -0
  284. package/src/monorepo/.github/prompts/ponytail-audit.prompt.md +13 -0
  285. package/src/monorepo/.github/prompts/ponytail-debt.prompt.md +13 -0
  286. package/src/monorepo/.github/prompts/ponytail-gain.prompt.md +13 -0
  287. package/src/monorepo/.github/prompts/ponytail-help.prompt.md +13 -0
  288. package/src/monorepo/.github/prompts/ponytail-review.prompt.md +13 -0
  289. package/src/monorepo/.github/prompts/ponytail.prompt.md +13 -0
  290. package/src/monorepo/.github/prompts/release-notes.prompt.md +13 -0
  291. package/src/monorepo/.github/prompts/review-pr.prompt.md +15 -0
  292. package/src/monorepo/.github/prompts/review-staged.prompt.md +16 -0
  293. package/src/monorepo/.github/prompts/review.prompt.md +15 -0
  294. package/src/monorepo/.github/prompts/specify.prompt.md +15 -0
  295. package/src/monorepo/.github/prompts/tasks.prompt.md +13 -0
  296. package/src/monorepo/.github/skills/README.md +36 -0
  297. package/src/monorepo/.mcp.json +13 -0
  298. package/src/monorepo/.opencode/agents/admin-portal.md +14 -0
  299. package/src/monorepo/.opencode/agents/api-specialist.md +14 -0
  300. package/src/monorepo/.opencode/agents/backend-architect.md +14 -0
  301. package/src/monorepo/.opencode/agents/documenter.md +14 -0
  302. package/src/monorepo/.opencode/agents/feature-builder.md +15 -0
  303. package/src/monorepo/.opencode/agents/frontend-developer.md +14 -0
  304. package/src/monorepo/.opencode/agents/green.md +14 -0
  305. package/src/monorepo/.opencode/agents/implementer.md +14 -0
  306. package/src/monorepo/.opencode/agents/planner.md +14 -0
  307. package/src/monorepo/.opencode/agents/red.md +14 -0
  308. package/src/monorepo/.opencode/agents/refactor.md +14 -0
  309. package/src/monorepo/.opencode/agents/researcher.md +14 -0
  310. package/src/monorepo/.opencode/agents/reviewer.md +14 -0
  311. package/src/monorepo/.opencode/agents/tdd.md +15 -0
  312. package/src/monorepo/.opencode/commands/assign-tasks.md +16 -0
  313. package/src/monorepo/.opencode/commands/bootstrap-patch.md +18 -0
  314. package/src/monorepo/.opencode/commands/bootstrap-upgrade.md +18 -0
  315. package/src/monorepo/.opencode/commands/bootstrap.md +18 -0
  316. package/src/monorepo/.opencode/commands/commit-push.md +16 -0
  317. package/src/monorepo/.opencode/commands/constitution.md +18 -0
  318. package/src/monorepo/.opencode/commands/create-skill.md +16 -0
  319. package/src/monorepo/.opencode/commands/implement-feature.md +18 -0
  320. package/src/monorepo/.opencode/commands/implement-fixes.md +20 -0
  321. package/src/monorepo/.opencode/commands/implement.md +18 -0
  322. package/src/monorepo/.opencode/commands/plan.md +18 -0
  323. package/src/monorepo/.opencode/commands/playwright-test.md +16 -0
  324. package/src/monorepo/.opencode/commands/ponytail-audit.md +10 -0
  325. package/src/monorepo/.opencode/commands/ponytail-debt.md +10 -0
  326. package/src/monorepo/.opencode/commands/ponytail-gain.md +10 -0
  327. package/src/monorepo/.opencode/commands/ponytail-help.md +10 -0
  328. package/src/monorepo/.opencode/commands/ponytail-review.md +10 -0
  329. package/src/monorepo/.opencode/commands/ponytail.md +10 -0
  330. package/src/monorepo/.opencode/commands/release-notes.md +16 -0
  331. package/src/monorepo/.opencode/commands/review-pr.md +18 -0
  332. package/src/monorepo/.opencode/commands/review-staged.md +11 -0
  333. package/src/monorepo/.opencode/commands/review.md +18 -0
  334. package/src/monorepo/.opencode/commands/specify.md +18 -0
  335. package/src/monorepo/.opencode/commands/tasks.md +16 -0
  336. package/src/monorepo/.opencode/opencode.json +9 -0
  337. package/src/monorepo/.opencode/plugins/ponytail.mjs +79 -0
  338. package/src/monorepo/.opencode/rules/agent-conduct.md +12 -0
  339. package/src/monorepo/.opencode/rules/api-server.md +11 -0
  340. package/src/monorepo/.opencode/rules/coding-standards.md +11 -0
  341. package/src/monorepo/.opencode/rules/component-structure.md +11 -0
  342. package/src/monorepo/.opencode/rules/core-libraries.md +11 -0
  343. package/src/monorepo/.opencode/rules/environment-tooling.md +11 -0
  344. package/src/monorepo/.opencode/rules/logging-comments.md +11 -0
  345. package/src/monorepo/.opencode/rules/logging.md +11 -0
  346. package/src/monorepo/.opencode/rules/ponytail.md +3 -0
  347. package/src/monorepo/.opencode/rules/prisma-migrations.md +11 -0
  348. package/src/monorepo/.opencode/rules/project-context.md +11 -0
  349. package/src/monorepo/.opencode/rules/server-client-separation.md +11 -0
  350. package/src/monorepo/.opencode/rules/subagent-workflow.md +11 -0
  351. package/src/monorepo/.opencode/rules/testing-quality.md +11 -0
  352. package/src/monorepo/.opencode/rules/ui-accessibility.md +11 -0
  353. package/src/monorepo/.opencode/rules/version-control.md +11 -0
  354. package/src/monorepo/.opencode/rules/what-to-avoid.md +11 -0
  355. package/src/monorepo/.vscode/mcp.json +13 -0
  356. package/src/monorepo/AGENTS.md +367 -0
  357. package/src/monorepo/CLAUDE.md +63 -0
  358. package/src/monorepo/README.md +182 -0
  359. package/src/monorepo/apps/app-template/AGENTS.md +169 -0
  360. package/src/monorepo/apps/app-template/README.md +77 -0
  361. package/src/monorepo/docs/api/README.md +82 -0
  362. package/src/monorepo/docs/architecture/README.md +56 -0
  363. package/src/monorepo/docs/features/README.md +82 -0
  364. package/src/monorepo/docs/fixes/README.md +117 -0
  365. package/src/monorepo/hooks/claude-codex-hooks.json +31 -0
  366. package/src/monorepo/hooks/copilot-hooks.json +21 -0
  367. package/src/monorepo/hooks/ponytail-activate.js +91 -0
  368. package/src/monorepo/hooks/ponytail-config.js +122 -0
  369. package/src/monorepo/hooks/ponytail-instructions.js +92 -0
  370. package/src/monorepo/hooks/ponytail-mode-tracker.js +55 -0
  371. package/src/monorepo/hooks/ponytail-runtime.js +51 -0
  372. package/src/monorepo/hooks/ponytail-statusline.ps1 +21 -0
  373. package/src/monorepo/hooks/ponytail-statusline.sh +12 -0
  374. package/src/monorepo/packages/package-template/README.md +63 -0
  375. package/src/monorepo/templates/README.md +106 -0
  376. package/src/monorepo/templates/adr.template.md +156 -0
  377. package/src/monorepo/templates/complex-fix-plan.template.md +154 -0
  378. package/src/monorepo/templates/complex-fix-spec.template.md +160 -0
  379. package/src/monorepo/templates/feature-plan.template.md +192 -0
  380. package/src/monorepo/templates/feature-spec.template.md +148 -0
  381. package/src/monorepo/templates/monthly-fix-log.template.md +92 -0
  382. package/src/repo/.agents/rules/ponytail.md +3 -0
  383. package/src/repo/.agents/skills/acli/SKILL.md +424 -0
  384. package/src/repo/.agents/skills/bkt-cli/SKILL.md +374 -0
  385. package/src/repo/.agents/skills/brainstorming/SKILL.md +54 -0
  386. package/src/repo/.agents/skills/code-simplifier/SKILL.md +109 -0
  387. package/src/repo/.agents/skills/debugger/SKILL.md +123 -0
  388. package/src/repo/.agents/skills/dispatching-parallel-agents/SKILL.md +206 -0
  389. package/src/repo/.agents/skills/executing-plans/SKILL.md +76 -0
  390. package/src/repo/.agents/skills/finishing-a-development-branch/SKILL.md +200 -0
  391. package/src/repo/.agents/skills/gh-cli/SKILL.md +461 -0
  392. package/src/repo/.agents/skills/glab-cli/SKILL.md +468 -0
  393. package/src/repo/.agents/skills/issue-tracker/SKILL.md +119 -0
  394. package/src/repo/.agents/skills/linear-cli/SKILL.md +276 -0
  395. package/src/repo/.agents/skills/logging/SKILL.md +559 -0
  396. package/src/repo/.agents/skills/orient-to-recent-work/SKILL.md +43 -0
  397. package/src/repo/.agents/skills/ponytail/SKILL.md +101 -0
  398. package/src/repo/.agents/skills/ponytail-audit/SKILL.md +41 -0
  399. package/src/repo/.agents/skills/ponytail-debt/SKILL.md +44 -0
  400. package/src/repo/.agents/skills/ponytail-gain/SKILL.md +51 -0
  401. package/src/repo/.agents/skills/ponytail-help/SKILL.md +74 -0
  402. package/src/repo/.agents/skills/ponytail-review/SKILL.md +57 -0
  403. package/src/repo/.agents/skills/project-documentation/SKILL.md +367 -0
  404. package/src/repo/.agents/skills/receiving-code-review/SKILL.md +213 -0
  405. package/src/repo/.agents/skills/requesting-code-review/SKILL.md +105 -0
  406. package/src/repo/.agents/skills/requesting-code-review/code-reviewer.md +146 -0
  407. package/src/repo/.agents/skills/security-reviewer/SKILL.md +144 -0
  408. package/src/repo/.agents/skills/subagent-driven-development/SKILL.md +279 -0
  409. package/src/repo/.agents/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
  410. package/src/repo/.agents/skills/subagent-driven-development/implementer-prompt.md +78 -0
  411. package/src/repo/.agents/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  412. package/src/repo/.agents/skills/systematic-debugging/CREATION-LOG.md +119 -0
  413. package/src/repo/.agents/skills/systematic-debugging/SKILL.md +296 -0
  414. package/src/repo/.agents/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  415. package/src/repo/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
  416. package/src/repo/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
  417. package/src/repo/.agents/skills/systematic-debugging/find-polluter.sh +63 -0
  418. package/src/repo/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
  419. package/src/repo/.agents/skills/systematic-debugging/test-academic.md +14 -0
  420. package/src/repo/.agents/skills/systematic-debugging/test-pressure-1.md +58 -0
  421. package/src/repo/.agents/skills/systematic-debugging/test-pressure-2.md +68 -0
  422. package/src/repo/.agents/skills/systematic-debugging/test-pressure-3.md +69 -0
  423. package/src/repo/.agents/skills/test-driven-development/SKILL.md +371 -0
  424. package/src/repo/.agents/skills/test-driven-development/testing-anti-patterns.md +299 -0
  425. package/src/repo/.agents/skills/using-git-worktrees/SKILL.md +291 -0
  426. package/src/repo/.agents/skills/using-superpowers/SKILL.md +87 -0
  427. package/src/repo/.agents/skills/verification-before-completion/SKILL.md +148 -0
  428. package/src/repo/.agents/skills/writing-plans/SKILL.md +116 -0
  429. package/src/repo/.agents/skills/writing-skills/SKILL.md +655 -0
  430. package/src/repo/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
  431. package/src/repo/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  432. package/src/repo/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
  433. package/src/repo/.agents/skills/writing-skills/persuasion-principles.md +187 -0
  434. package/src/repo/.agents/skills/writing-skills/render-graphs.js +168 -0
  435. package/src/repo/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
  436. package/src/repo/.claude/agents/admin-portal.agent.md +12 -0
  437. package/src/repo/.claude/agents/api-specialist.agent.md +12 -0
  438. package/src/repo/.claude/agents/backend-architect.agent.md +12 -0
  439. package/src/repo/.claude/agents/documenter.agent.md +12 -0
  440. package/src/repo/.claude/agents/feature-builder.agent.md +12 -0
  441. package/src/repo/.claude/agents/frontend-developer.agent.md +12 -0
  442. package/src/repo/.claude/agents/green.agent.md +12 -0
  443. package/src/repo/.claude/agents/implementer.agent.md +12 -0
  444. package/src/repo/.claude/agents/planner.agent.md +12 -0
  445. package/src/repo/.claude/agents/red.agent.md +12 -0
  446. package/src/repo/.claude/agents/refactor.agent.md +12 -0
  447. package/src/repo/.claude/agents/researcher.agent.md +12 -0
  448. package/src/repo/.claude/agents/reviewer.agent.md +12 -0
  449. package/src/repo/.claude/agents/tdd.agent.md +12 -0
  450. package/src/repo/.claude/agents-snippets/admin-portal.md +90 -0
  451. package/src/repo/.claude/agents-snippets/api-specialist.md +57 -0
  452. package/src/repo/.claude/agents-snippets/backend-architect.md +49 -0
  453. package/src/repo/.claude/agents-snippets/documenter.md +58 -0
  454. package/src/repo/.claude/agents-snippets/feature-builder.md +49 -0
  455. package/src/repo/.claude/agents-snippets/frontend-developer.md +49 -0
  456. package/src/repo/.claude/agents-snippets/green.md +18 -0
  457. package/src/repo/.claude/agents-snippets/implementer.md +31 -0
  458. package/src/repo/.claude/agents-snippets/planner.md +40 -0
  459. package/src/repo/.claude/agents-snippets/red.md +14 -0
  460. package/src/repo/.claude/agents-snippets/refactor.md +22 -0
  461. package/src/repo/.claude/agents-snippets/researcher.md +43 -0
  462. package/src/repo/.claude/agents-snippets/reviewer.md +83 -0
  463. package/src/repo/.claude/agents-snippets/tdd.md +18 -0
  464. package/src/repo/.claude/commands/assign-tasks.md +13 -0
  465. package/src/repo/.claude/commands/bootstrap-patch.md +15 -0
  466. package/src/repo/.claude/commands/bootstrap-upgrade.md +15 -0
  467. package/src/repo/.claude/commands/bootstrap.md +15 -0
  468. package/src/repo/.claude/commands/commit-push.md +13 -0
  469. package/src/repo/.claude/commands/constitution.md +15 -0
  470. package/src/repo/.claude/commands/create-skill.md +13 -0
  471. package/src/repo/.claude/commands/implement-feature.md +15 -0
  472. package/src/repo/.claude/commands/implement-fixes.md +15 -0
  473. package/src/repo/.claude/commands/implement.md +15 -0
  474. package/src/repo/.claude/commands/plan.md +15 -0
  475. package/src/repo/.claude/commands/playwright-test.md +13 -0
  476. package/src/repo/.claude/commands/ponytail-audit.md +15 -0
  477. package/src/repo/.claude/commands/ponytail-debt.md +15 -0
  478. package/src/repo/.claude/commands/ponytail-gain.md +15 -0
  479. package/src/repo/.claude/commands/ponytail-help.md +15 -0
  480. package/src/repo/.claude/commands/ponytail-review.md +15 -0
  481. package/src/repo/.claude/commands/ponytail.md +15 -0
  482. package/src/repo/.claude/commands/release-notes.md +13 -0
  483. package/src/repo/.claude/commands/review-pr.md +15 -0
  484. package/src/repo/.claude/commands/review-staged.md +15 -0
  485. package/src/repo/.claude/commands/review.md +15 -0
  486. package/src/repo/.claude/commands/specify.md +15 -0
  487. package/src/repo/.claude/commands/tasks.md +13 -0
  488. package/src/repo/.claude/prompt-snippets/assign-tasks.md +170 -0
  489. package/src/repo/.claude/prompt-snippets/bootstrap-patch.md +200 -0
  490. package/src/repo/.claude/prompt-snippets/bootstrap-upgrade.md +357 -0
  491. package/src/repo/.claude/prompt-snippets/bootstrap.md +1026 -0
  492. package/src/repo/.claude/prompt-snippets/commit-push.md +70 -0
  493. package/src/repo/.claude/prompt-snippets/constitution.md +57 -0
  494. package/src/repo/.claude/prompt-snippets/create-skill.md +490 -0
  495. package/src/repo/.claude/prompt-snippets/implement-feature.md +124 -0
  496. package/src/repo/.claude/prompt-snippets/implement-fixes.md +116 -0
  497. package/src/repo/.claude/prompt-snippets/implement.md +56 -0
  498. package/src/repo/.claude/prompt-snippets/plan.md +94 -0
  499. package/src/repo/.claude/prompt-snippets/playwright-test.md +58 -0
  500. package/src/repo/.claude/prompt-snippets/ponytail-audit.md +5 -0
  501. package/src/repo/.claude/prompt-snippets/ponytail-debt.md +5 -0
  502. package/src/repo/.claude/prompt-snippets/ponytail-gain.md +5 -0
  503. package/src/repo/.claude/prompt-snippets/ponytail-help.md +5 -0
  504. package/src/repo/.claude/prompt-snippets/ponytail-review.md +5 -0
  505. package/src/repo/.claude/prompt-snippets/ponytail.md +5 -0
  506. package/src/repo/.claude/prompt-snippets/release-notes.md +204 -0
  507. package/src/repo/.claude/prompt-snippets/review-pr.md +156 -0
  508. package/src/repo/.claude/prompt-snippets/review-staged.md +35 -0
  509. package/src/repo/.claude/prompt-snippets/review.md +139 -0
  510. package/src/repo/.claude/prompt-snippets/specify.md +84 -0
  511. package/src/repo/.claude/prompt-snippets/tasks.md +146 -0
  512. package/src/repo/.claude/rules/agent-conduct.md +13 -0
  513. package/src/repo/.claude/rules/api-server.md +16 -0
  514. package/src/repo/.claude/rules/coding-standards.md +13 -0
  515. package/src/repo/.claude/rules/component-structure.md +15 -0
  516. package/src/repo/.claude/rules/core-libraries.md +13 -0
  517. package/src/repo/.claude/rules/environment-tooling.md +13 -0
  518. package/src/repo/.claude/rules/logging-comments.md +13 -0
  519. package/src/repo/.claude/rules/logging.md +13 -0
  520. package/src/repo/.claude/rules/orient-to-recent-work.md +13 -0
  521. package/src/repo/.claude/rules/prisma-migrations.md +16 -0
  522. package/src/repo/.claude/rules/project-context.md +13 -0
  523. package/src/repo/.claude/rules/server-client-separation.md +13 -0
  524. package/src/repo/.claude/rules/subagent-workflow.md +13 -0
  525. package/src/repo/.claude/rules/testing-quality.md +16 -0
  526. package/src/repo/.claude/rules/testing.md +16 -0
  527. package/src/repo/.claude/rules/ui-accessibility.md +15 -0
  528. package/src/repo/.claude/rules/version-control.md +13 -0
  529. package/src/repo/.claude/rules/what-to-avoid.md +13 -0
  530. package/src/repo/.claude/rules-snippets/agent-conduct.md +51 -0
  531. package/src/repo/.claude/rules-snippets/api-server.md +7 -0
  532. package/src/repo/.claude/rules-snippets/coding-standards.md +45 -0
  533. package/src/repo/.claude/rules-snippets/component-structure.md +8 -0
  534. package/src/repo/.claude/rules-snippets/core-libraries.md +6 -0
  535. package/src/repo/.claude/rules-snippets/deployment.md +38 -0
  536. package/src/repo/.claude/rules-snippets/documentation.md +621 -0
  537. package/src/repo/.claude/rules-snippets/environment-tooling.md +6 -0
  538. package/src/repo/.claude/rules-snippets/logging-comments.md +4 -0
  539. package/src/repo/.claude/rules-snippets/logging.md +352 -0
  540. package/src/repo/.claude/rules-snippets/patterns.md +29 -0
  541. package/src/repo/.claude/rules-snippets/ponytail.md +24 -0
  542. package/src/repo/.claude/rules-snippets/prisma-migrations.md +8 -0
  543. package/src/repo/.claude/rules-snippets/project-context.md +25 -0
  544. package/src/repo/.claude/rules-snippets/server-client-separation.md +7 -0
  545. package/src/repo/.claude/rules-snippets/subagent-workflow.md +134 -0
  546. package/src/repo/.claude/rules-snippets/testing-quality.md +5 -0
  547. package/src/repo/.claude/rules-snippets/testing.md +38 -0
  548. package/src/repo/.claude/rules-snippets/ui-accessibility.md +7 -0
  549. package/src/repo/.claude/rules-snippets/version-control.md +6 -0
  550. package/src/repo/.claude/rules-snippets/what-to-avoid.md +8 -0
  551. package/src/repo/.claude/rules-snippets/workflows.md +25 -0
  552. package/src/repo/.claude/settings.json +7 -0
  553. package/src/repo/.claude/skills/README.md +50 -0
  554. package/src/repo/.cursor/agents/admin-portal.agent.md +11 -0
  555. package/src/repo/.cursor/agents/api-specialist.agent.md +11 -0
  556. package/src/repo/.cursor/agents/backend-architect.agent.md +11 -0
  557. package/src/repo/.cursor/agents/documenter.agent.md +11 -0
  558. package/src/repo/.cursor/agents/feature-builder.agent.md +11 -0
  559. package/src/repo/.cursor/agents/frontend-developer.agent.md +11 -0
  560. package/src/repo/.cursor/agents/green.agent.md +11 -0
  561. package/src/repo/.cursor/agents/implementer.agent.md +11 -0
  562. package/src/repo/.cursor/agents/planner.agent.md +11 -0
  563. package/src/repo/.cursor/agents/red.agent.md +11 -0
  564. package/src/repo/.cursor/agents/refactor.agent.md +11 -0
  565. package/src/repo/.cursor/agents/researcher.agent.md +11 -0
  566. package/src/repo/.cursor/agents/reviewer.agent.md +11 -0
  567. package/src/repo/.cursor/agents/tdd.agent.md +11 -0
  568. package/src/repo/.cursor/commands/assign-tasks.md +13 -0
  569. package/src/repo/.cursor/commands/bootstrap-patch.md +17 -0
  570. package/src/repo/.cursor/commands/bootstrap-upgrade.md +15 -0
  571. package/src/repo/.cursor/commands/bootstrap.md +17 -0
  572. package/src/repo/.cursor/commands/commit-push.md +15 -0
  573. package/src/repo/.cursor/commands/constitution.md +17 -0
  574. package/src/repo/.cursor/commands/create-skill.md +15 -0
  575. package/src/repo/.cursor/commands/implement-feature.md +17 -0
  576. package/src/repo/.cursor/commands/implement-fixes.md +17 -0
  577. package/src/repo/.cursor/commands/implement.md +17 -0
  578. package/src/repo/.cursor/commands/plan.md +17 -0
  579. package/src/repo/.cursor/commands/playwright-test.md +15 -0
  580. package/src/repo/.cursor/commands/ponytail-audit.md +13 -0
  581. package/src/repo/.cursor/commands/ponytail-debt.md +13 -0
  582. package/src/repo/.cursor/commands/ponytail-gain.md +13 -0
  583. package/src/repo/.cursor/commands/ponytail-help.md +13 -0
  584. package/src/repo/.cursor/commands/ponytail-review.md +13 -0
  585. package/src/repo/.cursor/commands/ponytail.md +13 -0
  586. package/src/repo/.cursor/commands/release-notes.md +15 -0
  587. package/src/repo/.cursor/commands/review-pr.md +17 -0
  588. package/src/repo/.cursor/commands/review-staged.md +10 -0
  589. package/src/repo/.cursor/commands/review.md +17 -0
  590. package/src/repo/.cursor/commands/specify.md +17 -0
  591. package/src/repo/.cursor/commands/tasks.md +15 -0
  592. package/src/repo/.cursor/mcp.json +13 -0
  593. package/src/repo/.cursor/rules/agent-conduct.mdc +11 -0
  594. package/src/repo/.cursor/rules/api-server.mdc +11 -0
  595. package/src/repo/.cursor/rules/coding-standards.mdc +11 -0
  596. package/src/repo/.cursor/rules/component-structure.mdc +11 -0
  597. package/src/repo/.cursor/rules/core-libraries.mdc +11 -0
  598. package/src/repo/.cursor/rules/environment-tooling.mdc +11 -0
  599. package/src/repo/.cursor/rules/logging-comments.mdc +11 -0
  600. package/src/repo/.cursor/rules/logging.mdc +11 -0
  601. package/src/repo/.cursor/rules/orient-to-recent-work.mdc +9 -0
  602. package/src/repo/.cursor/rules/ponytail.mdc +9 -0
  603. package/src/repo/.cursor/rules/prisma-migrations.mdc +11 -0
  604. package/src/repo/.cursor/rules/project-context.mdc +11 -0
  605. package/src/repo/.cursor/rules/server-client-separation.mdc +11 -0
  606. package/src/repo/.cursor/rules/subagent-workflow.mdc +11 -0
  607. package/src/repo/.cursor/rules/testing-quality.mdc +11 -0
  608. package/src/repo/.cursor/rules/ui-accessibility.mdc +11 -0
  609. package/src/repo/.cursor/rules/version-control.mdc +11 -0
  610. package/src/repo/.cursor/rules/what-to-avoid.mdc +11 -0
  611. package/src/repo/.cursor/skills/README.md +50 -0
  612. package/src/repo/.github/agents/admin-portal.agent.md +11 -0
  613. package/src/repo/.github/agents/api-specialist.agent.md +11 -0
  614. package/src/repo/.github/agents/backend-architect.agent.md +11 -0
  615. package/src/repo/.github/agents/documenter.agent.md +11 -0
  616. package/src/repo/.github/agents/feature-builder.agent.md +24 -0
  617. package/src/repo/.github/agents/frontend-developer.agent.md +11 -0
  618. package/src/repo/.github/agents/green.agent.md +12 -0
  619. package/src/repo/.github/agents/implementer.agent.md +12 -0
  620. package/src/repo/.github/agents/planner.agent.md +12 -0
  621. package/src/repo/.github/agents/red.agent.md +12 -0
  622. package/src/repo/.github/agents/refactor.agent.md +12 -0
  623. package/src/repo/.github/agents/researcher.agent.md +12 -0
  624. package/src/repo/.github/agents/reviewer.agent.md +11 -0
  625. package/src/repo/.github/agents/tdd.agent.md +13 -0
  626. package/src/repo/.github/copilot-instructions.md +89 -0
  627. package/src/repo/.github/instructions/agent-conduct.instructions.md +13 -0
  628. package/src/repo/.github/instructions/api-server.instructions.md +13 -0
  629. package/src/repo/.github/instructions/coding-standards.instructions.md +13 -0
  630. package/src/repo/.github/instructions/component-structure.instructions.md +13 -0
  631. package/src/repo/.github/instructions/core-libraries.instructions.md +13 -0
  632. package/src/repo/.github/instructions/deployment.instructions.md +13 -0
  633. package/src/repo/.github/instructions/documentation.instructions.md +14 -0
  634. package/src/repo/.github/instructions/environment-tooling.instructions.md +13 -0
  635. package/src/repo/.github/instructions/logging-comments.instructions.md +13 -0
  636. package/src/repo/.github/instructions/logging.instructions.md +13 -0
  637. package/src/repo/.github/instructions/patterns.instructions.md +13 -0
  638. package/src/repo/.github/instructions/prisma-migrations.instructions.md +13 -0
  639. package/src/repo/.github/instructions/project-context.instructions.md +13 -0
  640. package/src/repo/.github/instructions/server-client-separation.instructions.md +13 -0
  641. package/src/repo/.github/instructions/subagent-workflow.instructions.md +13 -0
  642. package/src/repo/.github/instructions/testing-quality.instructions.md +13 -0
  643. package/src/repo/.github/instructions/testing.instructions.md +13 -0
  644. package/src/repo/.github/instructions/ui-accessibility.instructions.md +13 -0
  645. package/src/repo/.github/instructions/version-control.instructions.md +13 -0
  646. package/src/repo/.github/instructions/what-to-avoid.instructions.md +13 -0
  647. package/src/repo/.github/instructions/workflows.instructions.md +13 -0
  648. package/src/repo/.github/prompts/assign-tasks.prompt.md +14 -0
  649. package/src/repo/.github/prompts/bootstrap-patch.prompt.md +16 -0
  650. package/src/repo/.github/prompts/bootstrap-upgrade.prompt.md +15 -0
  651. package/src/repo/.github/prompts/bootstrap.prompt.md +16 -0
  652. package/src/repo/.github/prompts/commit-push.prompt.md +14 -0
  653. package/src/repo/.github/prompts/constitution.prompt.md +16 -0
  654. package/src/repo/.github/prompts/create-skill.prompt.md +16 -0
  655. package/src/repo/.github/prompts/implement-feature.prompt.md +16 -0
  656. package/src/repo/.github/prompts/implement-fixes.prompt.md +16 -0
  657. package/src/repo/.github/prompts/implement.prompt.md +16 -0
  658. package/src/repo/.github/prompts/plan.prompt.md +16 -0
  659. package/src/repo/.github/prompts/playwright-test.prompt.md +14 -0
  660. package/src/repo/.github/prompts/ponytail-audit.prompt.md +13 -0
  661. package/src/repo/.github/prompts/ponytail-debt.prompt.md +13 -0
  662. package/src/repo/.github/prompts/ponytail-gain.prompt.md +13 -0
  663. package/src/repo/.github/prompts/ponytail-help.prompt.md +13 -0
  664. package/src/repo/.github/prompts/ponytail-review.prompt.md +13 -0
  665. package/src/repo/.github/prompts/ponytail.prompt.md +13 -0
  666. package/src/repo/.github/prompts/release-notes.prompt.md +14 -0
  667. package/src/repo/.github/prompts/review-pr.prompt.md +16 -0
  668. package/src/repo/.github/prompts/review-staged.prompt.md +16 -0
  669. package/src/repo/.github/prompts/review.prompt.md +16 -0
  670. package/src/repo/.github/prompts/specify.prompt.md +16 -0
  671. package/src/repo/.github/prompts/tasks.prompt.md +14 -0
  672. package/src/repo/.github/skills/README.md +36 -0
  673. package/src/repo/.mcp.json +13 -0
  674. package/src/repo/.opencode/agents/admin-portal.md +14 -0
  675. package/src/repo/.opencode/agents/api-specialist.md +14 -0
  676. package/src/repo/.opencode/agents/backend-architect.md +14 -0
  677. package/src/repo/.opencode/agents/documenter.md +14 -0
  678. package/src/repo/.opencode/agents/feature-builder.md +15 -0
  679. package/src/repo/.opencode/agents/frontend-developer.md +14 -0
  680. package/src/repo/.opencode/agents/green.md +14 -0
  681. package/src/repo/.opencode/agents/implementer.md +14 -0
  682. package/src/repo/.opencode/agents/planner.md +14 -0
  683. package/src/repo/.opencode/agents/red.md +14 -0
  684. package/src/repo/.opencode/agents/refactor.md +14 -0
  685. package/src/repo/.opencode/agents/researcher.md +14 -0
  686. package/src/repo/.opencode/agents/reviewer.md +14 -0
  687. package/src/repo/.opencode/agents/tdd.md +15 -0
  688. package/src/repo/.opencode/commands/assign-tasks.md +16 -0
  689. package/src/repo/.opencode/commands/bootstrap-patch.md +18 -0
  690. package/src/repo/.opencode/commands/bootstrap-upgrade.md +18 -0
  691. package/src/repo/.opencode/commands/bootstrap.md +18 -0
  692. package/src/repo/.opencode/commands/commit-push.md +16 -0
  693. package/src/repo/.opencode/commands/constitution.md +18 -0
  694. package/src/repo/.opencode/commands/create-skill.md +16 -0
  695. package/src/repo/.opencode/commands/implement-feature.md +18 -0
  696. package/src/repo/.opencode/commands/implement-fixes.md +20 -0
  697. package/src/repo/.opencode/commands/implement.md +18 -0
  698. package/src/repo/.opencode/commands/plan.md +18 -0
  699. package/src/repo/.opencode/commands/playwright-test.md +16 -0
  700. package/src/repo/.opencode/commands/ponytail-audit.md +10 -0
  701. package/src/repo/.opencode/commands/ponytail-debt.md +10 -0
  702. package/src/repo/.opencode/commands/ponytail-gain.md +10 -0
  703. package/src/repo/.opencode/commands/ponytail-help.md +10 -0
  704. package/src/repo/.opencode/commands/ponytail-review.md +10 -0
  705. package/src/repo/.opencode/commands/ponytail.md +10 -0
  706. package/src/repo/.opencode/commands/release-notes.md +16 -0
  707. package/src/repo/.opencode/commands/review-pr.md +18 -0
  708. package/src/repo/.opencode/commands/review-staged.md +11 -0
  709. package/src/repo/.opencode/commands/review.md +18 -0
  710. package/src/repo/.opencode/commands/specify.md +18 -0
  711. package/src/repo/.opencode/commands/tasks.md +16 -0
  712. package/src/repo/.opencode/opencode.json +9 -0
  713. package/src/repo/.opencode/plugins/ponytail.mjs +79 -0
  714. package/src/repo/.opencode/rules/agent-conduct.md +11 -0
  715. package/src/repo/.opencode/rules/api-server.md +11 -0
  716. package/src/repo/.opencode/rules/coding-standards.md +11 -0
  717. package/src/repo/.opencode/rules/component-structure.md +11 -0
  718. package/src/repo/.opencode/rules/core-libraries.md +11 -0
  719. package/src/repo/.opencode/rules/environment-tooling.md +11 -0
  720. package/src/repo/.opencode/rules/logging-comments.md +11 -0
  721. package/src/repo/.opencode/rules/logging.md +11 -0
  722. package/src/repo/.opencode/rules/ponytail.md +3 -0
  723. package/src/repo/.opencode/rules/prisma-migrations.md +11 -0
  724. package/src/repo/.opencode/rules/project-context.md +11 -0
  725. package/src/repo/.opencode/rules/server-client-separation.md +11 -0
  726. package/src/repo/.opencode/rules/subagent-workflow.md +11 -0
  727. package/src/repo/.opencode/rules/testing-quality.md +11 -0
  728. package/src/repo/.opencode/rules/ui-accessibility.md +11 -0
  729. package/src/repo/.opencode/rules/version-control.md +11 -0
  730. package/src/repo/.opencode/rules/what-to-avoid.md +11 -0
  731. package/src/repo/.vscode/mcp.json +13 -0
  732. package/src/repo/AGENTS.md +387 -0
  733. package/src/repo/CLAUDE.md +51 -0
  734. package/src/repo/README.md +145 -0
  735. package/src/repo/docs/api/README.md +82 -0
  736. package/src/repo/docs/architecture/README.md +56 -0
  737. package/src/repo/docs/features/README.md +82 -0
  738. package/src/repo/docs/fixes/README.md +117 -0
  739. package/src/repo/hooks/claude-codex-hooks.json +31 -0
  740. package/src/repo/hooks/copilot-hooks.json +21 -0
  741. package/src/repo/hooks/ponytail-activate.js +91 -0
  742. package/src/repo/hooks/ponytail-config.js +122 -0
  743. package/src/repo/hooks/ponytail-instructions.js +92 -0
  744. package/src/repo/hooks/ponytail-mode-tracker.js +55 -0
  745. package/src/repo/hooks/ponytail-runtime.js +51 -0
  746. package/src/repo/hooks/ponytail-statusline.ps1 +21 -0
  747. package/src/repo/hooks/ponytail-statusline.sh +12 -0
  748. package/src/repo/templates/README.md +80 -0
  749. package/src/repo/templates/adr.template.md +162 -0
  750. package/src/repo/templates/complex-fix-plan.template.md +162 -0
  751. package/src/repo/templates/complex-fix-spec.template.md +163 -0
  752. package/src/repo/templates/feature-plan.template.md +202 -0
  753. package/src/repo/templates/feature-spec.template.md +148 -0
  754. package/src/repo/templates/monthly-fix-log.template.md +91 -0
@@ -0,0 +1,559 @@
1
+ ---
2
+ name: logging
3
+ description: Comprehensive logging standards for applications including structured logging, log levels, message formatting, and observability guidelines
4
+ version: 1.0.0
5
+ author: {{PROJECT_NAME}} Team
6
+ created: 2026-01-26
7
+ updated: 2026-01-26
8
+ tags:
9
+ - logging
10
+ - structured-logging
11
+ - observability
12
+ - debugging
13
+ - monitoring
14
+ applies_to:
15
+ - "**/*.{{FILE_EXTENSION}}"
16
+ - "services/**/*"
17
+ - "api/**/*"
18
+ - "src/**/*"
19
+ ---
20
+
21
+ # Logging Standards
22
+
23
+ Comprehensive logging guidelines for consistent, structured, and maintainable logging across the codebase.
24
+
25
+ ## Core Principles
26
+
27
+ ### 1. Structured Logging
28
+
29
+ All logs MUST be structured (JSON-serializable) for efficient querying and analysis.
30
+
31
+ ### 2. Contextual Information
32
+
33
+ Include relevant context (request ID, user ID, session ID) in every log.
34
+
35
+ ### 3. Appropriate Levels
36
+
37
+ Use correct log levels to enable effective filtering.
38
+
39
+ ### 4. Performance Aware
40
+
41
+ Avoid expensive operations in log statements.
42
+
43
+ ## Log Levels
44
+
45
+ | Level | When to Use | Examples |
46
+ | --------- | -------------------------------------- | ------------------------------------------------ |
47
+ | **ERROR** | Application errors requiring attention | Unhandled exceptions, failed critical operations |
48
+ | **WARN** | Unexpected but recoverable situations | Retry attempts, deprecated usage, rate limiting |
49
+ | **INFO** | Significant application events | Request handling, job completion, config changes |
50
+ | **DEBUG** | Detailed diagnostic information | Variable values, execution paths, timing |
51
+ | **TRACE** | Very detailed debugging | Loop iterations, method entry/exit |
52
+
53
+ ## Message Format Pattern
54
+
55
+ **REQUIRED**: All log messages MUST follow this pattern:
56
+
57
+ ```
58
+ [SERVICE_OR_CLASS]: MESSAGE
59
+ ```
60
+
61
+ The prefix should be the **actual class name or service name** enclosed in square brackets.
62
+
63
+ ## Language-Specific Examples
64
+
65
+ ### TypeScript/JavaScript
66
+
67
+ ```typescript
68
+ import { logger } from "./logger";
69
+
70
+ // ✅ GOOD - Structured with context
71
+ logger.info("[UserService]: User created", {
72
+ userId: user.id,
73
+ email: user.email,
74
+ source: "registration",
75
+ });
76
+
77
+ // ✅ GOOD - Error with stack trace
78
+ logger.error("[PaymentService]: Payment processing failed", {
79
+ error: err.message,
80
+ stack: err.stack,
81
+ orderId: order.id,
82
+ amount: order.total,
83
+ });
84
+
85
+ // ❌ BAD - String interpolation loses structure
86
+ logger.info(`User ${userId} created with email ${email}`);
87
+
88
+ // ❌ BAD - Missing context
89
+ logger.error("Payment failed");
90
+ ```
91
+
92
+ ### Python
93
+
94
+ ```python
95
+ import structlog
96
+
97
+ logger = structlog.get_logger()
98
+
99
+ # ✅ GOOD - Structured with context
100
+ logger.info("[UserService]: User created",
101
+ user_id=user.id,
102
+ email=user.email,
103
+ source="registration"
104
+ )
105
+
106
+ # ✅ GOOD - Error with exception
107
+ logger.error("[PaymentService]: Payment processing failed",
108
+ error=str(e),
109
+ order_id=order.id,
110
+ amount=order.total,
111
+ exc_info=True
112
+ )
113
+
114
+ # ❌ BAD - f-string loses structure
115
+ logger.info(f"User {user_id} created with email {email}")
116
+ ```
117
+
118
+ ### C# / .NET
119
+
120
+ ```csharp
121
+ // ✅ GOOD - Structured logging with named parameters
122
+ _logger.LogInformation("[UserService]: User created - UserId: {UserId}, Email: {Email}",
123
+ user.Id, user.Email);
124
+
125
+ // ✅ GOOD - Error with exception
126
+ _logger.LogError(ex, "[PaymentService]: Payment failed - OrderId: {OrderId}, Amount: {Amount}",
127
+ order.Id, order.Total);
128
+
129
+ // ❌ BAD - String interpolation
130
+ _logger.LogInformation($"User {userId} created with email {email}");
131
+ ```
132
+
133
+ ### Go
134
+
135
+ ```go
136
+ // ✅ GOOD - Structured with context
137
+ logger.Info("[UserService]: User created",
138
+ zap.String("userId", user.ID),
139
+ zap.String("email", user.Email),
140
+ zap.String("source", "registration"),
141
+ )
142
+
143
+ // ✅ GOOD - Error with stack
144
+ logger.Error("[PaymentService]: Payment failed",
145
+ zap.Error(err),
146
+ zap.String("orderId", order.ID),
147
+ zap.Float64("amount", order.Total),
148
+ )
149
+
150
+ // ❌ BAD - Printf style
151
+ logger.Info(fmt.Sprintf("User %s created", userId))
152
+ ```
153
+
154
+ ## Contextual Logging
155
+
156
+ ### Request Context
157
+
158
+ Always include request-scoped identifiers:
159
+
160
+ ```typescript
161
+ // Middleware sets context
162
+ const requestContext = {
163
+ requestId: req.headers["x-request-id"] || uuid(),
164
+ userId: req.user?.id,
165
+ sessionId: req.session?.id,
166
+ traceId: req.headers["x-trace-id"],
167
+ };
168
+
169
+ // All logs in request include context
170
+ logger.info("[OrderController]: Order submitted", {
171
+ ...requestContext,
172
+ orderId: order.id,
173
+ itemCount: order.items.length,
174
+ });
175
+ ```
176
+
177
+ ### Correlation IDs
178
+
179
+ For async operations, propagate correlation:
180
+
181
+ ```typescript
182
+ async function processOrder(order: Order, correlationId: string) {
183
+ logger.info("[OrderProcessor]: Starting order processing", {
184
+ correlationId,
185
+ orderId: order.id,
186
+ });
187
+
188
+ // Pass to downstream services
189
+ await inventoryService.reserve(order.items, { correlationId });
190
+ await paymentService.charge(order.total, { correlationId });
191
+
192
+ logger.info("[OrderProcessor]: Order processing complete", {
193
+ correlationId,
194
+ orderId: order.id,
195
+ duration: Date.now() - startTime,
196
+ });
197
+ }
198
+ ```
199
+
200
+ ## Performance Logging
201
+
202
+ ### Timing Operations
203
+
204
+ ```typescript
205
+ const startTime = performance.now();
206
+
207
+ await expensiveOperation();
208
+
209
+ const duration = performance.now() - startTime;
210
+ logger.info("[DataProcessor]: Operation completed", {
211
+ operationType: "batch-import",
212
+ recordCount: records.length,
213
+ durationMs: Math.round(duration),
214
+ recordsPerSecond: Math.round(records.length / (duration / 1000)),
215
+ });
216
+ ```
217
+
218
+ ### Conditional Debug Logging
219
+
220
+ ```typescript
221
+ // Avoid expensive serialization unless needed
222
+ if (logger.isDebugEnabled()) {
223
+ logger.debug("[CacheService]: Cache contents", {
224
+ keys: cache.keys(),
225
+ size: cache.size,
226
+ hitRate: cache.stats.hitRate,
227
+ });
228
+ }
229
+ ```
230
+
231
+ ## Error Logging Best Practices
232
+
233
+ ### Include Full Context
234
+
235
+ ```typescript
236
+ try {
237
+ await processPayment(order);
238
+ } catch (error) {
239
+ logger.error("[PaymentService]: Payment processing failed", {
240
+ error: error.message,
241
+ stack: error.stack,
242
+ errorCode: error.code,
243
+ // Business context
244
+ orderId: order.id,
245
+ userId: order.userId,
246
+ amount: order.total,
247
+ paymentMethod: order.paymentMethod,
248
+ // Request context
249
+ requestId: context.requestId,
250
+ // Recovery info
251
+ retryable: isRetryableError(error),
252
+ attemptNumber: attempt,
253
+ });
254
+ throw error;
255
+ }
256
+ ```
257
+
258
+ ### Categorize Errors
259
+
260
+ ```typescript
261
+ // Tag errors for monitoring/alerting
262
+ logger.error("[AuthService]: Authentication failed", {
263
+ errorCategory: "SECURITY",
264
+ errorType: "INVALID_CREDENTIALS",
265
+ userId: attemptedUserId,
266
+ ipAddress: request.ip,
267
+ userAgent: request.headers["user-agent"],
268
+ });
269
+ ```
270
+
271
+ ## Sensitive Data
272
+
273
+ ### Never Log
274
+
275
+ - Passwords or secrets
276
+ - Full credit card numbers
277
+ - Social security numbers
278
+ - API keys or tokens
279
+ - Personal health information
280
+ - Personally identifiable information (PII) beyond user IDs
281
+
282
+ ### Masking Patterns
283
+
284
+ ```typescript
285
+ const maskEmail = (email: string) => {
286
+ const [local, domain] = email.split("@");
287
+ return `${local.slice(0, 2)}***@${domain}`;
288
+ };
289
+
290
+ const maskCardNumber = (card: string) => {
291
+ return `****-****-****-${card.slice(-4)}`;
292
+ };
293
+
294
+ logger.info("[PaymentService]: Payment authorized", {
295
+ email: maskEmail(user.email), // "jo***@example.com"
296
+ cardNumber: maskCardNumber(card), // "****-****-****-1234"
297
+ amount: order.total,
298
+ });
299
+ ```
300
+
301
+ ## Common Patterns by Component Type
302
+
303
+ ### Controllers / Route Handlers
304
+
305
+ ```typescript
306
+ // TypeScript
307
+ logger.info("[OrderController]: Received order submission", {
308
+ userId: user.id,
309
+ itemCount: order.items.length,
310
+ correlationId: req.headers["x-request-id"],
311
+ });
312
+
313
+ logger.warn("[OrderController]: Validation failed", {
314
+ userId: user.id,
315
+ errors: validationErrors,
316
+ });
317
+ ```
318
+
319
+ ```csharp
320
+ // C#
321
+ _logger.LogInformation("[OrderController]: Received order submission - UserId: {UserId}, ItemCount: {ItemCount}",
322
+ user.Id, order.Items.Count);
323
+
324
+ _logger.LogWarning("[OrderController]: Validation failed - UserId: {UserId}, Errors: {Errors}",
325
+ user.Id, validationErrors);
326
+ ```
327
+
328
+ ### Services
329
+
330
+ ```typescript
331
+ // TypeScript
332
+ logger.info("[OrderService]: Processing order", {
333
+ orderId: order.id,
334
+ userId: order.userId,
335
+ total: order.total,
336
+ });
337
+
338
+ logger.error(ex, "[NotificationService]: Failed to send notification", {
339
+ userId: user.id,
340
+ notificationType: "order-confirmation",
341
+ error: err.message,
342
+ });
343
+ ```
344
+
345
+ ```python
346
+ # Python
347
+ logger.info("[OrderService]: Processing order",
348
+ order_id=order.id,
349
+ user_id=order.user_id,
350
+ total=order.total,
351
+ )
352
+
353
+ logger.error("[NotificationService]: Failed to send notification",
354
+ user_id=user.id,
355
+ notification_type="order-confirmation",
356
+ error=str(e),
357
+ exc_info=True,
358
+ )
359
+ ```
360
+
361
+ ### Background Jobs
362
+
363
+ ```typescript
364
+ logger.info("[EmailJobService]: Starting scheduled email job");
365
+
366
+ logger.warn("[EmailJobService]: No emails scheduled for processing");
367
+
368
+ logger.info("[EmailJobService]: Job completed", {
369
+ emailsSent: sentCount,
370
+ duration: Date.now() - startTime,
371
+ });
372
+ ```
373
+
374
+ ## Anti-Patterns to Avoid
375
+
376
+ ### ❌ Don't Use Generic Prefixes
377
+
378
+ ```typescript
379
+ // Bad - not specific enough
380
+ logger.info("[Service]: Operation completed");
381
+
382
+ // Good - identifies exact service
383
+ logger.info("[OrderService]: Order processing completed", {
384
+ orderId: order.id,
385
+ });
386
+ ```
387
+
388
+ ### ❌ Don't Use Technology Names as Prefixes
389
+
390
+ ```typescript
391
+ // Bad - uses technology name instead of class name
392
+ logger.debug("REDIS: Cache hit for key " + key);
393
+
394
+ // Good - uses actual class name
395
+ logger.debug("[CacheService]: Cache hit", { key, ttl });
396
+ ```
397
+
398
+ ### ❌ Don't Log Sensitive Data
399
+
400
+ ```typescript
401
+ // Bad - logs sensitive information
402
+ logger.info("[AuthService]: User logged in", {
403
+ password: password,
404
+ token: jwtToken,
405
+ });
406
+
407
+ // Good - logs only non-sensitive identifiers
408
+ logger.info("[AuthService]: User logged in", {
409
+ userId: user.id,
410
+ sessionId: session.id,
411
+ });
412
+ ```
413
+
414
+ ### ❌ Don't Use String Interpolation in Log Messages
415
+
416
+ ```typescript
417
+ // Bad - loses structured logging
418
+ logger.info(`User ${userId} performed action ${action}`);
419
+
420
+ // Good - uses structured logging
421
+ logger.info("[Service]: User performed action", {
422
+ userId,
423
+ action,
424
+ });
425
+ ```
426
+
427
+ ### ❌ Don't Log in Tight Loops Without Throttling
428
+
429
+ ```typescript
430
+ // Bad - can flood logs
431
+ for (const item of largeCollection) {
432
+ logger.debug("[Service]: Processing item", { itemId: item.id });
433
+ }
434
+
435
+ // Good - log summary instead
436
+ logger.info("[Service]: Processing batch", {
437
+ itemCount: largeCollection.length,
438
+ });
439
+ // Log only errors or specific cases
440
+ ```
441
+
442
+ ## Log Message Guidelines
443
+
444
+ ### Be Specific and Actionable
445
+
446
+ ```typescript
447
+ // Bad - vague
448
+ logger.error("[Service]: Error occurred");
449
+
450
+ // Good - specific and actionable
451
+ logger.error("[PaymentService]: Failed to process payment", {
452
+ orderId: order.id,
453
+ userId: order.userId,
454
+ amount: order.total,
455
+ paymentMethod: order.paymentMethod,
456
+ error: err.message,
457
+ });
458
+ ```
459
+
460
+ ### Use Present Tense for Actions
461
+
462
+ ```typescript
463
+ // Preferred
464
+ logger.info("[Service]: Processing request");
465
+ logger.info("[Service]: Request processed successfully");
466
+
467
+ // Not preferred
468
+ logger.info("[Service]: Will process request");
469
+ ```
470
+
471
+ ### Include Context for Troubleshooting
472
+
473
+ ```typescript
474
+ logger.warn("[CacheService]: Cache miss", {
475
+ key: cacheKey,
476
+ expectedType: "user-profile",
477
+ fallbackUsed: true,
478
+ });
479
+ ```
480
+
481
+ ## Environment Configuration
482
+
483
+ ```bash
484
+ # .env
485
+ LOG_LEVEL=info # Minimum log level
486
+ LOG_FORMAT=json # json | pretty
487
+ LOG_DESTINATION=stdout # stdout | file | service
488
+ LOG_SERVICE_URL= # External logging service URL
489
+ ```
490
+
491
+ ## Observability Integration
492
+
493
+ ### OpenTelemetry Context
494
+
495
+ ```typescript
496
+ import { trace, context } from "@opentelemetry/api";
497
+
498
+ function logWithTrace(level: string, message: string, data: object) {
499
+ const span = trace.getSpan(context.active());
500
+ const traceContext = span
501
+ ? {
502
+ traceId: span.spanContext().traceId,
503
+ spanId: span.spanContext().spanId,
504
+ }
505
+ : {};
506
+
507
+ logger[level](message, { ...data, ...traceContext });
508
+ }
509
+ ```
510
+
511
+ ## Testing Logging
512
+
513
+ When writing unit tests, verify logging behavior:
514
+
515
+ ```typescript
516
+ // TypeScript/Jest
517
+ expect(logger.info).toHaveBeenCalledWith(
518
+ expect.stringContaining("[OrderService]"),
519
+ expect.objectContaining({ orderId: "123" })
520
+ );
521
+ ```
522
+
523
+ ```csharp
524
+ // C# / .NET
525
+ _mockLogger.Verify(
526
+ x => x.Log(
527
+ LogLevel.Information,
528
+ It.IsAny<EventId>(),
529
+ It.Is<It.IsAnyType>((o, t) => o.ToString().Contains("[OrderService]")),
530
+ null,
531
+ It.IsAny<Func<It.IsAnyType, Exception, string>>()),
532
+ Times.Once);
533
+ ```
534
+
535
+ ## Quick Reference
536
+
537
+ ### Log Level Decision Tree
538
+
539
+ ```
540
+ Is it an error that needs attention? → ERROR
541
+ Is it unexpected but handled? → WARN
542
+ Is it a significant business event? → INFO
543
+ Is it helpful for debugging? → DEBUG
544
+ Is it very detailed/verbose? → TRACE
545
+ ```
546
+
547
+ ### Checklist Before Logging
548
+
549
+ - [ ] Using structured format (not string interpolation)
550
+ - [ ] Service/class prefix in brackets
551
+ - [ ] Relevant context included
552
+ - [ ] Sensitive data masked
553
+ - [ ] Appropriate log level
554
+ - [ ] No expensive operations in log statement
555
+
556
+ ## Related Skills
557
+
558
+ - See `.agents/skills/systematic-debugging/` for debugging workflows
559
+ - See `.agents/skills/verification-before-completion/` for testing logs
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: orient-to-recent-work
3
+ description: Build a compact mental model of recent project activity before any non-trivial task. Use proactively at the start of a session and before any investigation, planning, refactor, or multi-file change. Skip only for trivial fixes (typos, isolated docs, version bumps, mechanical refactors with a known target).
4
+ ---
5
+
6
+ # Orient to recent work
7
+
8
+ Before starting a non-trivial task, build a compact mental model of what has happened recently in this repository. This prevents re-litigating settled decisions and surfaces context that may not be in code or docs.
9
+
10
+ ## When to use
11
+
12
+ **Use proactively:**
13
+ - At the start of a session (before the first task)
14
+ - Before any investigation, planning, refactor, or multi-file change
15
+ - When picking up a thread after a break
16
+
17
+ **Skip for:**
18
+ - Single-line typo fixes
19
+ - Isolated documentation updates
20
+ - Dependency version bumps without logic changes
21
+ - Mechanical refactors with a known target
22
+
23
+ ## Protocol (do once per session, hold the result)
24
+
25
+ 1. **Read `CHANGELOG.md` [Unreleased]** — pending changes the team is preparing
26
+ 2. **Read the most recent released section of `CHANGELOG.md`** — what just shipped
27
+ 3. **Run `git log --oneline -20`** — recent commits at a glance
28
+ 4. **For commits that touch files you'll modify, run `git show <hash> --stat`** — scope only, not the full diff
29
+ 5. **Hold this mental model in working memory** for the session; re-run only if task scope changes dramatically
30
+
31
+ ## Output format
32
+
33
+ A 3–5 line summary capturing:
34
+ - What's in flight (Unreleased highlights)
35
+ - What just shipped (last release)
36
+ - Any recent decisions affecting your task (naming, refactor, schema)
37
+ - If your task touches recently-modified files, append: `Recent touch on <files>: <commit summary>`
38
+
39
+ ## Why
40
+
41
+ - Decisions have non-code context (commit messages, PR descriptions)
42
+ - Fresh sessions have no memory — this creates session-level orientation
43
+ - Prevents re-litigating recently-settled questions
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: ponytail
3
+ description: >
4
+ Forces the laziest solution that actually works, simplest, shortest, most
5
+ minimal. Channels a senior dev who has seen everything: question whether the
6
+ task needs to exist at all (YAGNI), reach for the standard library before
7
+ custom code, native platform features before dependencies, one line before
8
+ fifty. Supports intensity levels: lite, full (default), ultra. Use whenever
9
+ the user says "ponytail", "be lazy", "lazy mode", "simplest solution",
10
+ "minimal solution", "yagni", "do less", or "shortest path", and whenever
11
+ they complain about over-engineering, bloat, boilerplate, or unnecessary
12
+ dependencies.
13
+ argument-hint: "[lite|full|ultra]"
14
+ license: MIT
15
+ ---
16
+
17
+ # Ponytail
18
+
19
+ You are a lazy senior developer. Lazy means efficient, not careless. You have
20
+ seen every over-engineered codebase and been paged at 3am for one. The best
21
+ code is the code never written.
22
+
23
+ ## Persistence
24
+
25
+ ACTIVE EVERY RESPONSE. No drift back to over-building. Still active if
26
+ unsure. Off only: "stop ponytail" / "normal mode". Default: **full**.
27
+ Switch: `/ponytail lite|full|ultra`.
28
+
29
+ ## The ladder
30
+
31
+ Stop at the first rung that holds:
32
+
33
+ 1. **Does this need to exist at all?** Speculative need = skip it, say so in one line. (YAGNI)
34
+ 2. **Stdlib does it?** Use it.
35
+ 3. **Native platform feature covers it?** `<input type="date">` over a picker lib, CSS over JS, DB constraint over app code.
36
+ 4. **Already-installed dependency solves it?** Use it. Never add a new one for what a few lines can do.
37
+ 5. **Can it be one line?** One line.
38
+ 6. **Only then:** the minimum code that works.
39
+
40
+ The ladder is a reflex, not a research project. Two rungs work → take the
41
+ higher one and move on. The first lazy solution that works is the right one.
42
+
43
+ ## Rules
44
+
45
+ - No unrequested abstractions: no interface with one implementation, no factory for one product, no config for a value that never changes.
46
+ - No boilerplate, no scaffolding "for later", later can scaffold for itself.
47
+ - Deletion over addition. Boring over clever, clever is what someone decodes at 3am.
48
+ - Fewest files possible. Shortest working diff wins.
49
+ - Complex request? Ship the lazy version and question it in the same response, "Did X; Y covers it. Need full X? Say so." Never stall on an answer you can default.
50
+ - Two stdlib options, same size? Take the one that's correct on edge cases. Lazy means writing less code, not picking the flimsier algorithm.
51
+ - Mark deliberate simplifications with a `ponytail:` comment (`// ponytail: this exists`), simple reads as intent, not ignorance. Shortcut with a known ceiling (global lock, O(n²) scan, naive heuristic)? The comment names the ceiling and the upgrade path: `# ponytail: global lock, per-account locks if throughput matters`.
52
+
53
+ ## Output
54
+
55
+ Code first. Then at most three short lines: what was skipped, when to add it.
56
+ No essays, no feature tours, no design notes. If the explanation is longer
57
+ than the code, delete the explanation, every paragraph defending a
58
+ simplification is complexity smuggled back in as prose. Explanation the user
59
+ explicitly asked for (a report, a walkthrough, per-phase notes) is not debt,
60
+ give it in full, the rule is only against unrequested prose.
61
+
62
+ Pattern: `[code] → skipped: [X], add when [Y].`
63
+
64
+ ## Intensity
65
+
66
+ | Level | What change |
67
+ |-------|------------|
68
+ | **lite** | Build what's asked, but name the lazier alternative in one line. User picks. |
69
+ | **full** | The ladder enforced. Stdlib and native first. Shortest diff, shortest explanation. Default. |
70
+ | **ultra** | YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest of the requirement in the same breath. |
71
+
72
+ Example: "Add a cache for these API responses."
73
+ - lite: "Done, cache added. FYI: `functools.lru_cache` covers this in one line if you'd rather not own a cache class."
74
+ - full: "`@lru_cache(maxsize=1000)` on the fetch function. Skipped custom cache class, add when lru_cache measurably falls short."
75
+ - ultra: "No cache until a profiler says so. When it does: `@lru_cache`. A hand-rolled TTL cache class is a bug farm with a hit rate."
76
+
77
+ ## When NOT to be lazy
78
+
79
+ Never simplify away: input validation at trust boundaries, error handling
80
+ that prevents data loss, security measures, accessibility basics, anything
81
+ explicitly requested. User insists on the full version → build it, no
82
+ re-arguing.
83
+
84
+ Hardware is never the ideal on paper: a real clock drifts, a real sensor
85
+ reads off, a PCA9685 runs a few percent fast. Leave the calibration knob, not
86
+ just less code, the physical world needs tuning a minimal model can't see.
87
+
88
+ Lazy code without its check is unfinished. Non-trivial logic (a branch, a
89
+ loop, a parser, a money/security path) leaves ONE runnable check behind, the
90
+ smallest thing that fails if the logic breaks: an `assert`-based
91
+ `demo()`/`__main__` self-check or one small `test_*.py`. No frameworks, no
92
+ fixtures, no per-function suites unless asked. Trivial one-liners need no
93
+ test, YAGNI applies to tests too.
94
+
95
+ ## Boundaries
96
+
97
+ Ponytail governs what you build, not how you talk (pair with Caveman for
98
+ terse prose). "stop ponytail" / "normal mode": revert. Level persists until
99
+ changed or session end.
100
+
101
+ The shortest path to done is the right path.