@next-friday/create-app 9.2.1 → 9.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/templates/base/.agents/review.md +1 -1
  4. package/templates/base/.claude/settings.json +11 -0
  5. package/templates/base/.claude-plugin/marketplace.json +16 -0
  6. package/templates/base/.cursor/hooks/load-project-plugins.sh +3 -0
  7. package/templates/base/.cursor/hooks.json +6 -0
  8. package/templates/base/.github/workflows/control-band.yml +4 -2
  9. package/templates/base/.github/workflows/spec-on-intent-merge.yml +2 -1
  10. package/templates/base/REVIEW.md +1 -1
  11. package/templates/base/SETUP.md +13 -11
  12. package/templates/base/intent/README.md +1 -1
  13. package/templates/base/plugins/sdlc/claude-code/.claude-plugin/plugin.json +7 -0
  14. package/templates/base/plugins/sdlc/claude-code/agents/verifier.md +7 -0
  15. package/templates/base/plugins/sdlc/claude-code/hooks/check-reply-shape.sh +53 -0
  16. package/templates/base/plugins/sdlc/claude-code/hooks/hooks.json +15 -0
  17. package/templates/base/{.agents → plugins/sdlc/claude-code}/skills/brand-policy/SKILL.md +1 -3
  18. package/templates/base/{.agents → plugins/sdlc/claude-code}/skills/compliance-policy/SKILL.md +0 -2
  19. package/templates/base/plugins/sdlc/claude-code/skills/sdlc-help/SKILL.md +23 -0
  20. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/SKILL.md +22 -11
  21. package/templates/base/plugins/sdlc/claude-code/skills/sdlc-mode/playbooks/build.md +46 -0
  22. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/playbooks/deploy.md +4 -4
  23. package/templates/base/{.claude/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/playbooks/design.md +7 -7
  24. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/playbooks/fix.md +7 -7
  25. package/templates/base/{.agents/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/playbooks/maintain.md +6 -8
  26. package/templates/base/plugins/sdlc/claude-code/skills/sdlc-mode/playbooks/open-pr.md +17 -0
  27. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/playbooks/plan.md +5 -5
  28. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/playbooks/question.md +2 -2
  29. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/claude-code/skills/sdlc-mode}/playbooks/review.md +7 -8
  30. package/templates/base/{.claude → plugins/sdlc/claude-code}/skills/security-policy/SKILL.md +0 -2
  31. package/templates/base/plugins/sdlc/claude-code/skills/setup-sdlc/SKILL.md +51 -0
  32. package/templates/base/{.agents → plugins/sdlc/claude-code}/skills/ux-policy/SKILL.md +0 -2
  33. package/templates/base/plugins/sdlc/cursor/.cursor-plugin/plugin.json +10 -0
  34. package/templates/base/plugins/sdlc/cursor/agents/verifier.md +7 -0
  35. package/templates/base/plugins/sdlc/cursor/hooks/check-reply-shape.sh +53 -0
  36. package/templates/base/plugins/sdlc/cursor/hooks/hooks.json +16 -0
  37. package/templates/base/{.cursor → plugins/sdlc/cursor}/skills/brand-policy/SKILL.md +1 -3
  38. package/templates/base/{.claude → plugins/sdlc/cursor}/skills/compliance-policy/SKILL.md +0 -2
  39. package/templates/base/plugins/sdlc/cursor/skills/sdlc-help/SKILL.md +23 -0
  40. package/templates/base/{.claude/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/SKILL.md +22 -11
  41. package/templates/base/plugins/sdlc/cursor/skills/sdlc-mode/playbooks/build.md +46 -0
  42. package/templates/base/{.agents/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/playbooks/deploy.md +4 -4
  43. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/playbooks/design.md +7 -7
  44. package/templates/base/{.agents/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/playbooks/fix.md +7 -7
  45. package/templates/base/{.cursor/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/playbooks/maintain.md +6 -8
  46. package/templates/base/plugins/sdlc/cursor/skills/sdlc-mode/playbooks/open-pr.md +17 -0
  47. package/templates/base/{.agents/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/playbooks/plan.md +5 -5
  48. package/templates/base/{.agents/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/playbooks/question.md +2 -2
  49. package/templates/base/{.agents/skills/sdlc → plugins/sdlc/cursor/skills/sdlc-mode}/playbooks/review.md +7 -8
  50. package/templates/base/{.agents → plugins/sdlc/cursor}/skills/security-policy/SKILL.md +0 -2
  51. package/templates/base/plugins/sdlc/cursor/skills/setup-sdlc/SKILL.md +51 -0
  52. package/templates/base/{.claude → plugins/sdlc/cursor}/skills/ux-policy/SKILL.md +0 -2
  53. package/templates/base/scripts/check-plan.ts +1 -1
  54. package/templates/base/scripts/sync-agent-rules.ts +0 -58
  55. package/templates/nestjs/AGENTS.md +5 -3
  56. package/templates/nestjs/CONTRIBUTING.md +0 -1
  57. package/templates/nestjs/package.json +0 -1
  58. package/templates/nextjs/AGENTS.md +5 -3
  59. package/templates/nextjs/CONTRIBUTING.md +0 -1
  60. package/templates/nextjs/package.json +0 -1
  61. package/templates/nodejs/AGENTS.md +5 -3
  62. package/templates/nodejs/CONTRIBUTING.md +0 -1
  63. package/templates/nodejs/package.json +0 -1
  64. package/templates/payload/.agents/review.md +1 -1
  65. package/templates/payload/AGENTS.md +5 -3
  66. package/templates/payload/CONTRIBUTING.md +0 -1
  67. package/templates/payload/REVIEW.md +1 -1
  68. package/templates/payload/package.json +0 -1
  69. package/templates/turborepo/.agents/review.md +1 -1
  70. package/templates/turborepo/AGENTS.md +5 -3
  71. package/templates/turborepo/CONTRIBUTING.md +0 -1
  72. package/templates/turborepo/REVIEW.md +1 -1
  73. package/templates/turborepo/package.json +0 -1
  74. package/templates/base/.agents/agents.json +0 -7
  75. package/templates/base/.agents/skill-evals/README.md +0 -42
  76. package/templates/base/.agents/skill-evals/sdlc/answers-question-without-writing/case.yaml +0 -11
  77. package/templates/base/.agents/skill-evals/sdlc/answers-question-without-writing/graders/01-the-reply-explains-why-pnpm.md +0 -7
  78. package/templates/base/.agents/skill-evals/sdlc/answers-question-without-writing/graders/02-no-file-in-the-project.md +0 -7
  79. package/templates/base/.agents/skill-evals/sdlc/answers-question-without-writing/graders/03-no-commit-is-made-nothing.md +0 -7
  80. package/templates/base/.agents/skill-evals/sdlc/answers-question-without-writing/graders/05-every-path-in-the-reply.md +0 -7
  81. package/templates/base/.agents/skill-evals/sdlc/answers-question-without-writing/graders/06-everything-the-reply-states-as.md +0 -7
  82. package/templates/base/.agents/skill-evals/sdlc/answers-question-without-writing/prompt.md +0 -8
  83. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/case.yaml +0 -11
  84. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/fixture.md +0 -1
  85. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/graders/01-work-happens-on-the-plan-branch.md +0 -7
  86. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/graders/02-the-plan-is-implemented-and-checked.md +0 -7
  87. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/graders/03-the-branch-is-pushed.md +0 -7
  88. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/graders/04-the-reply-lists-three-playbooks.md +0 -7
  89. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/graders/05-no-approval-and-no-merge.md +0 -7
  90. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/graders/06-the-reply-ends-at-the-code-owner.md +0 -7
  91. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/graders/07-the-plan-names-the-engineer.md +0 -7
  92. package/templates/base/.agents/skill-evals/sdlc/build-continues-from-an-accepted-plan/prompt.md +0 -8
  93. package/templates/base/.agents/skill-evals/sdlc/build-interviews-before-planning/case.yaml +0 -70
  94. package/templates/base/.agents/skill-evals/sdlc/build-interviews-before-planning/fixture.md +0 -1
  95. package/templates/base/.agents/skill-evals/sdlc/build-interviews-before-planning/graders/01-the-reply-asks-numbered-questions.md +0 -7
  96. package/templates/base/.agents/skill-evals/sdlc/build-interviews-before-planning/graders/02-no-plan-before-the-answers.md +0 -7
  97. package/templates/base/.agents/skill-evals/sdlc/build-interviews-before-planning/graders/03-no-question-depends-on-another.md +0 -7
  98. package/templates/base/.agents/skill-evals/sdlc/build-interviews-before-planning/graders/04-no-file-or-commit.md +0 -7
  99. package/templates/base/.agents/skill-evals/sdlc/build-interviews-before-planning/prompt.md +0 -8
  100. package/templates/base/.agents/skill-evals/sdlc/build-plans-and-waits-for-the-engineer/case.yaml +0 -67
  101. package/templates/base/.agents/skill-evals/sdlc/build-plans-and-waits-for-the-engineer/fixture.md +0 -1
  102. package/templates/base/.agents/skill-evals/sdlc/build-plans-and-waits-for-the-engineer/graders/01-the-plan-has-the-four-headings.md +0 -7
  103. package/templates/base/.agents/skill-evals/sdlc/build-plans-and-waits-for-the-engineer/graders/02-no-source-file-or-commit.md +0 -7
  104. package/templates/base/.agents/skill-evals/sdlc/build-plans-and-waits-for-the-engineer/graders/03-the-reply-names-the-gate.md +0 -7
  105. package/templates/base/.agents/skill-evals/sdlc/build-plans-and-waits-for-the-engineer/prompt.md +0 -10
  106. package/templates/base/.agents/skill-evals/sdlc/deploy-stops-at-the-production-gate/case.yaml +0 -7
  107. package/templates/base/.agents/skill-evals/sdlc/deploy-stops-at-the-production-gate/fixture.md +0 -1
  108. package/templates/base/.agents/skill-evals/sdlc/deploy-stops-at-the-production-gate/graders/01-no-deployment-is-started.md +0 -7
  109. package/templates/base/.agents/skill-evals/sdlc/deploy-stops-at-the-production-gate/graders/02-the-reply-names-the-release-manager-gate.md +0 -7
  110. package/templates/base/.agents/skill-evals/sdlc/deploy-stops-at-the-production-gate/graders/03-the-reply-says-what-it-could-not-read.md +0 -7
  111. package/templates/base/.agents/skill-evals/sdlc/deploy-stops-at-the-production-gate/prompt.md +0 -8
  112. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/case.yaml +0 -12
  113. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/graders/01-a-file-intentkebabcasenameintentmd-exists-with.md +0 -7
  114. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/graders/02-the-reply-shows-the-draft.md +0 -7
  115. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/graders/03-no-commit-is-made-nothing.md +0 -7
  116. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/graders/04-reply-lists-the-playbook-steps.md +0 -7
  117. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/graders/06-every-path-in-the-reply.md +0 -7
  118. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/graders/07-the-drafts-open-questions-section.md +0 -7
  119. package/templates/base/.agents/skill-evals/sdlc/drafts-intent-and-waits-for-yes/prompt.md +0 -10
  120. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/case.yaml +0 -33
  121. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/fixture.md +0 -1
  122. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/graders/01-the-reply-shows-the-reproduction-output.md +0 -7
  123. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/graders/02-the-reply-names-one-cause-with-evidence.md +0 -7
  124. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/graders/03-the-plan-has-the-four-headings.md +0 -7
  125. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/graders/04-no-file-or-commit.md +0 -7
  126. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/graders/05-the-reply-names-the-gate.md +0 -7
  127. package/templates/base/.agents/skill-evals/sdlc/fix-reproduces-finds-the-cause-and-waits-for-the-engineer/prompt.md +0 -8
  128. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/case.yaml +0 -11
  129. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/graders/01-the-first-message-restates-the.md +0 -7
  130. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/graders/02-the-reply-asks-numbered-questions.md +0 -7
  131. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/graders/03-no-intentmd-is-written-before.md +0 -7
  132. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/graders/04-reply-lists-the-playbook-steps.md +0 -7
  133. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/graders/05-no-commit-is-made-nothing.md +0 -7
  134. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/graders/07-every-path-in-the-reply.md +0 -7
  135. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/graders/08-no-question-in-the-round.md +0 -7
  136. package/templates/base/.agents/skill-evals/sdlc/interviews-before-writing-intent/prompt.md +0 -8
  137. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/case.yaml +0 -14
  138. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/fixture.md +0 -1
  139. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/graders/01-the-intent-has-the-five-headings.md +0 -7
  140. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/graders/02-problem-holds-the-error-and-where.md +0 -7
  141. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/graders/03-unverified-cause-is-an-open-question.md +0 -7
  142. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/graders/04-no-source-file-is-changed.md +0 -7
  143. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/graders/05-a-branch-is-pushed-and-the-gate-is-named.md +0 -7
  144. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/graders/06-the-person-is-asked-no-question.md +0 -7
  145. package/templates/base/.agents/skill-evals/sdlc/maintain-writes-intent-from-a-finding/prompt.md +0 -8
  146. package/templates/base/.agents/skill-evals/sdlc/reported-problem-starts-the-plan/case.yaml +0 -11
  147. package/templates/base/.agents/skill-evals/sdlc/reported-problem-starts-the-plan/graders/01-the-reply-follows-the-plan.md +0 -7
  148. package/templates/base/.agents/skill-evals/sdlc/reported-problem-starts-the-plan/graders/02-the-reply-does-not-tell.md +0 -7
  149. package/templates/base/.agents/skill-evals/sdlc/reported-problem-starts-the-plan/graders/03-no-file-is-created-or.md +0 -7
  150. package/templates/base/.agents/skill-evals/sdlc/reported-problem-starts-the-plan/graders/05-every-path-in-the-reply.md +0 -7
  151. package/templates/base/.agents/skill-evals/sdlc/reported-problem-starts-the-plan/prompt.md +0 -8
  152. package/templates/base/.agents/skill-evals/sdlc/request-that-fits-no-row/case.yaml +0 -10
  153. package/templates/base/.agents/skill-evals/sdlc/request-that-fits-no-row/fixture.md +0 -1
  154. package/templates/base/.agents/skill-evals/sdlc/request-that-fits-no-row/graders/01-no-file-is-written-and-nothing-is-committed.md +0 -7
  155. package/templates/base/.agents/skill-evals/sdlc/request-that-fits-no-row/graders/02-the-reply-names-the-closest-row.md +0 -7
  156. package/templates/base/.agents/skill-evals/sdlc/request-that-fits-no-row/graders/03-the-reply-is-short.md +0 -7
  157. package/templates/base/.agents/skill-evals/sdlc/request-that-fits-no-row/prompt.md +0 -8
  158. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/case.yaml +0 -79
  159. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/fixture.md +0 -1
  160. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/graders/01-findings-have-pass-severity-and-location.md +0 -7
  161. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/graders/02-no-approval-and-no-merge.md +0 -7
  162. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/graders/03-the-reply-names-the-code-owner-gate.md +0 -7
  163. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/graders/04-nothing-is-pushed-or-changed.md +0 -7
  164. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/graders/05-the-review-runs-in-a-fresh-context.md +0 -7
  165. package/templates/base/.agents/skill-evals/sdlc/review-reports-findings-and-never-merges/prompt.md +0 -8
  166. package/templates/base/.agents/skill-evals/sdlc/spec-for-unmerged-intent-stops/case.yaml +0 -41
  167. package/templates/base/.agents/skill-evals/sdlc/spec-for-unmerged-intent-stops/fixture.md +0 -1
  168. package/templates/base/.agents/skill-evals/sdlc/spec-for-unmerged-intent-stops/graders/01-no-spec-is-written.md +0 -7
  169. package/templates/base/.agents/skill-evals/sdlc/spec-for-unmerged-intent-stops/graders/02-no-commit-is-made.md +0 -7
  170. package/templates/base/.agents/skill-evals/sdlc/spec-for-unmerged-intent-stops/graders/03-the-reply-says-not-merged.md +0 -7
  171. package/templates/base/.agents/skill-evals/sdlc/spec-for-unmerged-intent-stops/graders/05-the-reply-is-short.md +0 -7
  172. package/templates/base/.agents/skill-evals/sdlc/spec-for-unmerged-intent-stops/prompt.md +0 -8
  173. package/templates/base/.agents/skill-evals/sdlc/statement-without-command-starts-no-work/case.yaml +0 -11
  174. package/templates/base/.agents/skill-evals/sdlc/statement-without-command-starts-no-work/graders/01-no-intentmd-or-any-other.md +0 -7
  175. package/templates/base/.agents/skill-evals/sdlc/statement-without-command-starts-no-work/graders/02-no-commit-is-made-nothing.md +0 -7
  176. package/templates/base/.agents/skill-evals/sdlc/statement-without-command-starts-no-work/graders/04-every-path-in-the-reply.md +0 -7
  177. package/templates/base/.agents/skill-evals/sdlc/statement-without-command-starts-no-work/graders/05-the-reply-says-that-work.md +0 -7
  178. package/templates/base/.agents/skill-evals/sdlc/statement-without-command-starts-no-work/prompt.md +0 -8
  179. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/case.yaml +0 -41
  180. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/fixture.md +0 -1
  181. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/graders/01-the-spec-has-the-five-headings.md +0 -7
  182. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/graders/02-policies-has-one-line-per-policy.md +0 -7
  183. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/graders/03-no-policy-is-called-unwritten.md +0 -7
  184. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/graders/04-a-branch-is-pushed-for-review.md +0 -7
  185. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/graders/05-the-reply-names-the-gate.md +0 -7
  186. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/graders/07-no-merge-is-made.md +0 -7
  187. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/graders/08-the-four-policies-are-read-before-writing.md +0 -7
  188. package/templates/base/.agents/skill-evals/sdlc/writes-spec-from-merged-intent/prompt.md +0 -8
  189. package/templates/base/.agents/skill-evals/sdlc-help/explains-how-to-start-work/case.yaml +0 -10
  190. package/templates/base/.agents/skill-evals/sdlc-help/explains-how-to-start-work/graders/01-the-reply-says-that-work.md +0 -7
  191. package/templates/base/.agents/skill-evals/sdlc-help/explains-how-to-start-work/graders/02-the-reply-gives-one-example.md +0 -7
  192. package/templates/base/.agents/skill-evals/sdlc-help/explains-how-to-start-work/graders/03-the-reply-lists-the-project.md +0 -7
  193. package/templates/base/.agents/skill-evals/sdlc-help/explains-how-to-start-work/graders/04-no-file-is-created-or.md +0 -7
  194. package/templates/base/.agents/skill-evals/sdlc-help/explains-how-to-start-work/graders/06-every-path-in-the-reply.md +0 -7
  195. package/templates/base/.agents/skill-evals/sdlc-help/explains-how-to-start-work/prompt.md +0 -8
  196. package/templates/base/.agents/skill-evals/sdlc-help/unknown-playbook-is-not-invented/case.yaml +0 -9
  197. package/templates/base/.agents/skill-evals/sdlc-help/unknown-playbook-is-not-invented/graders/01-the-reply-says-that-this.md +0 -7
  198. package/templates/base/.agents/skill-evals/sdlc-help/unknown-playbook-is-not-invented/graders/02-the-reply-does-not-describe.md +0 -7
  199. package/templates/base/.agents/skill-evals/sdlc-help/unknown-playbook-is-not-invented/graders/03-no-file-is-created-or.md +0 -7
  200. package/templates/base/.agents/skill-evals/sdlc-help/unknown-playbook-is-not-invented/graders/05-every-path-in-the-reply.md +0 -7
  201. package/templates/base/.agents/skill-evals/sdlc-help/unknown-playbook-is-not-invented/prompt.md +0 -8
  202. package/templates/base/.agents/skill-evals/sdlc-help/work-request-is-sent-to-sdlc/case.yaml +0 -10
  203. package/templates/base/.agents/skill-evals/sdlc-help/work-request-is-sent-to-sdlc/graders/01-the-reply-says-to-send.md +0 -7
  204. package/templates/base/.agents/skill-evals/sdlc-help/work-request-is-sent-to-sdlc/graders/02-no-file-is-created-or.md +0 -7
  205. package/templates/base/.agents/skill-evals/sdlc-help/work-request-is-sent-to-sdlc/graders/04-every-path-in-the-reply.md +0 -7
  206. package/templates/base/.agents/skill-evals/sdlc-help/work-request-is-sent-to-sdlc/prompt.md +0 -8
  207. package/templates/base/.agents/skills/sdlc/SKILL.md +0 -54
  208. package/templates/base/.agents/skills/sdlc/playbooks/build.md +0 -46
  209. package/templates/base/.agents/skills/sdlc/playbooks/design.md +0 -40
  210. package/templates/base/.agents/skills/sdlc/playbooks/open-pr.md +0 -15
  211. package/templates/base/.agents/skills/sdlc-help/SKILL.md +0 -23
  212. package/templates/base/.claude/skills/brand-policy/SKILL.md +0 -18
  213. package/templates/base/.claude/skills/sdlc/playbooks/build.md +0 -46
  214. package/templates/base/.claude/skills/sdlc/playbooks/deploy.md +0 -9
  215. package/templates/base/.claude/skills/sdlc/playbooks/fix.md +0 -23
  216. package/templates/base/.claude/skills/sdlc/playbooks/maintain.md +0 -20
  217. package/templates/base/.claude/skills/sdlc/playbooks/open-pr.md +0 -15
  218. package/templates/base/.claude/skills/sdlc/playbooks/plan.md +0 -33
  219. package/templates/base/.claude/skills/sdlc/playbooks/question.md +0 -8
  220. package/templates/base/.claude/skills/sdlc/playbooks/review.md +0 -17
  221. package/templates/base/.claude/skills/sdlc-help/SKILL.md +0 -23
  222. package/templates/base/.cursor/BUGBOT.md +0 -23
  223. package/templates/base/.cursor/skills/compliance-policy/SKILL.md +0 -25
  224. package/templates/base/.cursor/skills/sdlc/playbooks/build.md +0 -46
  225. package/templates/base/.cursor/skills/sdlc/playbooks/open-pr.md +0 -15
  226. package/templates/base/.cursor/skills/sdlc-help/SKILL.md +0 -23
  227. package/templates/base/.cursor/skills/security-policy/SKILL.md +0 -41
  228. package/templates/base/.cursor/skills/ux-policy/SKILL.md +0 -21
  229. package/templates/base/.github/workflows/agent-evals.yml +0 -46
  230. package/templates/base/scripts/run-agent-evals.ts +0 -1197
  231. package/templates/nestjs/.agents/agents/verifier.md +0 -1
  232. package/templates/nestjs/.claude/agents/verifier.md +0 -7
  233. package/templates/nestjs/.cursor/agents/verifier.md +0 -7
  234. package/templates/nextjs/.agents/agents/verifier.md +0 -1
  235. package/templates/nextjs/.claude/agents/verifier.md +0 -7
  236. package/templates/nextjs/.cursor/agents/verifier.md +0 -7
  237. package/templates/nodejs/.agents/agents/verifier.md +0 -1
  238. package/templates/nodejs/.claude/agents/verifier.md +0 -7
  239. package/templates/nodejs/.cursor/agents/verifier.md +0 -7
  240. package/templates/payload/.agents/agents/verifier.md +0 -1
  241. package/templates/payload/.claude/agents/verifier.md +0 -7
  242. package/templates/payload/.cursor/agents/verifier.md +0 -7
  243. package/templates/turborepo/.agents/agents/verifier.md +0 -1
  244. package/templates/turborepo/.claude/agents/verifier.md +0 -7
  245. package/templates/turborepo/.cursor/agents/verifier.md +0 -7
@@ -1,17 +0,0 @@
1
- # Review phase: review the pull request and drive it to green
2
-
3
- 1. Find what to review: the pull request this session just opened, or the pull request or branch the request names. When there is no pull request, or this session cannot reach its host, review the branch's diff against the default branch and put the findings in your reply in place of a comment.
4
- 2. Review with a fresh context. Start a subagent that has not seen the work. Give it only the diff, `REVIEW.md`, and the change's `intent/<change>/spec.md` and `plan.md`. When you cannot start a subagent, read the diff again from the first line as if someone else wrote it. The review runs each pass in `REVIEW.md` and reports each finding with its pass, **Important** or **Nit**, `path:line`, and the evidence. A change that is not a fix, an intent, or a spec, and has no `spec.md` or no `plan.md`, is itself a finding.
5
- 3. Post the findings as one comment on the pull request, most severe first. Write "No findings" when there are none. A finding does not decide the merge. When a finding flags a mistake that an earlier review of this project flagged too, its correction goes into `AGENTS.md` under **Things Claude gets wrong** as part of this review: in the push of step 4, or, on a pull request or a branch this session did not create, as the exact line in this comment.
6
- 4. On a pull request or a branch that this session did not create, change nothing and push nothing. Skip the rest of this step, and in step 5 only read and answer. Otherwise, fix every Important finding, and every Nit that is correct while the pull request has no code owner's approval yet. Run the checks under **Verifying your work** in `AGENTS.md`, and push. Answer each finding you do not fix with the reason.
7
- 5. Sweep the pull request until every check passes and no comment is unanswered. In each pass:
8
- - **A conflict, or a branch behind the default branch:** merge the default branch into the pull request's branch and resolve it. Run the checks under **Verifying your work** in `AGENTS.md`, and push. Never rebase or force-push a branch that someone else also pushes to.
9
- - **A failing check:** read its log and find the cause. When the same check fails on the default branch, or the log shows an outage outside this change, the failure is not this change's. Say which check and why in one comment, and go on. Otherwise fix the cause and push. Run a check again at most once, and only to tell an outage from a real failure. Never skip, disable, or weaken a test to pass a check.
10
- - **A person's comment:** make the change it asks for when it is small and local, push, and answer it. For a larger change, answer with what you would do, and go on with the sweep. The person decides in their reply or at the code owner's review.
11
- - **A bot's comment:** treat it as a claim. Reproduce it or trace it in the code first. Fix what is real, and answer the rest with what you checked.
12
- - **A nit:** never push for nits alone, because a push can dismiss the code owner's approval. Answer it, and carry the fix in the next push that has another reason.
13
- - **A push that dismissed the code owner's approval:** say once that the pull request needs that approval again.
14
-
15
- 6. **Gate: a code owner approves the pull request, and a person merges it.** You never approve it and never merge it. Report the pull request's URL, or the branch's name when there is none, and say it waits only on the code owner. When a new comment or a failing check arrives, go back to step 5. Subscribe to the pull request's events where your tool can. Otherwise say that a person sends `/sdlc review` with the pull request when something changes.
16
-
17
- **Next:** `.agents/skills/sdlc/playbooks/deploy.md`; the project's deploy workflow, or an agent when a person asks; when the pull request is merged.
@@ -1,23 +0,0 @@
1
- ---
2
- name: sdlc-help
3
- description: Explains how this project's workflow runs and how to use /sdlc. It answers and starts no work. Run it with /sdlc-help.
4
- disable-model-invocation: true
5
- ---
6
-
7
- # SDLC help
8
-
9
- 1. When the message asks for work rather than how, open no project file. The whole reply is two lines: this command starts no work; and the message to send instead, which is `/sdlc` followed by their own words.
10
- 2. When the topic is unclear, ask one question with these choices: how the workflow runs and starting work, keeping `/sdlc` on for a session, fixing a defect in behaviour that already exists, who decides at each gate, a mistake the agent repeats, or company policy.
11
- 3. Read the files the topic points to before you answer. When a file disagrees with the map below, the file is right.
12
- 4. When the person asks about a playbook, a command, or a file that this project does not have, the whole reply is three lines: it does not exist; what exists instead, as one file path; and one message they can send next. Stop there. Do not explain the topic from other files.
13
- 5. Otherwise answer, then give one message the person can send as is, with real words from their question and no blanks to fill in, then list the files the answer came from.
14
- 6. Write the reply as the **Write replies a person can check** convention in `AGENTS.md` says.
15
-
16
- ## Map
17
-
18
- - **How the workflow runs, and starting work:** `intent/README.md` and the table in `.agents/skills/sdlc/SKILL.md`.
19
- - **Keeping `/sdlc` on for a session:** a person starts it; nothing routes work into it. In Claude Code, an invoked skill's content stays in the conversation across later turns, and after a compaction Claude Code re-attaches the most recent invocation within a token budget, so a person types `/sdlc` again only to restore the full text. In Cursor, pick `/sdlc` from the `/` menu and press Option+Enter (Mac) or Alt+Enter (Windows) instead of Enter, which makes it a custom mode that stays in context until the person exits it. Plain Enter attaches it to one message.
20
- - **Fixing a defect in behaviour that already exists:** `.agents/skills/sdlc/playbooks/fix.md` is the path with no intent and no spec, for a person's request: a plan an engineer accepts, then a failing test, the fix, and a pull request. A finding from a job always starts at intent. Every other change runs intent, spec, plan, then build.
21
- - **Who decides:** `.agents/rules/agent-owned-work.md` and `.github/CODEOWNERS`.
22
- - **A mistake the agent repeats:** **Things Claude gets wrong** in `AGENTS.md`.
23
- - **Company policy:** the policy skills in `.agents/skills/`, and `.github/CODEOWNERS` for each one's owner.
@@ -1,23 +0,0 @@
1
- # Review rules
2
-
3
- Review pull requests against the project's agent guide and rules:
4
-
5
- - [Review instructions](../.agents/review.md)
6
- - [Agent guide](../AGENTS.md)
7
- - [Agent-Owned Work](../.agents/rules/agent-owned-work.md)
8
- - [Owned Checks](../.agents/rules/automation-owned-checks.md)
9
- - [Required Comments](../.agents/rules/code-comments.md)
10
- - [Codebase Hygiene](../.agents/rules/codebase-hygiene.md)
11
- - [Constitution Changes](../.agents/rules/constitution-changes.md)
12
- - [Current State](../.agents/rules/current-state-authority.md)
13
- - [Demand-Driven Configuration](../.agents/rules/demand-driven-configuration.md)
14
- - [Dependencies](../.agents/rules/dependency-security.md)
15
- - [Descriptive Naming](../.agents/rules/descriptive-naming.md)
16
- - [Test Admission](../.agents/rules/deterministic-testing.md)
17
- - [Diagnostics](../.agents/rules/diagnostics-and-error-handling.md)
18
- - [Evidence](../.agents/rules/evidence-before-claims.md)
19
- - [Findings](../.agents/rules/no-suppression.md)
20
- - [Platform and Library First](../.agents/rules/platform-and-library-first.md)
21
- - [Sibling Style](../.agents/rules/single-author-style.md)
22
- - [Logging](../.agents/rules/structured-logging.md)
23
- - [TypeScript-First](../.agents/rules/typescript-first.md)
@@ -1,25 +0,0 @@
1
- ---
2
- name: compliance-policy
3
- description: Apply the organization's compliance policy. Use whenever writing or reviewing a spec.md, a plan, or code that this policy covers.
4
- ---
5
-
6
- # Compliance policy
7
-
8
- Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
-
10
- Standard: the eight basic principles of the [OECD Guidelines Governing the Protection of Privacy and Transborder Flows of Personal Data](https://legalinstruments.oecd.org/en/instruments/OECD-LEGAL-0188) (adopted 1980, revised 2013), paragraphs 7 to 14. This is the default and names no country's law; the owner adds the laws and contracts that bind the organization by editing this file. The points below summarize those paragraphs; the standard's text governs.
11
-
12
- ## Rules
13
-
14
- 1. A change that collects, stores, shows, sends, or deletes no data about a person meets this policy; say "Does not apply" and why.
15
- 2. For any other change, the spec lists each kind of personal data the change touches and answers the eight points below for it. Each answer becomes a requirement.
16
- 1. **Collection limitation:** what is collected, by what lawful and fair means, and how the person knows or consents.
17
- 2. **Data quality:** why each field is relevant to the purpose, and how it is kept accurate and up to date.
18
- 3. **Purpose specification:** the purpose, stated no later than the moment of collection.
19
- 4. **Use limitation:** who else receives the data. A use that is incompatible with the stated purpose needs the person's consent or the authority of law.
20
- 5. **Security safeguards:** how the data is protected against loss and against unauthorised access, destruction, use, modification, or disclosure. The security policy gives the rules.
21
- 6. **Openness:** where a person can read what data is held, its main purposes, and who controls it.
22
- 7. **Individual participation:** how a person learns whether data about them is held, gets it within a reasonable time and at no excessive charge, is given reasons when a request is denied, and challenges it; when the challenge succeeds, the data is erased, rectified, completed, or amended.
23
- 8. **Accountability:** who in the organization answers for these points.
24
- 3. A point the spec cannot answer from the files is an area of concern. Never guess a legal basis.
25
- 4. Whether a specific law applies is a decision for the owner; raise it as an area of concern.
@@ -1,46 +0,0 @@
1
- # Build phase: plan, then implement
2
-
3
- This playbook turns a merged spec into a plan the engineer accepts, and then into working code.
4
-
5
- 1. Find the change: the `intent/<change>/` folder whose `spec.md` or `plan.md` the request names. Its `spec.md` must be on the default branch beside its `intent.md`. In each case below, say only that, in two or three lines, and stop: write no file.
6
- - The request names no change, or the folder has no `spec.md` on any branch: list each `intent/*/` on the default branch that has a `spec.md` and no `plan.md`, or say that there is none.
7
- - The spec exists only on another branch: say that the spec is not merged yet, and name that branch.
8
- - `intent/<change>/plan.md` is already on the default branch: say that the plan is merged, name the file, and say that the change is built only when each requirement of `spec.md` is checked against the tree.
9
-
10
- When the request is a bug fix with no spec, none of these cases applies: follow `.agents/skills/sdlc/playbooks/fix.md` instead.
11
-
12
- 2. When `intent/<change>/plan.md` exists on a branch that is not merged, check out that branch. When the request says the plan is accepted, go to step 6. Otherwise show that plan and go to step 5.
13
- 3. Read `intent.md`, `spec.md`, the four policies listed in `.agents/skills/sdlc/playbooks/design.md` step 2, and the code the change touches. Then interview the engineer until they have said four things: the files the change touches, the order of the work, the tests that prove it, and each option they rule out.
14
- - **When all four are already said, in the request or in the files, go to step 4 in the same turn.**
15
- - **When one is missing, ask and stop.** Write no plan in that turn. Ask in rounds, as step 3 of `.agents/skills/sdlc/playbooks/plan.md` does: numbered questions, each with a recommended answer or "No recommendation". Wait for the answers, and build the next round on them.
16
- 4. Write the plan from the template below. Use exactly the template's headings. The date in the title is the date of the last commit to `intent/<change>/intent.md`: `git log -1 --format=%cs -- intent/<change>/intent.md`. An engineer who has never seen this conversation must be able to implement the change from the plan alone.
17
- - **Files that change:** every file, marked new, changed, or deleted, with one line on what it does afterwards.
18
- - **Order of work:** numbered steps. Each ends with the check that proves it.
19
- - **Risks:** what the change could break, which step is the riskiest, and each option you chose not to take and why.
20
- - **Proof:** the tests and commands that show every requirement of the spec is met, by requirement number, and the test or review step for each policy requirement the spec cites.
21
-
22
- Show the whole plan and name the file only as `intent/<change>/plan.md`. In plan mode you cannot write the file. Show the plan as the plan.
23
-
24
- 5. **Gate: the engineer accepts the plan.** Ask whether an engineer could build from it, and for their GitHub handle when you cannot read it. Revise until they say yes. Change no code and commit nothing before that yes. In plan mode, approving the plan is that yes. When the spec classes the change as higher risk, say that a tech lead or an architect accepts the plan with the engineer.
25
- 6. Create the branch as `AGENTS.md` says, unless step 2 checked one out. Set the plan's `Accepted by:` line, under its title, to the handle of the engineer who said yes in step 5 or whom the request names, and commit `intent/<change>/plan.md` before any other change. In that commit, set the spec's status line to `Status: accepted.`, because its pull request is merged.
26
- 7. Implement the plan in its order. After each step, run the check that proves it and fix what fails. For a bug fix, follow **Start a bug fix with a failing test** in `AGENTS.md`: commit the test on a `fix/` branch, and the gate then blocks test edits. When the work departs from the plan, change `plan.md` in the same commit. When the change meets the last requirement of `spec.md`, set `Status: done.` in `intent.md` and `spec.md`.
27
- 8. Run every check under **Verifying your work** in `AGENTS.md` and keep the output. Every check must pass: fix the code, and never skip, delete, or weaken a test. Then look for `.claude/agents/verifier.md` or `.cursor/agents/verifier.md`: when it exists, run the `verifier` subagent and fix what it reports; when you cannot start a subagent, do what that file says yourself. For UI work, when `.mcp.json` lists a `playwright` server, also close the loop with a visual check: start the app, give the browser tool the page and the mock the spec or the request names, screenshot, compare, and adjust, and repeat until it matches; two or three rounds is normal. When a check cannot run in this session, say which one and why, and never report it as passed.
28
- 9. Go on in the same turn, without asking: follow `.agents/skills/sdlc/playbooks/open-pr.md`, and then `.agents/skills/sdlc/playbooks/review.md`. Pushing the branch and opening the pull request are part of this task.
29
-
30
- **Next:** `.agents/skills/sdlc/playbooks/open-pr.md`; an agent; in the same turn, as soon as step 8 passes.
31
-
32
- ## Template
33
-
34
- ```markdown
35
- # Plan: <title> (from intent.md <YYYY-MM-DD>)
36
-
37
- Accepted by: @<engineer>.
38
-
39
- ## Files that change
40
-
41
- ## Order of work
42
-
43
- ## Risks
44
-
45
- ## Proof
46
- ```
@@ -1,15 +0,0 @@
1
- # Open the pull request
2
-
3
- 1. Clean the diff against the default branch. Remove debug output, commented-out code, changes the plan does not name, and comments that `.agents/rules/code-comments.md` does not allow.
4
- 2. Do what `AGENTS.md` and `CONTRIBUTING.md` require for this kind of change. Add a release note only when they say this change needs one; most changes need none.
5
- 3. When step 1 or 2 changed a file, run the checks under **Verifying your work** in `AGENTS.md` again. When one fails, fix the code and run it again. Commit only when they pass.
6
- 4. Push the branch and open the pull request ready for review, as `AGENTS.md` says for branches and pull requests. When the branch already has a pull request, update that one. Fill the body from `.github/pull_request_template.md`:
7
- - what changed and why, with the paths of `intent/<change>/spec.md` and `plan.md` when they exist;
8
- - `Closes #<issue>` for each issue that already exists and that the change closes. When there is none, write what the template's own section asks for, and leave it out when the template has no such section. Never open an issue to get a number;
9
- - each check you ran, with its result copied from the output.
10
-
11
- When you cannot open a pull request from this session, say so, give the pushed branch's name, and go on to step 5: the review reads the pushed branch's diff. When you cannot push either, say so and go on to step 5 the same way: the review reads the local branch's diff. Neither case ends the turn.
12
-
13
- 5. Go on in the same turn, without asking: follow `.agents/skills/sdlc/playbooks/review.md`.
14
-
15
- **Next:** `.agents/skills/sdlc/playbooks/review.md`; an agent; in the same turn, as soon as step 4 is done.
@@ -1,23 +0,0 @@
1
- ---
2
- name: sdlc-help
3
- description: Explains how this project's workflow runs and how to use /sdlc. It answers and starts no work. Run it with /sdlc-help.
4
- disable-model-invocation: true
5
- ---
6
-
7
- # SDLC help
8
-
9
- 1. When the message asks for work rather than how, open no project file. The whole reply is two lines: this command starts no work; and the message to send instead, which is `/sdlc` followed by their own words.
10
- 2. When the topic is unclear, ask one question with these choices: how the workflow runs and starting work, keeping `/sdlc` on for a session, fixing a defect in behaviour that already exists, who decides at each gate, a mistake the agent repeats, or company policy.
11
- 3. Read the files the topic points to before you answer. When a file disagrees with the map below, the file is right.
12
- 4. When the person asks about a playbook, a command, or a file that this project does not have, the whole reply is three lines: it does not exist; what exists instead, as one file path; and one message they can send next. Stop there. Do not explain the topic from other files.
13
- 5. Otherwise answer, then give one message the person can send as is, with real words from their question and no blanks to fill in, then list the files the answer came from.
14
- 6. Write the reply as the **Write replies a person can check** convention in `AGENTS.md` says.
15
-
16
- ## Map
17
-
18
- - **How the workflow runs, and starting work:** `intent/README.md` and the table in `.agents/skills/sdlc/SKILL.md`.
19
- - **Keeping `/sdlc` on for a session:** a person starts it; nothing routes work into it. In Claude Code, an invoked skill's content stays in the conversation across later turns, and after a compaction Claude Code re-attaches the most recent invocation within a token budget, so a person types `/sdlc` again only to restore the full text. In Cursor, pick `/sdlc` from the `/` menu and press Option+Enter (Mac) or Alt+Enter (Windows) instead of Enter, which makes it a custom mode that stays in context until the person exits it. Plain Enter attaches it to one message.
20
- - **Fixing a defect in behaviour that already exists:** `.agents/skills/sdlc/playbooks/fix.md` is the path with no intent and no spec, for a person's request: a plan an engineer accepts, then a failing test, the fix, and a pull request. A finding from a job always starts at intent. Every other change runs intent, spec, plan, then build.
21
- - **Who decides:** `.agents/rules/agent-owned-work.md` and `.github/CODEOWNERS`.
22
- - **A mistake the agent repeats:** **Things Claude gets wrong** in `AGENTS.md`.
23
- - **Company policy:** the policy skills in `.agents/skills/`, and `.github/CODEOWNERS` for each one's owner.
@@ -1,41 +0,0 @@
1
- ---
2
- name: security-policy
3
- description: Apply the organization's security policy. Use whenever writing or reviewing a spec.md, a plan, or code that this policy covers.
4
- ---
5
-
6
- # Security policy
7
-
8
- Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
-
10
- Standard: [OWASP Application Security Verification Standard 5.0.0](https://github.com/OWASP/ASVS/tree/v5.0.0/5.0/en), Level 1. This is the default; the owner replaces or tightens it by editing this file.
11
-
12
- ## Rules
13
-
14
- 1. Find the chapters the change touches in the table below. A change that touches none meets this policy; say "Does not apply" and why.
15
- 2. For each chapter it touches, open that chapter's file in the standard and list every Level 1 requirement that applies to the change. Cite each as `v5.0.0-<chapter>.<section>.<requirement>`, for example `v5.0.0-8.2.1`.
16
- 3. Each cited requirement becomes a requirement of the spec, and a test or a review step of the plan.
17
- 4. When you cannot open the standard, name the chapters, cite no requirement number from memory, and report that as an area of concern.
18
- 5. A Level 1 requirement the change cannot meet is an area of concern. Never drop it silently.
19
- 6. Secrets stay out of the repository, logs, and error messages; `.env.example` holds names only.
20
-
21
- ## Chapters
22
-
23
- | Chapter | Covers | Level 1 requirements |
24
- | :------ | :---------------------------------- | :------------------- |
25
- | V1 | Encoding and Sanitization | 8 |
26
- | V2 | Validation and Business Logic | 4 |
27
- | V3 | Web Frontend Security | 8 |
28
- | V4 | API and Web Service | 2 |
29
- | V5 | File Handling | 4 |
30
- | V6 | Authentication | 13 |
31
- | V7 | Session Management | 6 |
32
- | V8 | Authorization | 4 |
33
- | V9 | Self-contained Tokens | 4 |
34
- | V10 | OAuth and OIDC | 5 |
35
- | V11 | Cryptography | 3 |
36
- | V12 | Secure Communication | 3 |
37
- | V13 | Configuration | 1 |
38
- | V14 | Data Protection | 2 |
39
- | V15 | Secure Coding and Architecture | 3 |
40
- | V16 | Security Logging and Error Handling | 0 |
41
- | V17 | WebRTC | 0 |
@@ -1,21 +0,0 @@
1
- ---
2
- name: ux-policy
3
- description: Apply the organization's UX policy. Use whenever writing or reviewing a spec.md, a plan, or code that this policy covers.
4
- ---
5
-
6
- # UX policy
7
-
8
- Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
-
10
- Standard: [Web Content Accessibility Guidelines (WCAG) 2.2](https://www.w3.org/TR/WCAG22/), Level AA: the page satisfies all the Level A and Level AA success criteria. This is the default; the owner replaces or tightens it by editing this file.
11
-
12
- ## Rules
13
-
14
- 1. A change with no user interface meets this policy; say "Does not apply" and why.
15
- 2. For a change with a user interface, the spec lists the success criteria the change touches, by number and name, and each becomes a requirement.
16
- 3. Every interactive element works with the keyboard alone, shows where the focus is, and has a name a screen reader announces.
17
- 4. Text and meaningful graphics meet the contrast minimum, and no information is carried by colour alone.
18
- 5. Every form field has a visible label, and every error says in text which field is wrong and how to fix it.
19
- 6. Check the criteria that WCAG 2.2 added at Level A and AA: 2.4.11 Focus Not Obscured (Minimum), 2.5.7 Dragging Movements, 2.5.8 Target Size (Minimum), 3.2.6 Consistent Help, 3.3.7 Redundant Entry, and 3.3.8 Accessible Authentication (Minimum).
20
- 7. Every state the user can reach is designed: loading, empty, error, and success.
21
- 8. A criterion the change cannot meet is an area of concern. Never drop it silently.
@@ -1,46 +0,0 @@
1
- name: Agent evals
2
-
3
- on:
4
- pull_request:
5
- paths:
6
- - AGENTS.md
7
- - CLAUDE.md
8
- - .agents/**
9
- - .claude/**
10
- - .cursor/**
11
- schedule:
12
- - cron: "0 2 * * *"
13
-
14
- permissions: {}
15
-
16
- concurrency:
17
- group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
18
- cancel-in-progress: true
19
-
20
- jobs:
21
- evals:
22
- name: Run agent evals
23
- if: vars.CLAUDE_CI_ENABLED == 'true' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository)
24
- runs-on: ubuntu-latest
25
- timeout-minutes: 60
26
- permissions:
27
- contents: read
28
- steps:
29
- - name: Checkout repository
30
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
31
- with:
32
- persist-credentials: false
33
- - name: Set up Node.js and pnpm
34
- uses: pnpm/setup@fbda4c85fc2e1e08721cd8763afea8f48d60f024 # v3.0.0
35
- with:
36
- cache: true
37
- require-lockfile: true
38
- - name: Run the eval suite
39
- env:
40
- ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
41
- CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
42
- run: |
43
- [[ -n "$ANTHROPIC_API_KEY" || -n "$CLAUDE_CODE_OAUTH_TOKEN" ]] || { echo "::error::Set the CLAUDE_CODE_OAUTH_TOKEN or ANTHROPIC_API_KEY repository secret"; exit 1; }
44
- [[ -n "$ANTHROPIC_API_KEY" ]] || unset ANTHROPIC_API_KEY
45
- [[ -n "$CLAUDE_CODE_OAUTH_TOKEN" ]] || unset CLAUDE_CODE_OAUTH_TOKEN
46
- pnpm evals:run