@ggdna/dna-gg 0.5.0 → 0.6.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.
package/dna/_generated.json
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"name": "base",
|
|
6
6
|
"package": "helix",
|
|
7
7
|
"ecosystem": null,
|
|
8
|
-
"resolvedVersion": "1.
|
|
8
|
+
"resolvedVersion": "1.9.0",
|
|
9
9
|
"via": null,
|
|
10
10
|
"hash": "0x6883da335b415f9d"
|
|
11
11
|
},
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"name": "dna-install",
|
|
14
14
|
"package": "@ggdna/dna-install",
|
|
15
15
|
"ecosystem": "node",
|
|
16
|
-
"resolvedVersion": "0.1.
|
|
16
|
+
"resolvedVersion": "0.1.2",
|
|
17
17
|
"via": null,
|
|
18
18
|
"hash": "0xbe88eb4256745ee1"
|
|
19
19
|
},
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"name": "dna-index",
|
|
22
22
|
"package": "@ggdna/dna-index",
|
|
23
23
|
"ecosystem": "node",
|
|
24
|
-
"resolvedVersion": "0.1.
|
|
24
|
+
"resolvedVersion": "0.1.2",
|
|
25
25
|
"via": null,
|
|
26
26
|
"hash": "0x1d92b0add37a1ac7"
|
|
27
27
|
},
|
|
@@ -31,14 +31,14 @@
|
|
|
31
31
|
"ecosystem": null,
|
|
32
32
|
"resolvedVersion": null,
|
|
33
33
|
"via": null,
|
|
34
|
-
"hash": "
|
|
34
|
+
"hash": "0x07dc3242e9b7bbc2"
|
|
35
35
|
}
|
|
36
36
|
],
|
|
37
37
|
"claude": {
|
|
38
38
|
"claudeMdInclude": null,
|
|
39
39
|
"claudeMdFromDna": true
|
|
40
40
|
},
|
|
41
|
-
"baseVersion": "1.
|
|
41
|
+
"baseVersion": "1.9.0",
|
|
42
42
|
"baseHash": "0x6883da335b415f9d",
|
|
43
43
|
"instances": [
|
|
44
44
|
{
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": ".claude/skills/gg-commit/SKILL.md",
|
|
50
|
-
"hash": "
|
|
50
|
+
"hash": "0xdb7a268397facfc4"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": ".claude/skills/gg-publish/SKILL.md",
|
|
54
|
-
"hash": "
|
|
54
|
+
"hash": "0x61626e5e2425d9ab"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"path": ".claude/skills/gg-push/SKILL.md",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"path": ".claude/skills/gg-ticket/SKILL.md",
|
|
62
|
-
"hash": "
|
|
62
|
+
"hash": "0xe2e320fd71159027"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"path": ".claude/skills/gg/SKILL.md",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
"path": "doc/guides/for-ai/ai-dev-guide.md",
|
|
90
|
-
"hash": "
|
|
90
|
+
"hash": "0xa7d0d75d19ccfb0f"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"path": "doc/guides/index-guide.md",
|
|
@@ -62,8 +62,16 @@ repositories. The ticket then carries no plan of its own.
|
|
|
62
62
|
|
|
63
63
|
## Add git repositories
|
|
64
64
|
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
Ask the user how the repos are chosen, as a single question with two
|
|
66
|
+
options: automatically or manually.
|
|
67
|
+
|
|
68
|
+
Manually: ask in a second single input field which repos the ticket needs,
|
|
69
|
+
e.g. `repo1 repo2`. Check each name against the repos in .ocean and ask
|
|
70
|
+
again for names that do not exist there. The entered list is the
|
|
71
|
+
confirmation; add the repos as shown below.
|
|
72
|
+
|
|
73
|
+
Automatically: look at the `index.jsonc` of each repo in .ocean and decide
|
|
74
|
+
which repos need to be added to the ticket.
|
|
67
75
|
Make a plan for how you roughly want to implement the ticket.
|
|
68
76
|
If certain parts of the implementation belong to a domain that does not yet
|
|
69
77
|
exist in the .ocean folder, consider creating a new repository.
|
|
@@ -106,6 +114,42 @@ ticket.
|
|
|
106
114
|
- Plan only: skip this step. The following steps then apply to the project
|
|
107
115
|
management repo only.
|
|
108
116
|
|
|
117
|
+
## Keep the publish config up to date
|
|
118
|
+
|
|
119
|
+
Each repo of the ticket has a file `.gg/publish_config.json`. gg offers its
|
|
120
|
+
values as defaults: `gg do commit` pre-fills the commit message editor with
|
|
121
|
+
`nextCommitMessage`, `gg do publish` pre-selects `versionIncrement` and
|
|
122
|
+
pre-fills the merge message with `mergeMessage`. git ignores the file.
|
|
123
|
+
|
|
124
|
+
Whenever you change code in a repo, update `nextCommitMessage` of that repo
|
|
125
|
+
so it describes everything that is not committed yet, not only your last
|
|
126
|
+
step. Create the file if it does not exist. Change only the keys you mean
|
|
127
|
+
to change and keep the rest — `commits` is written by gg, never by hand.
|
|
128
|
+
|
|
129
|
+
```json
|
|
130
|
+
{
|
|
131
|
+
"publishConfig": {
|
|
132
|
+
"nextCommitMessage": {
|
|
133
|
+
"firstLine": "Let the user pick the ticket repos",
|
|
134
|
+
"details": ["Ask whether repos are chosen automatically or manually"]
|
|
135
|
+
},
|
|
136
|
+
"mergeMessage": "Let the user pick the ticket repos manually",
|
|
137
|
+
"versionIncrement": "minor"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
- `firstLine`: imperative, at most 60 characters
|
|
143
|
+
- `details`: optional, one entry per line
|
|
144
|
+
- `mergeMessage`: the pull request title and the merge commit message of
|
|
145
|
+
the repo
|
|
146
|
+
- `versionIncrement`: `patch`, `minor` or `major`, matching what the
|
|
147
|
+
ticket changes in the repo
|
|
148
|
+
|
|
149
|
+
Set `mergeMessage` and `versionIncrement` as soon as the change of the repo
|
|
150
|
+
is clear, and adjust them when it changes. Only `gg do commit` in the
|
|
151
|
+
ticket folder reads `nextCommitMessage`; `gg one do commit` does not.
|
|
152
|
+
|
|
109
153
|
## Commit
|
|
110
154
|
|
|
111
155
|
```bash
|
|
@@ -144,7 +188,8 @@ Afterwards load the review-light skill and execute it.
|
|
|
144
188
|
|
|
145
189
|
- Create a blog post for the current ticket
|
|
146
190
|
- Update the index.jsonc and README.md
|
|
147
|
-
-
|
|
191
|
+
- Check `mergeMessage` and `versionIncrement` in `.gg/publish_config.json`
|
|
192
|
+
of each repo — `gg do publish` offers them as defaults
|
|
148
193
|
- If the ticket was only planned, publish the project management repo only
|
|
149
194
|
|
|
150
195
|
Ask the user to run the following command **manually**:
|
|
@@ -22,7 +22,13 @@ whenever you are inside a repo.
|
|
|
22
22
|
|
|
23
23
|
Look at `git status` and `git diff` in the repos of the ticket. Propose one
|
|
24
24
|
imperative one-liner that says what the step does, not which files changed.
|
|
25
|
-
|
|
25
|
+
Start from `nextCommitMessage` in `.gg/publish_config.json` of each repo and
|
|
26
|
+
update it there if it no longer matches the diff (see the development
|
|
27
|
+
guide). Let the user confirm it.
|
|
28
|
+
|
|
29
|
+
If the user runs `gg do commit` in the ticket folder without `-m`, the
|
|
30
|
+
editor already shows each repo's `nextCommitMessage` — `-m` overrides it
|
|
31
|
+
with one message for all repos.
|
|
26
32
|
|
|
27
33
|
## 3. Commit
|
|
28
34
|
|
|
@@ -15,12 +15,15 @@ creates and pushes the version tags. It is interactive — the user runs it.
|
|
|
15
15
|
|
|
16
16
|
## 2. Configure the publish
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
Write per repo into `.gg/publish_config.json` (see the development guide):
|
|
19
|
+
|
|
20
|
+
- `mergeMessage` — the pull request title and merge commit message
|
|
21
|
+
- `versionIncrement` — `patch`, `minor` or `major`, matching what the
|
|
22
|
+
ticket changed
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
`gg do publish` pre-fills the merge message and pre-selects the version
|
|
25
|
+
increment with these values. Never run `gg do configure-publish` yourself,
|
|
26
|
+
it is interactive. Check that `CHANGELOG.md` reads well.
|
|
24
27
|
|
|
25
28
|
## 3. Let the user publish
|
|
26
29
|
|
|
@@ -52,10 +52,19 @@ Call it the "project management repo" whenever you write to the user, never
|
|
|
52
52
|
|
|
53
53
|
## 4. Choose the code repos
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
Ask the user how the code repos are chosen, as a single question with two
|
|
56
|
+
options:
|
|
57
|
+
|
|
58
|
+
- **automatically** — Claude finds the repos. Read the `index.md` of the
|
|
59
|
+
candidate repos in `.ocean`. Tell the user which repos the ticket needs
|
|
60
|
+
and what you roughly want to change in each one. If a part belongs to a
|
|
61
|
+
domain that has no repo yet, say so and ask whether to create one.
|
|
62
|
+
- **manually** — the user names the repos. Ask in a second single input
|
|
63
|
+
field which repos the ticket needs, e.g. `repo1 repo2`. Check each name
|
|
64
|
+
against the repos in `.ocean` and ask again for names that do not exist
|
|
65
|
+
there. The entered list is the confirmation.
|
|
66
|
+
|
|
67
|
+
A ticket that is only planned may need no code repo at all.
|
|
59
68
|
|
|
60
69
|
After the confirmation:
|
|
61
70
|
|
|
@@ -81,6 +90,6 @@ repo alone.
|
|
|
81
90
|
|
|
82
91
|
## Important
|
|
83
92
|
|
|
84
|
-
- Never add repos without confirmation
|
|
85
|
-
can be added later.
|
|
93
|
+
- Never add repos without confirmation — a manually entered list counts as
|
|
94
|
+
one. Rather too few than too many — more can be added later.
|
|
86
95
|
- Do not start the implementation unasked.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggdna/dna-gg",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "DNA layer: gg CLI workflow guides, repo setup scripts and CI check",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dna",
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@ggdna/dna-index": "^0.1.
|
|
32
|
-
"@ggdna/dna-install": "^0.1.
|
|
31
|
+
"@ggdna/dna-index": "^0.1.2",
|
|
32
|
+
"@ggdna/dna-install": "^0.1.2"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/node": "^26.6.
|
|
36
|
-
"prettier": "^3.9.
|
|
35
|
+
"@types/node": "^26.6.3",
|
|
36
|
+
"prettier": "^3.9.9"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"test:dart": "dart test",
|