@erclx/aitk 3.10.0 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/claude/.claude-plugin/plugin.json +1 -1
  2. package/claude/skills/claude-markdown-propose/REQUIREMENT.md +48 -0
  3. package/claude/skills/claude-markdown-propose/SKILL.md +118 -0
  4. package/claude/skills/claude-markdown-propose/references/format.md +107 -0
  5. package/claude/skills/claude-pr-review/SKILL.md +1 -1
  6. package/claude/skills/claude-teach/SKILL.md +1 -1
  7. package/claude/skills/claude-worktree/SKILL.md +1 -1
  8. package/claude/skills/create-snippet/SKILL.md +1 -1
  9. package/claude/skills/git-branch/SKILL.md +1 -1
  10. package/claude/skills/git-commit/SKILL.md +1 -1
  11. package/claude/skills/git-issue/SKILL.md +2 -2
  12. package/claude/skills/git-pr/SKILL.md +5 -5
  13. package/claude/skills/git-split/SKILL.md +2 -2
  14. package/claude/skills/git-stage/SKILL.md +1 -1
  15. package/docs/agents/audits.md +2 -2
  16. package/docs/agents/records.md +1 -1
  17. package/docs/agents/teach.md +1 -1
  18. package/docs/ai-workflow.md +7 -6
  19. package/package.json +1 -1
  20. package/scripts/core/check-skill-paths.sh +1 -2
  21. package/scripts/core/verify.sh +0 -5
  22. package/src/audits/catalog.ts +20 -0
  23. package/src/claude/skills-audit.ts +7 -0
  24. package/src/commands/claude.ts +20 -6
  25. package/src/commands/comments.ts +6 -0
  26. package/src/commands/context.ts +32 -7
  27. package/src/commands/gov.ts +2 -2
  28. package/src/commands/markdown.ts +18 -2
  29. package/src/context/audit.ts +16 -0
  30. package/src/gov/test-order.ts +31 -7
  31. package/src/markdown/files.ts +10 -0
  32. package/src/records/backup.ts +1 -0
  33. package/src/records/validate.ts +1 -3
  34. package/{claude/skills/git-split/references → standards}/branch.md +0 -1
  35. package/{claude/skills/git-commit/references → standards}/commit.md +0 -1
  36. package/{claude/skills/claude-teach/references → standards}/glossary.md +0 -1
  37. package/standards/index.md +6 -0
  38. package/standards/{bundled/issue.md → issue.md} +0 -1
  39. package/standards/{bundled/pr.md → pr.md} +0 -1
  40. package/standards/{bundled/snippets.md → snippets.md} +0 -1
  41. package/claude/skills/claude-worktree/references/branch.md +0 -60
  42. package/claude/skills/create-snippet/references/snippets.md +0 -78
  43. package/claude/skills/git-branch/references/branch.md +0 -60
  44. package/claude/skills/git-issue/references/issue.md +0 -95
  45. package/claude/skills/git-pr/references/branch.md +0 -60
  46. package/claude/skills/git-pr/references/pr.md +0 -139
  47. package/claude/skills/git-split/references/pr.md +0 -139
  48. package/claude/skills/git-stage/references/commit.md +0 -73
  49. package/scripts/core/regen-skill-references.sh +0 -27
  50. package/standards/bundled/branch.md +0 -60
  51. package/standards/bundled/commit.md +0 -73
  52. package/standards/bundled/glossary.md +0 -76
