@next-friday/create-app 7.1.0 → 8.0.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 (32) hide show
  1. package/package.json +1 -1
  2. package/templates/base/.agents/skills/brand-policy/SKILL.md +9 -3
  3. package/templates/base/.agents/skills/compliance-policy/SKILL.md +16 -3
  4. package/templates/base/.agents/skills/sdlc/SKILL.md +6 -5
  5. package/templates/base/.agents/skills/sdlc/playbooks/design.md +37 -0
  6. package/templates/base/.agents/skills/sdlc/playbooks/plan.md +1 -1
  7. package/templates/base/.agents/skills/security-policy/SKILL.md +32 -3
  8. package/templates/base/.agents/skills/ux-policy/SKILL.md +12 -3
  9. package/templates/base/.claude/skills/brand-policy/SKILL.md +9 -3
  10. package/templates/base/.claude/skills/compliance-policy/SKILL.md +16 -3
  11. package/templates/base/.claude/skills/sdlc/SKILL.md +6 -5
  12. package/templates/base/.claude/skills/sdlc/playbooks/design.md +37 -0
  13. package/templates/base/.claude/skills/sdlc/playbooks/plan.md +1 -1
  14. package/templates/base/.claude/skills/security-policy/SKILL.md +32 -3
  15. package/templates/base/.claude/skills/ux-policy/SKILL.md +12 -3
  16. package/templates/base/.cursor/skills/brand-policy/SKILL.md +9 -3
  17. package/templates/base/.cursor/skills/compliance-policy/SKILL.md +16 -3
  18. package/templates/base/.cursor/skills/sdlc/SKILL.md +6 -5
  19. package/templates/base/.cursor/skills/sdlc/playbooks/design.md +37 -0
  20. package/templates/base/.cursor/skills/sdlc/playbooks/plan.md +1 -1
  21. package/templates/base/.cursor/skills/security-policy/SKILL.md +32 -3
  22. package/templates/base/.cursor/skills/ux-policy/SKILL.md +12 -3
  23. package/templates/base/SETUP.md +3 -3
  24. package/templates/base/intent/README.md +1 -1
  25. package/templates/nestjs/.github/pull_request_template.md +1 -1
  26. package/templates/nextjs/.github/pull_request_template.md +1 -1
  27. package/templates/nodejs/.github/pull_request_template.md +1 -1
  28. package/templates/payload/.github/pull_request_template.md +1 -1
  29. package/templates/turborepo/.github/pull_request_template.md +1 -1
  30. package/templates/base/.agents/skills/write-spec/SKILL.md +0 -12
  31. package/templates/base/.claude/skills/write-spec/SKILL.md +0 -12
  32. package/templates/base/.cursor/skills/write-spec/SKILL.md +0 -12
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-friday/create-app",
3
- "version": "7.1.0",
3
+ "version": "8.0.1",
4
4
  "description": "Create a Next Friday project from a template.",