@@ -1,95 +0,0 @@
1
- ---
2
- title: Issue reference
3
- description: GitHub issue title, labels, and body conventions
4
- consumers: git-issue
5
- ---
6
-
7
- # Issue reference
8
-
9
- ## Scope
10
-
11
- Governs a tracker issue: its title, its labels, and the sections its body carries.
12
-
13
- Does not govern:
14
-
15
- - Pull request title and body: `pr.md`
16
- - Whether a phase label may appear in issue text: `versioning.md`
17
- - Voice, rhythm, and sentence construction in issue prose: the `write-human` skill
18
- - Punctuation, formatting, and banned words in issue prose: `markdown.md`
19
-
20
- ## Title
21
-
22
- - Format: `<type>: <subject>`
23
- - Type is `bug` or `task`. Lowercase the type and the first word of the subject.
24
- - Length: 72 characters maximum, no trailing period.
25
-
26
- ## Labels
27
-
28
- - Apply `bug` for a defect and `enhancement` for a task or improvement.
29
- - Both are GitHub default labels. A label that does not exist makes `gh` reject the issue. Create it once with `gh label create`.
30
- - One label per issue unless a second genuinely applies.
31
-
32
- ## Content
33
-
34
- - Use imperative mood and describe the actual defect or work, not that something is wrong.
35
- - Do not open with "This issue," "I want," or "We should."
36
- - Do not use buzzwords or speculative future scope.
37
- - State observable behavior for a bug, not a guessed cause.
38
-
39
- ## Sections
40
-
41
- - `## Summary`: one line naming what and why.
42
- - `## Details`: for a bug, what happens versus what is expected. For a task, what to build.
43
- - `## Context`: for a bug, repro steps or commands. For a task, the driving reason, or `none`.
44
- - `## Proposed` (optional): one line naming a fix or approach. Omit when open.
45
-
46
- ## Formatting
47
-
48
- - End every bullet with a period.
49
- - Keep each section to one or two lines.
50
-
51
- ## Examples
52
-
53
- ### Correct (bug)
54
-
55
- ```markdown
56
- ## Summary
57
-
58
- Fix the feedback CLI so it applies the `feedback` label.
59
-
60
- ## Details
61
-
62
- `aitk feedback --github` opens an issue with no label, so `toolkit-triage` never lists it.
63
-
64
- ## Context
65
-
66
- Run a piped `aitk feedback --github`, then check the issue carries no `feedback` label.
67
-
68
- ## Proposed
69
-
70
- Pass `--label feedback` through the shared issue helper.
71
- ```
72
-
73
- ### Correct (task)
74
-
75
- ```markdown
76
- ## Summary
77
-
78
- Add a git-issue skill so a session can file an issue on the current repo.
79
-
80
- ## Details
81
-
82
- Format an issue from session context and file it with `gh issue create`, next to git-pr in the git family.
83
-
84
- ## Context
85
-
86
- The toolkit-issue skill only files on the toolkit repo. A general path is needed for target projects.
87
- ```
88
-
89
- ### Incorrect
90
-
91
- ```markdown
92
- ## Summary
93
-
94
- This issue is about the feedback system being kind of broken, and we should probably make it more robust.
95
- ```
@@ -1,60 +0,0 @@
1
- ---
2
- title: Branch reference
3
- description: Branch naming format and type conventions
4
- consumers: git-branch, git-split, git-pr, claude-worktree
5
- ---
6
-
7
- # Branch reference
8
-
9
- ## Scope
10
-
11
- Governs a git branch name: its structure, its length, and the type vocabulary it draws from.
12
-
13
- Does not govern:
14
-
15
- - Commit subject format, which shares the type vocabulary: `commit.md`
16
- - Pull request title and body: `pr.md`
17
- - Whether a phase label may appear in a branch name: `versioning.md`
18
- - Deriving a slug from a branch name for use in an output filename: `slug.md`
19
-
20
- ## Format
21
-
22
- - Structure: `<type>/<description>` or `<type>/<ticket>-<description>`
23
- - Length: 50 characters maximum
24
- - Casing: kebab-case only, no underscores or camelCase
25
- - Description: 2 words maximum, 3 only when genuinely needed for specificity
26
- - Capture the core change, not the commit message verbatim
27
- - For branches with multiple commits, use the unifying concern as the description.
28
- - Do not duplicate type in description (e.g., `feat/feature-login`)
29
-
30
- ## Types
31
-
32
- - `feat`: new feature or capability
33
- - `fix`: bug fix
34
- - `refactor`: structural changes (not a fix or feature)
35
- - `docs`: documentation only (README)
36
- - `chore`: maintenance tasks (deps, tooling, configs)
37
- - `perf`: performance improvements
38
- - `test`: add or modify tests
39
- - `style`: code formatting (whitespace, semicolons)
40
- - `build`: build system changes (webpack, npm scripts)
41
- - `ci`: CI/CD pipeline changes (GitHub Actions)
42
- - `revert`: revert a previous commit
43
-
44
- ## Examples
45
-
46
- ### Correct
47
-
48
- ```plaintext
49
- feat/jwt-expiration # clear feature scope
50
- fix/AUTH-123-connection-pool # includes ticket ID
51
- refactor/remove-deprecated-endpoints # clear refactor intent
52
- ```
53
-
54
- ### Incorrect
55
-
56
- ```plaintext
57
- feature/auth_stuff # wrong type + underscore
58
- feat/feature-add-login # duplicates type in description
59
- fix/DB-456-fix-the-database-connection-pool-memory-leak # exceeds 50 chars + verbatim message
60
- ```
@@ -1,139 +0,0 @@
1
- ---
2
- title: Pull request reference
3
- description: Pull request title and body conventions
4
- consumers: git-split, git-pr
5
- ---
6
-
7
- # Pull request reference
8
-
9
- ## Scope
10
-
11
- Governs a pull request title and body: their format and the sections the body carries.
12
-
13
- Does not govern:
14
-
15
- - Commit subject format, which shares the title form: `commit.md`
16
- - Branch naming: `branch.md`
17
- - Whether a phase label or a semver tag may appear in a title or body: `versioning.md`
18
- - Voice, rhythm, and sentence construction in pull request prose: the `write-human` skill
19
- - Punctuation, formatting, and banned words in pull request prose: `markdown.md`
20
-
21
- ## Title
22
-
23
- - Format: `<type>(<scope>): <subject>`
24
- - Casing: lowercase for `<type>`, `<scope>`, and first word of `<subject>`
25
- - Length: 72 characters maximum
26
-
27
- ## Content
28
-
29
- - Use imperative mood for all content (`add`, `fix`, `refactor`)
30
- - Do not start with "This PR," "This commit," "Included are," or "I have"
31
- - Do not use buzzwords (`seamless`, `robust`, `game-changer`, `enhanced`)
32
- - Do not describe historical behavior or unchanged code. Describe new behavior only.
33
- - Do not include future promises or speculative documentation
34
- - Do not explain obvious changes (formatting, renaming variables)
35
- - Do not duplicate commit messages verbatim
36
-
37
- ## Sections
38
-
39
- - `## Summary`: 1-2 sentences following `<Action Verb> <Direct Object> to <Result>`, expand for clarity if needed
40
- - `## Key Changes`: name actual files, functions, or modules (e.g., `AuthService.verify()` not "auth handler"). Always use bullet points, never prose.
41
- - `## Technical Context` (optional): 1-2 lines of architectural reasoning explaining why, not what
42
- - Omit Technical Context for docs, config, or trivial changes
43
- - Use bullet points for multiple reasons, one sentence for a single reason
44
- - `## Testing` (optional): specify exact commands or test cases run
45
- - Omit Testing for docs, config, or trivial sync changes
46
- - Use checkboxes, never prose. See Testing discipline for which box gets ticked.
47
- - `## For the reviewer` (optional): what the reviewer should confirm, one bullet per request
48
- - Visuals: include only when they clarify architecture, UI, or complex logic flows
49
-
50
- ## Testing discipline
51
-
52
- - Run the check before writing its line. A `- [ ]` reports a check that has not run rather than one that is planned.
53
- - Tick the box and state the observed result. `- [x] npm test passes, 42 tests` beats `- [ ] run npm test`.
54
- - Quote the count or output the run reported, never a figure carried from elsewhere.
55
- - Leave a box unchecked only when a human is required, and name which human and why on the same line.
56
- - Human-only covers visual or aesthetic judgment, anything needing credentials or a live third-party service, anything needing a second machine or a fresh OS, and judgment about whether a boundary or an abstraction reads correctly. The agent runs everything else.
57
- - What makes a human required is a capability the agent lacks, never the cost of the run. Authorizing a spend is the operator's and performing the run is not, so an arm the repository ships a harness for gets driven once the operator has cleared the spend, and the box records what it returned.
58
- - A tool refusal that actually fired is a capability gap, and the line says which refusal rather than naming the cost behind it. A refusal predicted and never met is not one.
59
- - A live agent session is not a human. A box reading `needs a live session driving the skill` names the thing writing the description, so that run is owed rather than blocked.
60
- - Put a request for the reviewer under `## For the reviewer`. It is a request rather than unfinished testing, so it never appears as an unchecked Testing box.
61
-
62
- ## Formatting
63
-
64
- - End every bullet point with a period
65
-
66
- ## Examples
67
-
68
- ### Template
69
-
70
- ```markdown
71
- ## Summary
72
-
73
- <Action Verb> <Direct Object> to <Result>.
74
-
75
- ## Key Changes
76
-
77
- - <Verb> <specific component/file/function> (<reason if non-obvious>)
78
- - <Verb> <specific component/file/function>
79
-
80
- ## Technical Context
81
-
82
- - <Architectural reasoning explaining why, not what>
83
-
84
- ## Testing
85
-
86
- - [x] <Command run> <observed result>
87
- - [x] <Edge case verified> <what was observed>
88
- - [ ] <Human-only check> (<which human, why>)
89
-
90
- ## For the reviewer
91
-
92
- - <What the reviewer should confirm>
93
- ```
94
-
95
- ### Correct
96
-
97
- ```markdown
98
- ## Summary
99
-
100
- Update auth middleware to enforce jwt expiration checks. # imperative + direct object + result
101
-
102
- ## Key Changes
103
-
104
- - Add `verifyExpiration()` to `src/auth/validators.ts`. # specific function + file path
105
- - Refactor `AuthService.authenticate()` to handle 401 codes. # named component + clear change
106
-
107
- ## Technical Context
108
-
109
- - Migration to stateless session management for horizontal scalability. # why, not what
110
-
111
- ## Testing
112
-
113
- - [x] `npm run test:auth` passes, 42 tests. # command run + observed result
114
- - [x] Expired token rejected with a 401 against a local server. # edge case + what happened
115
- - [ ] Staging smoke test (release owner, needs staging credentials). # unchecked + which human + why
116
-
117
- ## For the reviewer
118
-
119
- - Confirm the 401 and 403 split reads correctly for the public API. # a request, not a test result
120
- ```
121
-
122
- ### Incorrect
123
-
124
- ```markdown
125
- ## Summary
126
-
127
- This PR updates the authentication system to be more robust. # "This PR" opener + buzzword
128
-
129
- ## Key Changes
130
-
131
- - Updated auth middleware files # vague, no specific component, no period
132
- - The old system used to check tokens differently # describes historical behavior
133
-
134
- ## Testing
135
-
136
- - Tested manually # no specific command or case
137
- - [ ] `npm run test:auth` # unchecked box for a check the agent can run
138
- - [ ] Reviewer confirms the error split reads correctly # a reviewer request, belongs under `## For the reviewer`
139
- ```
@@ -1,139 +0,0 @@
1
- ---
2
- title: Pull request reference
3
- description: Pull request title and body conventions
4
- consumers: git-split, git-pr
5
- ---
6
-
7
- # Pull request reference
8
-
9
- ## Scope
10
-
11
- Governs a pull request title and body: their format and the sections the body carries.
12
-
13
- Does not govern:
14
-
15
- - Commit subject format, which shares the title form: `commit.md`
16
- - Branch naming: `branch.md`
17
- - Whether a phase label or a semver tag may appear in a title or body: `versioning.md`
18
- - Voice, rhythm, and sentence construction in pull request prose: the `write-human` skill
19
- - Punctuation, formatting, and banned words in pull request prose: `markdown.md`
20
-
21
- ## Title
22
-
23
- - Format: `<type>(<scope>): <subject>`
24
- - Casing: lowercase for `<type>`, `<scope>`, and first word of `<subject>`
25
- - Length: 72 characters maximum
26
-
27
- ## Content
28
-
29
- - Use imperative mood for all content (`add`, `fix`, `refactor`)
30
- - Do not start with "This PR," "This commit," "Included are," or "I have"
31
- - Do not use buzzwords (`seamless`, `robust`, `game-changer`, `enhanced`)
32
- - Do not describe historical behavior or unchanged code. Describe new behavior only.
33
- - Do not include future promises or speculative documentation
34
- - Do not explain obvious changes (formatting, renaming variables)
35
- - Do not duplicate commit messages verbatim
36
-
37
- ## Sections
38
-
39
- - `## Summary`: 1-2 sentences following `<Action Verb> <Direct Object> to <Result>`, expand for clarity if needed
40
- - `## Key Changes`: name actual files, functions, or modules (e.g., `AuthService.verify()` not "auth handler"). Always use bullet points, never prose.
41
- - `## Technical Context` (optional): 1-2 lines of architectural reasoning explaining why, not what
42
- - Omit Technical Context for docs, config, or trivial changes
43
- - Use bullet points for multiple reasons, one sentence for a single reason
44
- - `## Testing` (optional): specify exact commands or test cases run
45
- - Omit Testing for docs, config, or trivial sync changes
46
- - Use checkboxes, never prose. See Testing discipline for which box gets ticked.
47
- - `## For the reviewer` (optional): what the reviewer should confirm, one bullet per request
48
- - Visuals: include only when they clarify architecture, UI, or complex logic flows
49
-
50
- ## Testing discipline
51
-
52
- - Run the check before writing its line. A `- [ ]` reports a check that has not run rather than one that is planned.
53
- - Tick the box and state the observed result. `- [x] npm test passes, 42 tests` beats `- [ ] run npm test`.
54
- - Quote the count or output the run reported, never a figure carried from elsewhere.
55
- - Leave a box unchecked only when a human is required, and name which human and why on the same line.
56
- - Human-only covers visual or aesthetic judgment, anything needing credentials or a live third-party service, anything needing a second machine or a fresh OS, and judgment about whether a boundary or an abstraction reads correctly. The agent runs everything else.
57
- - What makes a human required is a capability the agent lacks, never the cost of the run. Authorizing a spend is the operator's and performing the run is not, so an arm the repository ships a harness for gets driven once the operator has cleared the spend, and the box records what it returned.
58
- - A tool refusal that actually fired is a capability gap, and the line says which refusal rather than naming the cost behind it. A refusal predicted and never met is not one.
59
- - A live agent session is not a human. A box reading `needs a live session driving the skill` names the thing writing the description, so that run is owed rather than blocked.
60
- - Put a request for the reviewer under `## For the reviewer`. It is a request rather than unfinished testing, so it never appears as an unchecked Testing box.
61
-
62
- ## Formatting
63
-
64
- - End every bullet point with a period
65
-
66
- ## Examples
67
-
68
- ### Template
69
-
70
- ```markdown
71
- ## Summary
72
-
73
- <Action Verb> <Direct Object> to <Result>.
74
-
75
- ## Key Changes
76
-
77
- - <Verb> <specific component/file/function> (<reason if non-obvious>)
78
- - <Verb> <specific component/file/function>
79
-
80
- ## Technical Context
81
-
82
- - <Architectural reasoning explaining why, not what>
83
-
84
- ## Testing
85
-
86
- - [x] <Command run> <observed result>
87
- - [x] <Edge case verified> <what was observed>
88
- - [ ] <Human-only check> (<which human, why>)
89
-
90
- ## For the reviewer
91
-
92
- - <What the reviewer should confirm>
93
- ```
94
-
95
- ### Correct
96
-
97
- ```markdown
98
- ## Summary
99
-
100
- Update auth middleware to enforce jwt expiration checks. # imperative + direct object + result
101
-
102
- ## Key Changes
103
-
104
- - Add `verifyExpiration()` to `src/auth/validators.ts`. # specific function + file path
105
- - Refactor `AuthService.authenticate()` to handle 401 codes. # named component + clear change
106
-
107
- ## Technical Context
108
-
109
- - Migration to stateless session management for horizontal scalability. # why, not what
110
-
111
- ## Testing
112
-
113
- - [x] `npm run test:auth` passes, 42 tests. # command run + observed result
114
- - [x] Expired token rejected with a 401 against a local server. # edge case + what happened
115
- - [ ] Staging smoke test (release owner, needs staging credentials). # unchecked + which human + why
116
-
117
- ## For the reviewer
118
-
119
- - Confirm the 401 and 403 split reads correctly for the public API. # a request, not a test result
120
- ```
121
-
122
- ### Incorrect
123
-
124
- ```markdown
125
- ## Summary
126
-
127
- This PR updates the authentication system to be more robust. # "This PR" opener + buzzword
128
-
129
- ## Key Changes
130
-
131
- - Updated auth middleware files # vague, no specific component, no period
132
- - The old system used to check tokens differently # describes historical behavior
133
-
134
- ## Testing
135
-
136
- - Tested manually # no specific command or case
137
- - [ ] `npm run test:auth` # unchecked box for a check the agent can run
138
- - [ ] Reviewer confirms the error split reads correctly # a reviewer request, belongs under `## For the reviewer`
139
- ```
@@ -1,73 +0,0 @@
1
- ---
2
- title: Commit reference
3
- description: Commit message format and type conventions
4
- consumers: git-commit, git-stage
5
- ---
6
-
7
- # Commit message reference
8
-
9
- ## Scope
10
-
11
- Governs a git commit message: subject structure, the type and scope vocabulary, and the body.
12
-
13
- Does not govern:
14
-
15
- - Branch naming, which shares the type vocabulary: `branch.md`
16
- - Pull request title and body, which share the subject form: `pr.md`
17
- - Whether a phase label or a semver tag may appear in a subject: `versioning.md`
18
-
19
- ## Format
20
-
21
- - Structure: `<type>(<scope>): <subject>`
22
- - Casing: lowercase for `<type>`, `<scope>`, and first word of `<subject>`
23
- - Subject: 72 characters maximum, no trailing period
24
-
25
- ## Types
26
-
27
- - `feat`: new feature or capability
28
- - `fix`: bug fix
29
- - `refactor`: structural changes (not a fix or feature)
30
- - `docs`: documentation only (README)
31
- - `chore`: maintenance tasks (deps, tooling, configs)
32
- - `perf`: performance improvements
33
- - `test`: add or modify tests
34
- - `style`: code formatting (whitespace, semicolons)
35
- - `build`: build system changes (webpack, npm scripts)
36
- - `ci`: CI/CD pipeline changes (GitHub Actions)
37
- - `revert`: revert a previous commit
38
-
39
- ## Scope vocabulary
40
-
41
- - Single lowercase word representing a system component
42
- - Prefer single word
43
- - Use kebab-case only when two words are genuinely needed for specificity
44
- - Do not use specific filenames as scopes
45
- - Do not use a scope that duplicates the type
46
- - Write scopes for release readability. They surface in `changelogithub` release notes.
47
-
48
- ## Subject
49
-
50
- - Use imperative mood (`add` not `added`)
51
- - Describe the actual technical change, not that something changed
52
- - Do not use vague verbs (`improve`, `refine`, `enhance`)
53
- - Do not repeat the scope in the subject line
54
- - Use single quotes if quoting
55
- - No backslash escaping or internal double quotes
56
- - No conversational filler or introductory phrases
57
-
58
- ## Examples
59
-
60
- ### Correct
61
-
62
- ```plaintext
63
- feat(api): add retry logic for failed webhooks # specific verb + clear change
64
- fix(auth): update 'UserSession' validation logic # scoped + imperative + single quotes
65
- ```
66
-
67
- ### Incorrect
68
-
69
- ```plaintext
70
- fix(user-auth): Fixed the redirect loop. # wrong casing + period + multi-word scope
71
- docs(docs): update the readme. # duplicate scope + period
72
- docs(api): improve documentation # vague verb + lacks specificity
73
- ```
@@ -1,27 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -e
3
- set -o pipefail
4
-
5
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6
- PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
7
-
8
- source "$PROJECT_ROOT/scripts/lib/frontmatter.sh"
9
-
10
- BUNDLED_DIR="$PROJECT_ROOT/standards/bundled"
11
- SKILLS_DIR="$PROJECT_ROOT/claude/skills"
12
-
13
- [ -d "$BUNDLED_DIR" ] || exit 0
14
-
15
- while IFS= read -r file; do
16
- filename="$(basename "$file")"
17
- consumers="$(read_frontmatter_field "$file" "consumers")"
18
- [ -z "$consumers" ] && continue
19
- IFS=',' read -ra skills <<<"$consumers"
20
- for skill in "${skills[@]}"; do
21
- skill="${skill// /}"
22
- [ -z "$skill" ] && continue
23
- dest_dir="$SKILLS_DIR/$skill/references"
24
- mkdir -p "$dest_dir"
25
- cp "$file" "$dest_dir/$filename"
26
- done
27
- done < <(find "$BUNDLED_DIR" -type f -name "*.md" | sort)
@@ -1,60 +0,0 @@
1
- ---
2
- title: Branch reference
3
- description: Branch naming format and type conventions
4
- consumers: git-branch, git-split, git-pr, claude-worktree
5
- ---
6
-
7
- # Branch reference
8
-
9
- ## Scope
10
-
11
- Governs a git branch name: its structure, its length, and the type vocabulary it draws from.
12
-
13
- Does not govern:
14
-
15
- - Commit subject format, which shares the type vocabulary: `commit.md`
16
- - Pull request title and body: `pr.md`
17
- - Whether a phase label may appear in a branch name: `versioning.md`
18
- - Deriving a slug from a branch name for use in an output filename: `slug.md`
19
-
20
- ## Format
21
-
22
- - Structure: `<type>/<description>` or `<type>/<ticket>-<description>`
23
- - Length: 50 characters maximum
24
- - Casing: kebab-case only, no underscores or camelCase
25
- - Description: 2 words maximum, 3 only when genuinely needed for specificity
26
- - Capture the core change, not the commit message verbatim
27
- - For branches with multiple commits, use the unifying concern as the description.
28
- - Do not duplicate type in description (e.g., `feat/feature-login`)
29
-
30
- ## Types
31
-
32
- - `feat`: new feature or capability
33
- - `fix`: bug fix
34
- - `refactor`: structural changes (not a fix or feature)
35
- - `docs`: documentation only (README)
36
- - `chore`: maintenance tasks (deps, tooling, configs)
37
- - `perf`: performance improvements
38
- - `test`: add or modify tests
39
- - `style`: code formatting (whitespace, semicolons)
40
- - `build`: build system changes (webpack, npm scripts)
41
- - `ci`: CI/CD pipeline changes (GitHub Actions)
42
- - `revert`: revert a previous commit
43
-
44
- ## Examples
45
-
46
- ### Correct
47
-
48
- ```plaintext
49
- feat/jwt-expiration # clear feature scope
50
- fix/AUTH-123-connection-pool # includes ticket ID
51
- refactor/remove-deprecated-endpoints # clear refactor intent
52
- ```
53
-
54
- ### Incorrect
55
-
56
- ```plaintext
57
- feature/auth_stuff # wrong type + underscore
58
- feat/feature-add-login # duplicates type in description
59
- fix/DB-456-fix-the-database-connection-pool-memory-leak # exceeds 50 chars + verbatim message
60
- ```
@@ -1,73 +0,0 @@
1
- ---
2
- title: Commit reference
3
- description: Commit message format and type conventions
4
- consumers: git-commit, git-stage
5
- ---
6
-
7
- # Commit message reference
8
-
9
- ## Scope
10
-
11
- Governs a git commit message: subject structure, the type and scope vocabulary, and the body.
12
-
13
- Does not govern:
14
-
15
- - Branch naming, which shares the type vocabulary: `branch.md`
16
- - Pull request title and body, which share the subject form: `pr.md`
17
- - Whether a phase label or a semver tag may appear in a subject: `versioning.md`
18
-
19
- ## Format
20
-
21
- - Structure: `<type>(<scope>): <subject>`
22
- - Casing: lowercase for `<type>`, `<scope>`, and first word of `<subject>`
23
- - Subject: 72 characters maximum, no trailing period
24
-
25
- ## Types
26
-
27
- - `feat`: new feature or capability
28
- - `fix`: bug fix
29
- - `refactor`: structural changes (not a fix or feature)
30
- - `docs`: documentation only (README)
31
- - `chore`: maintenance tasks (deps, tooling, configs)
32
- - `perf`: performance improvements
33
- - `test`: add or modify tests
34
- - `style`: code formatting (whitespace, semicolons)
35
- - `build`: build system changes (webpack, npm scripts)
36
- - `ci`: CI/CD pipeline changes (GitHub Actions)
37
- - `revert`: revert a previous commit
38
-
39
- ## Scope vocabulary
40
-
41
- - Single lowercase word representing a system component
42
- - Prefer single word
43
- - Use kebab-case only when two words are genuinely needed for specificity
44
- - Do not use specific filenames as scopes
45
- - Do not use a scope that duplicates the type
46
- - Write scopes for release readability. They surface in `changelogithub` release notes.
47
-
48
- ## Subject
49
-
50
- - Use imperative mood (`add` not `added`)
51
- - Describe the actual technical change, not that something changed
52
- - Do not use vague verbs (`improve`, `refine`, `enhance`)
53
- - Do not repeat the scope in the subject line
54
- - Use single quotes if quoting
55
- - No backslash escaping or internal double quotes
56
- - No conversational filler or introductory phrases
57
-
58
- ## Examples
59
-
60
- ### Correct
61
-
62
- ```plaintext
63
- feat(api): add retry logic for failed webhooks # specific verb + clear change
64
- fix(auth): update 'UserSession' validation logic # scoped + imperative + single quotes
65
- ```
66
-
67
- ### Incorrect
68
-
69
- ```plaintext
70
- fix(user-auth): Fixed the redirect loop. # wrong casing + period + multi-word scope
71
- docs(docs): update the readme. # duplicate scope + period
72
- docs(api): improve documentation # vague verb + lacks specificity
73
- ```