5
5
  "keywords": [
6
6
  "create",
@@ -5,8 +5,14 @@ description: Apply the organization's brand policy. Use whenever writing or revi
5
5
 
6
6
  # Brand policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
10
+ This is the default; the owner adds the brand's names, colours, typefaces, and tone of voice by editing this file.
11
11
 
12
- This policy is not written yet. Report that as an area of concern.
12
+ ## Rules
13
+
14
+ 1. A change with no user-visible text, colour, typeface, logo, or message meets this policy; say "Does not apply" and why.
15
+ 2. The organization's name, product names, colours, typefaces, and logo files each have one declared source in the project. The spec names that source for every brand value the change shows. When the source does not exist yet, creating it is a requirement of the spec.
16
+ 3. No code, style, email, or message the user sees holds a brand value as a literal; each reads it from that source. Project metadata such as `package.json`, `README.md`, and `LICENSE` is outside this rule.
17
+ 4. Text the user reads uses one name for one thing and the same words for the same action on every screen, and shows no internal identifier or stack trace.
18
+ 5. A brand value this file does not give, such as an exact colour or a tone of voice, is an area of concern. Never invent one.
@@ -5,8 +5,21 @@ description: Apply the organization's compliance policy. Use whenever writing or
5
5
 
6
6
  # Compliance policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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.
@@ -10,11 +10,12 @@ Do these steps in order.
10
10
 
11
11
  1. **Match the request** to the first row that fits, and read that row's file before you act.
12
12
 
13
- | The request | What to do |
14
- | :------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
- | A question, or a request to explain or check without changing things | Follow [`playbooks/question.md`](playbooks/question.md). |
16
- | An idea, a problem, a ticket, or an incident, whether asked for or only reported | Follow [`playbooks/plan.md`](playbooks/plan.md). |
17
- | A later step: a spec, a build, a review, a deploy, or an incident fix | Say "This step has no playbook in `/sdlc` yet" and name the step. Name the skill that covers it when one exists: `write-spec` for a spec, `babysit-pr` for a pull request you opened. Answer what you can as `playbooks/question.md` says, and stop. |
13
+ | The request | What to do |
14
+ | :------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | A question, or a request to explain or check without changing things | Follow [`playbooks/question.md`](playbooks/question.md). |
16
+ | An idea, a problem, a ticket, or an incident, whether asked for or only reported | Follow [`playbooks/plan.md`](playbooks/plan.md). |
17
+ | A spec for an intent | Follow [`playbooks/design.md`](playbooks/design.md). |
18
+ | A later step: a build, a review, a deploy, or an incident fix | Say "This step has no playbook in `/sdlc` yet" and name the step. Name `babysit-pr` for a pull request you opened. Answer what you can as `playbooks/question.md` says, and stop. |
18
19
 
19
20
  When a request both asks a question and reports a problem, use `question` and offer `plan` in one line.
20
21
 
@@ -0,0 +1,37 @@
1
+ # Design phase: write `spec.md`
2
+
3
+ This playbook turns a merged intent into the requirements and design spec. A person or a job can start it; the steps are the same.
4
+
5
+ 1. Find the intent: the `intent/<change>/intent.md` the request names. It must be on the default branch and have no `spec.md` beside it. In each case below, say only that, in two or three lines, and stop: write no file and add no review of the intent.
6
+ - The request names no intent, or the file does not exist on any branch: list each `intent/*/intent.md` on the default branch that has no `spec.md`, or say that there is none.
7
+ - The file exists only on another branch: say that the intent is not merged yet, and name that branch.
8
+ - `spec.md` already exists: say so and name the file.
9
+ 2. Read the four policies, every time, before you write: `.agents/skills/brand-policy/SKILL.md`, `.agents/skills/security-policy/SKILL.md`, `.agents/skills/compliance-policy/SKILL.md`, and `.agents/skills/ux-policy/SKILL.md`. Then read the code and the docs the change touches.
10
+ 3. Write `intent/<change>/spec.md` from the template below, in the language of the files already in `intent/`. Use exactly the template's headings.
11
+ - **Requirements:** numbered; each one states a result a test or a reader can check.
12
+ - **Design:** how the change fits the existing code: the files that change, and what each one does afterwards.
13
+ - **Policies:** one line for each of the four policies: the rules of that policy the change must meet, each as a requirement number, or "Does not apply" and why.
14
+ - **Areas of concern:** a policy rule the change cannot meet, two policies that contradict, or a decision the files do not settle. Give each one a number, the policy it comes from, and that policy's owner from `.github/CODEOWNERS`. When `.github/CODEOWNERS` names no owner for a policy's folder, write "no owner in `.github/CODEOWNERS`" in place of the owner, and add one area of concern that says so. Write "None" only when there are none.
15
+ - **Open questions:** each open question from `intent.md`, answered with its evidence or carried forward. Write "None" only when the intent has none.
16
+ 4. Commit `spec.md` on a new branch, push it, and open a pull request ready for review, as `AGENTS.md` says for branches and pull requests. Put the areas of concern first in the pull request's description, under the template's first heading. When you cannot open a pull request from this session, say so and give the pushed branch's name.
17
+ 5. **Gate: the product owner reviews the spec.** The product owner resolves each area of concern with its policy owner, accepts the spec by setting `Status: accepted.` and merging the pull request, or rejects it by closing it; you do neither. Report the pull request's URL, keep it green as `AGENTS.md` says, and wait.
18
+
19
+ **Next:** `AGENTS.md`; an engineer; when the product owner has merged the spec's pull request, the engineer starts the build in plan mode with `intent.md` and `spec.md`.
20
+
21
+ ## Template
22
+
23
+ ```markdown
24
+ # Spec: <title>
25
+
26
+ From `intent/<change>/intent.md`. Status: draft.
27
+
28
+ ## Requirements
29
+
30
+ ## Design
31
+
32
+ ## Policies
33
+
34
+ ## Areas of concern
35
+
36
+ ## Open questions
37
+ ```
@@ -12,7 +12,7 @@ This playbook writes the intent. The build plan, `intent/<change>/plan.md`, come
12
12
  6. Commit `intent.md` on a new branch, push it, and open a pull request ready for review, as `AGENTS.md` says for branches and pull requests.
13
13
  7. **Gate: the product owner accepts or rejects the intent.** The product owner accepts by setting `Status: accepted.` and merging the pull request, or rejects by closing it; you do neither. Report the pull request's URL, keep it green as `AGENTS.md` says, and wait.
14
14
 
15
- **Next:** `.agents/skills/write-spec/SKILL.md`; an agent; when the product owner has merged the intent's pull request and a person or a trigger asks for the spec.
15
+ **Next:** `.agents/skills/sdlc/playbooks/design.md`; an agent; when the product owner has merged the intent's pull request and a person or a job asks for the spec.
16
16
 
17
17
  ## Template
18
18
 
@@ -5,8 +5,37 @@ description: Apply the organization's security policy. Use whenever writing or r
5
5
 
6
6
  # Security policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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 |
@@ -5,8 +5,17 @@ description: Apply the organization's UX policy. Use whenever writing or reviewi
5
5
 
6
6
  # UX policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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.
@@ -5,8 +5,14 @@ description: Apply the organization's brand policy. Use whenever writing or revi
5
5
 
6
6
  # Brand policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
10
+ This is the default; the owner adds the brand's names, colours, typefaces, and tone of voice by editing this file.
11
11
 
12
- This policy is not written yet. Report that as an area of concern.
12
+ ## Rules
13
+
14
+ 1. A change with no user-visible text, colour, typeface, logo, or message meets this policy; say "Does not apply" and why.
15
+ 2. The organization's name, product names, colours, typefaces, and logo files each have one declared source in the project. The spec names that source for every brand value the change shows. When the source does not exist yet, creating it is a requirement of the spec.
16
+ 3. No code, style, email, or message the user sees holds a brand value as a literal; each reads it from that source. Project metadata such as `package.json`, `README.md`, and `LICENSE` is outside this rule.
17
+ 4. Text the user reads uses one name for one thing and the same words for the same action on every screen, and shows no internal identifier or stack trace.
18
+ 5. A brand value this file does not give, such as an exact colour or a tone of voice, is an area of concern. Never invent one.
@@ -5,8 +5,21 @@ description: Apply the organization's compliance policy. Use whenever writing or
5
5
 
6
6
  # Compliance policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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.
@@ -10,11 +10,12 @@ Do these steps in order.
10
10
 
11
11
  1. **Match the request** to the first row that fits, and read that row's file before you act.
12
12
 
13
- | The request | What to do |
14
- | :------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
- | A question, or a request to explain or check without changing things | Follow [`playbooks/question.md`](playbooks/question.md). |
16
- | An idea, a problem, a ticket, or an incident, whether asked for or only reported | Follow [`playbooks/plan.md`](playbooks/plan.md). |
17
- | A later step: a spec, a build, a review, a deploy, or an incident fix | Say "This step has no playbook in `/sdlc` yet" and name the step. Name the skill that covers it when one exists: `write-spec` for a spec, `babysit-pr` for a pull request you opened. Answer what you can as `playbooks/question.md` says, and stop. |
13
+ | The request | What to do |
14
+ | :------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | A question, or a request to explain or check without changing things | Follow [`playbooks/question.md`](playbooks/question.md). |
16
+ | An idea, a problem, a ticket, or an incident, whether asked for or only reported | Follow [`playbooks/plan.md`](playbooks/plan.md). |
17
+ | A spec for an intent | Follow [`playbooks/design.md`](playbooks/design.md). |
18
+ | A later step: a build, a review, a deploy, or an incident fix | Say "This step has no playbook in `/sdlc` yet" and name the step. Name `babysit-pr` for a pull request you opened. Answer what you can as `playbooks/question.md` says, and stop. |
18
19
 
19
20
  When a request both asks a question and reports a problem, use `question` and offer `plan` in one line.
20
21
 
@@ -0,0 +1,37 @@
1
+ # Design phase: write `spec.md`
2
+
3
+ This playbook turns a merged intent into the requirements and design spec. A person or a job can start it; the steps are the same.
4
+
5
+ 1. Find the intent: the `intent/<change>/intent.md` the request names. It must be on the default branch and have no `spec.md` beside it. In each case below, say only that, in two or three lines, and stop: write no file and add no review of the intent.
6
+ - The request names no intent, or the file does not exist on any branch: list each `intent/*/intent.md` on the default branch that has no `spec.md`, or say that there is none.
7
+ - The file exists only on another branch: say that the intent is not merged yet, and name that branch.
8
+ - `spec.md` already exists: say so and name the file.
9
+ 2. Read the four policies, every time, before you write: `.agents/skills/brand-policy/SKILL.md`, `.agents/skills/security-policy/SKILL.md`, `.agents/skills/compliance-policy/SKILL.md`, and `.agents/skills/ux-policy/SKILL.md`. Then read the code and the docs the change touches.
10
+ 3. Write `intent/<change>/spec.md` from the template below, in the language of the files already in `intent/`. Use exactly the template's headings.
11
+ - **Requirements:** numbered; each one states a result a test or a reader can check.
12
+ - **Design:** how the change fits the existing code: the files that change, and what each one does afterwards.
13
+ - **Policies:** one line for each of the four policies: the rules of that policy the change must meet, each as a requirement number, or "Does not apply" and why.
14
+ - **Areas of concern:** a policy rule the change cannot meet, two policies that contradict, or a decision the files do not settle. Give each one a number, the policy it comes from, and that policy's owner from `.github/CODEOWNERS`. When `.github/CODEOWNERS` names no owner for a policy's folder, write "no owner in `.github/CODEOWNERS`" in place of the owner, and add one area of concern that says so. Write "None" only when there are none.
15
+ - **Open questions:** each open question from `intent.md`, answered with its evidence or carried forward. Write "None" only when the intent has none.
16
+ 4. Commit `spec.md` on a new branch, push it, and open a pull request ready for review, as `AGENTS.md` says for branches and pull requests. Put the areas of concern first in the pull request's description, under the template's first heading. When you cannot open a pull request from this session, say so and give the pushed branch's name.
17
+ 5. **Gate: the product owner reviews the spec.** The product owner resolves each area of concern with its policy owner, accepts the spec by setting `Status: accepted.` and merging the pull request, or rejects it by closing it; you do neither. Report the pull request's URL, keep it green as `AGENTS.md` says, and wait.
18
+
19
+ **Next:** `AGENTS.md`; an engineer; when the product owner has merged the spec's pull request, the engineer starts the build in plan mode with `intent.md` and `spec.md`.
20
+
21
+ ## Template
22
+
23
+ ```markdown
24
+ # Spec: <title>
25
+
26
+ From `intent/<change>/intent.md`. Status: draft.
27
+
28
+ ## Requirements
29
+
30
+ ## Design
31
+
32
+ ## Policies
33
+
34
+ ## Areas of concern
35
+
36
+ ## Open questions
37
+ ```
@@ -12,7 +12,7 @@ This playbook writes the intent. The build plan, `intent/<change>/plan.md`, come
12
12
  6. Commit `intent.md` on a new branch, push it, and open a pull request ready for review, as `AGENTS.md` says for branches and pull requests.
13
13
  7. **Gate: the product owner accepts or rejects the intent.** The product owner accepts by setting `Status: accepted.` and merging the pull request, or rejects by closing it; you do neither. Report the pull request's URL, keep it green as `AGENTS.md` says, and wait.
14
14
 
15
- **Next:** `.agents/skills/write-spec/SKILL.md`; an agent; when the product owner has merged the intent's pull request and a person or a trigger asks for the spec.
15
+ **Next:** `.agents/skills/sdlc/playbooks/design.md`; an agent; when the product owner has merged the intent's pull request and a person or a job asks for the spec.
16
16
 
17
17
  ## Template
18
18
 
@@ -5,8 +5,37 @@ description: Apply the organization's security policy. Use whenever writing or r
5
5
 
6
6
  # Security policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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 |
@@ -5,8 +5,17 @@ description: Apply the organization's UX policy. Use whenever writing or reviewi
5
5
 
6
6
  # UX policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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.
@@ -5,8 +5,14 @@ description: Apply the organization's brand policy. Use whenever writing or revi
5
5
 
6
6
  # Brand policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
10
+ This is the default; the owner adds the brand's names, colours, typefaces, and tone of voice by editing this file.
11
11
 
12
- This policy is not written yet. Report that as an area of concern.
12
+ ## Rules
13
+
14
+ 1. A change with no user-visible text, colour, typeface, logo, or message meets this policy; say "Does not apply" and why.
15
+ 2. The organization's name, product names, colours, typefaces, and logo files each have one declared source in the project. The spec names that source for every brand value the change shows. When the source does not exist yet, creating it is a requirement of the spec.
16
+ 3. No code, style, email, or message the user sees holds a brand value as a literal; each reads it from that source. Project metadata such as `package.json`, `README.md`, and `LICENSE` is outside this rule.
17
+ 4. Text the user reads uses one name for one thing and the same words for the same action on every screen, and shows no internal identifier or stack trace.
18
+ 5. A brand value this file does not give, such as an exact colour or a tone of voice, is an area of concern. Never invent one.
@@ -5,8 +5,21 @@ description: Apply the organization's compliance policy. Use whenever writing or
5
5
 
6
6
  # Compliance policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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.
@@ -10,11 +10,12 @@ Do these steps in order.
10
10
 
11
11
  1. **Match the request** to the first row that fits, and read that row's file before you act.
12
12
 
13
- | The request | What to do |
14
- | :------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
- | A question, or a request to explain or check without changing things | Follow [`playbooks/question.md`](playbooks/question.md). |
16
- | An idea, a problem, a ticket, or an incident, whether asked for or only reported | Follow [`playbooks/plan.md`](playbooks/plan.md). |
17
- | A later step: a spec, a build, a review, a deploy, or an incident fix | Say "This step has no playbook in `/sdlc` yet" and name the step. Name the skill that covers it when one exists: `write-spec` for a spec, `babysit-pr` for a pull request you opened. Answer what you can as `playbooks/question.md` says, and stop. |
13
+ | The request | What to do |
14
+ | :------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
15
+ | A question, or a request to explain or check without changing things | Follow [`playbooks/question.md`](playbooks/question.md). |
16
+ | An idea, a problem, a ticket, or an incident, whether asked for or only reported | Follow [`playbooks/plan.md`](playbooks/plan.md). |
17
+ | A spec for an intent | Follow [`playbooks/design.md`](playbooks/design.md). |
18
+ | A later step: a build, a review, a deploy, or an incident fix | Say "This step has no playbook in `/sdlc` yet" and name the step. Name `babysit-pr` for a pull request you opened. Answer what you can as `playbooks/question.md` says, and stop. |
18
19
 
19
20
  When a request both asks a question and reports a problem, use `question` and offer `plan` in one line.
20
21
 
@@ -0,0 +1,37 @@
1
+ # Design phase: write `spec.md`
2
+
3
+ This playbook turns a merged intent into the requirements and design spec. A person or a job can start it; the steps are the same.
4
+
5
+ 1. Find the intent: the `intent/<change>/intent.md` the request names. It must be on the default branch and have no `spec.md` beside it. In each case below, say only that, in two or three lines, and stop: write no file and add no review of the intent.
6
+ - The request names no intent, or the file does not exist on any branch: list each `intent/*/intent.md` on the default branch that has no `spec.md`, or say that there is none.
7
+ - The file exists only on another branch: say that the intent is not merged yet, and name that branch.
8
+ - `spec.md` already exists: say so and name the file.
9
+ 2. Read the four policies, every time, before you write: `.agents/skills/brand-policy/SKILL.md`, `.agents/skills/security-policy/SKILL.md`, `.agents/skills/compliance-policy/SKILL.md`, and `.agents/skills/ux-policy/SKILL.md`. Then read the code and the docs the change touches.
10
+ 3. Write `intent/<change>/spec.md` from the template below, in the language of the files already in `intent/`. Use exactly the template's headings.
11
+ - **Requirements:** numbered; each one states a result a test or a reader can check.
12
+ - **Design:** how the change fits the existing code: the files that change, and what each one does afterwards.
13
+ - **Policies:** one line for each of the four policies: the rules of that policy the change must meet, each as a requirement number, or "Does not apply" and why.
14
+ - **Areas of concern:** a policy rule the change cannot meet, two policies that contradict, or a decision the files do not settle. Give each one a number, the policy it comes from, and that policy's owner from `.github/CODEOWNERS`. When `.github/CODEOWNERS` names no owner for a policy's folder, write "no owner in `.github/CODEOWNERS`" in place of the owner, and add one area of concern that says so. Write "None" only when there are none.
15
+ - **Open questions:** each open question from `intent.md`, answered with its evidence or carried forward. Write "None" only when the intent has none.
16
+ 4. Commit `spec.md` on a new branch, push it, and open a pull request ready for review, as `AGENTS.md` says for branches and pull requests. Put the areas of concern first in the pull request's description, under the template's first heading. When you cannot open a pull request from this session, say so and give the pushed branch's name.
17
+ 5. **Gate: the product owner reviews the spec.** The product owner resolves each area of concern with its policy owner, accepts the spec by setting `Status: accepted.` and merging the pull request, or rejects it by closing it; you do neither. Report the pull request's URL, keep it green as `AGENTS.md` says, and wait.
18
+
19
+ **Next:** `AGENTS.md`; an engineer; when the product owner has merged the spec's pull request, the engineer starts the build in plan mode with `intent.md` and `spec.md`.
20
+
21
+ ## Template
22
+
23
+ ```markdown
24
+ # Spec: <title>
25
+
26
+ From `intent/<change>/intent.md`. Status: draft.
27
+
28
+ ## Requirements
29
+
30
+ ## Design
31
+
32
+ ## Policies
33
+
34
+ ## Areas of concern
35
+
36
+ ## Open questions
37
+ ```
@@ -12,7 +12,7 @@ This playbook writes the intent. The build plan, `intent/<change>/plan.md`, come
12
12
  6. Commit `intent.md` on a new branch, push it, and open a pull request ready for review, as `AGENTS.md` says for branches and pull requests.
13
13
  7. **Gate: the product owner accepts or rejects the intent.** The product owner accepts by setting `Status: accepted.` and merging the pull request, or rejects by closing it; you do neither. Report the pull request's URL, keep it green as `AGENTS.md` says, and wait.
14
14
 
15
- **Next:** `.agents/skills/write-spec/SKILL.md`; an agent; when the product owner has merged the intent's pull request and a person or a trigger asks for the spec.
15
+ **Next:** `.agents/skills/sdlc/playbooks/design.md`; an agent; when the product owner has merged the intent's pull request and a person or a job asks for the spec.
16
16
 
17
17
  ## Template
18
18
 
@@ -5,8 +5,37 @@ description: Apply the organization's security policy. Use whenever writing or r
5
5
 
6
6
  # Security policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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 |
@@ -5,8 +5,17 @@ description: Apply the organization's UX policy. Use whenever writing or reviewi
5
5
 
6
6
  # UX policy
7
7
 
8
- Owner: <the named policy owner>
8
+ Owner: the code owner of this folder in `.github/CODEOWNERS`.
9
9
 
10
- Source of truth: <where the written policy lives>
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
11
 
12
- This policy is not written yet. Report that as an area of concern.
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.
@@ -5,7 +5,7 @@ This project follows Anthropic's [AI-native SDLC Playbook](https://claude.com/re
5
5
  ## How a change flows
6
6
 
7
7
  1. **Plan:** the originator of an idea, a ticket, or an incident sends it with `/sdlc`, which interviews them and writes `intent/<change>/intent.md`. The product owner accepts it by merging it with `Status: accepted.`, or rejects it by closing its pull request.
8
- 2. **Design:** `spec.md` is written from the accepted intent with the policy skills loaded (`write-spec` skill). The product owner resolves concerns with the policy owners.
8
+ 2. **Design:** `spec.md` is written from the accepted intent with the policy skills loaded (send the intent's path with `/sdlc`). The product owner resolves concerns with the policy owners.
9
9
  3. **Build:** the engineer starts in plan mode, approves the plan, and commits it as `plan.md`. A tech lead approves higher-risk plans.
10
10
  4. **Test:** the session runs **Verifying your work** in `AGENTS.md`.
11
11
  5. **Review:** Claude Code Review and Bugbot review by `REVIEW.md`. A code owner approves; the agent never does.
@@ -93,13 +93,13 @@ Also replace the owner placeholder in `.github/zizmor.yml`.
93
93
 
94
94
  - **Sources of truth (engineering lead):** for each artifact, name one system as the source of truth: this repository, an existing tool such as Jira, or, as the minimum, a link both ways (the record id in the file and the commit SHA in the record).
95
95
  - **Higher risk (engineering lead):** decide which changes count as higher risk. A tech lead or architect approves their specs and plans.
96
- - **Policies (each policy owner, with an engineer):** write the policy in `.agents/skills/<area>-policy/SKILL.md` from the owner's source of truth, then run `pnpm rules:sync`. Test that the skill triggers: ask for the relevant task in different ways and confirm the skill loads each time. The policy owner approves every later change as its code owner.
96
+ - **Policies (each policy owner, with an engineer):** each `.agents/skills/<area>-policy/SKILL.md` ships a default (security: OWASP ASVS 5.0.0 Level 1; UX: WCAG 2.2 Level AA; compliance: the OECD privacy principles; brand: one declared source for every brand value). Review it, replace or add the organization's own rules, then run `pnpm rules:sync`. Test that the skill triggers: ask for the relevant task in different ways and confirm the skill loads each time. The policy owner approves every later change as its code owner.
97
97
  - **Production gate (engineering leadership, with change management and compliance):** name the release managers and add them as required reviewers on the `prod` environment, as the README's deploy section describes. `.agents/hooks/agent-production-gate.sh` blocks an agent's shell commands that dispatch a `prod` deploy, run a Railway command with `prod` as its environment, or push a release tag. It does not read MCP tools. A release manager whose own agent session must do one of these starts the agent with `RELEASE_APPROVAL` set to the approval record, for example `RELEASE_APPROVAL=CHG-123 claude`.
98
98
  - **Review (tech lead):** replace `src/gen/` in `.agents/review.md` with this project's generated paths, then run `pnpm rules:sync`, which renders it to `REVIEW.md` for Claude Code Review. Once a month, rate the review findings and tune `.agents/review.md`.
99
99
  - **People without Git experience:** connect GitHub to Claude (claude.ai or Cowork), so Claude commits `intent.md` for them.
100
100
 
101
101
  ## 7. Later, as the guardrails mature
102
102
 
103
- - Run the `write-spec` skill by hand first, then as an organization-level slash command, then as a job that commits `spec.md` as a pull request when an `intent.md` merges.
103
+ - Send the intent's path with `/sdlc` by hand first, then as an organization-level slash command, then as a job that commits `spec.md` as a pull request when an `intent.md` merges.
104
104
  - Make auto mode the default for routine work: a tight `spec.md`, a small blast radius, and code the tests already cover.
105
105
  - Replace `bands.yaml` with this project's metric, add a unit-tested detection script that reads it, and add the trigger that runs it.
@@ -4,7 +4,7 @@ This folder is the intent home. Every change starts here as an `intent.md`, and
4
4
 
5
5
  - Each change has its own folder, `intent/<change>/`, where `<change>` is a short kebab-case name. The folder holds `intent.md` (Plan), then `spec.md` (Design), then `plan.md` (Build).
6
6
  - **Plan.** An idea, a ticket, or an incident becomes `intent.md`, written by sending the idea with `/sdlc`, which interviews the originator. The originator corrects the draft before it is committed, and the product owner reviews it in its pull request. Merging its pull request records the decision: `Status: accepted.` accepts it, and `Status: rejected.` rejects it.
7
- - **Design.** The `write-spec` skill turns the accepted `intent.md` into `spec.md`, committed alongside it. The product owner reviews the spec against the idea and resolves each area of concern with its policy owner. Accepting the spec starts the build.
7
+ - **Design.** Sending the intent's path with `/sdlc` turns the accepted `intent.md` into `spec.md`, committed alongside it. The product owner reviews the spec against the idea and resolves each area of concern with its policy owner. Accepting the spec starts the build.
8
8
  - **Build.** The engineer starts in plan mode with `intent.md` and `spec.md`, and commits the approved plan as `plan.md`. When implementation departs from the plan, `plan.md` changes in the same commit.
9
9
 
10
10
  ## Which file holds what
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Why
4
4
 
5
- <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. Link a related issue with `Closes #123`. -->
5
+ <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. When an issue already exists, link it with `Closes #123`; do not open an issue only to get a number. -->
6
6
 
7
7
  ## What changed
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Why
4
4
 
5
- <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. Link a related issue with `Closes #123`. -->
5
+ <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. When an issue already exists, link it with `Closes #123`; do not open an issue only to get a number. -->
6
6
 
7
7
  ## What changed
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Why
4
4
 
5
- <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. Link a related issue with `Closes #123`. -->
5
+ <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. When an issue already exists, link it with `Closes #123`; do not open an issue only to get a number. -->
6
6
 
7
7
  ## What changed
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Why
4
4
 
5
- <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. Link a related issue with `Closes #123`. -->
5
+ <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. When an issue already exists, link it with `Closes #123`; do not open an issue only to get a number. -->
6
6
 
7
7
  ## What changed
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Why
4
4
 
5
- <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. Link a related issue with `Closes #123`. -->
5
+ <!-- The problem and the approach in 1-3 short sentences. No SHAs or rebase history. When an issue already exists, link it with `Closes #123`; do not open an issue only to get a number. -->
6
6
 
7
7
  ## What changed
8
8
 
@@ -1,12 +0,0 @@
1
- ---
2
- name: write-spec
3
- description: Produce spec.md, the requirements and design spec, from an accepted intent.md. Use when a person or a trigger asks for the spec of an accepted intent.md.
4
- ---
5
-
6
- # Write spec.md
7
-
8
- Read the `intent.md` the user names, and follow this prompt:
9
-
10
- > Read the attached intent.md and produce a requirements and design spec for integrating it into our existing codebase. Apply the skills available to you so the plan conforms to our brand guidelines, security policies and UX standards. Document the spec fully as spec.md, ready to hand to the engineering team. Describe clearly any areas of concern, especially where you cannot satisfy contradicting policies.
11
-
12
- Write `spec.md` alongside that `intent.md`, in the same folder. Answer each open question from `intent.md`, or carry it forward. Commit it and open a pull request; the product owner accepts the spec by merging it.
@@ -1,12 +0,0 @@
1
- ---
2
- name: write-spec
3
- description: Produce spec.md, the requirements and design spec, from an accepted intent.md. Use when a person or a trigger asks for the spec of an accepted intent.md.
4
- ---
5
-
6
- # Write spec.md
7
-
8
- Read the `intent.md` the user names, and follow this prompt:
9
-
10
- > Read the attached intent.md and produce a requirements and design spec for integrating it into our existing codebase. Apply the skills available to you so the plan conforms to our brand guidelines, security policies and UX standards. Document the spec fully as spec.md, ready to hand to the engineering team. Describe clearly any areas of concern, especially where you cannot satisfy contradicting policies.
11
-
12
- Write `spec.md` alongside that `intent.md`, in the same folder. Answer each open question from `intent.md`, or carry it forward. Commit it and open a pull request; the product owner accepts the spec by merging it.
@@ -1,12 +0,0 @@
1
- ---
2
- name: write-spec
3
- description: Produce spec.md, the requirements and design spec, from an accepted intent.md. Use when a person or a trigger asks for the spec of an accepted intent.md.
4
- ---
5
-
6
- # Write spec.md
7
-
8
- Read the `intent.md` the user names, and follow this prompt:
9
-
10
- > Read the attached intent.md and produce a requirements and design spec for integrating it into our existing codebase. Apply the skills available to you so the plan conforms to our brand guidelines, security policies and UX standards. Document the spec fully as spec.md, ready to hand to the engineering team. Describe clearly any areas of concern, especially where you cannot satisfy contradicting policies.
11
-
12
- Write `spec.md` alongside that `intent.md`, in the same folder. Answer each open question from `intent.md`, or carry it forward. Commit it and open a pull request; the product owner accepts the spec by merging it.