@ggdna/dna-gg 0.4.1 → 0.5.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/README.md +9 -6
- package/dna/CLAUDE.md +3 -2
- package/dna/_dna.json +1 -1
- package/dna/_generated.json +21 -17
- package/dna/doc/guides/develop-guide.md +7 -5
- package/dna/doc/guides/for-ai/ai-dev-guide.md +39 -19
- package/dna/dot-claude/skills/gg/SKILL.md +38 -0
- package/dna/dot-claude/skills/{cleanup → gg-cleanup}/SKILL.md +2 -2
- package/dna/dot-claude/skills/{commit → gg-commit}/SKILL.md +22 -6
- package/dna/dot-claude/skills/{publish → gg-publish}/SKILL.md +3 -3
- package/dna/dot-claude/skills/{push → gg-push}/SKILL.md +3 -3
- package/dna/dot-claude/skills/gg-ticket/SKILL.md +86 -0
- package/package.json +3 -3
- package/dna/dot-claude/skills/ticket/SKILL.md +0 -71
package/README.md
CHANGED
|
@@ -23,11 +23,14 @@ publish.
|
|
|
23
23
|
|
|
24
24
|
## Skills
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- `/
|
|
29
|
-
- `/
|
|
30
|
-
- `/
|
|
26
|
+
All skills of this layer are prefixed with `gg-`:
|
|
27
|
+
|
|
28
|
+
- `/gg` — lists the skills below and says which one comes next
|
|
29
|
+
- `/gg-ticket` — creates a ticket and adds the repos it needs
|
|
30
|
+
- `/gg-commit` — proposes a message and commits through `gg do commit`
|
|
31
|
+
- `/gg-push` — pushes the ticket branches
|
|
32
|
+
- `/gg-publish` — releases the ticket
|
|
33
|
+
- `/gg-cleanup` — removes what the ticket left behind
|
|
31
34
|
|
|
32
35
|
## Configuration
|
|
33
36
|
|
|
@@ -37,7 +40,7 @@ publish.
|
|
|
37
40
|
## Scripts
|
|
38
41
|
|
|
39
42
|
- `dna/scripts/delete-feature-branch.js` — the one script this layer calls
|
|
40
|
-
itself, from `/cleanup`, with the two functions it imports:
|
|
43
|
+
itself, from `/gg-cleanup`, with the two functions it imports:
|
|
41
44
|
`dna/scripts/functions/colors.js` and
|
|
42
45
|
`dna/scripts/functions/run-command.js`
|
|
43
46
|
|
package/dna/CLAUDE.md
CHANGED
|
@@ -6,5 +6,6 @@ comes next:
|
|
|
6
6
|
|
|
7
7
|
@doc/guides/for-ai/ai-dev-guide.md
|
|
8
8
|
|
|
9
|
-
The steps are also available as skills: `/ticket`, `/commit`,
|
|
10
|
-
`/publish`, `/cleanup`.
|
|
9
|
+
The steps are also available as skills: `/gg-ticket`, `/gg-commit`,
|
|
10
|
+
`/gg-push`, `/gg-publish`, `/gg-cleanup`. `/gg` lists them and says which
|
|
11
|
+
one comes next.
|
package/dna/_dna.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// every gg repo follows. Parents first, this layer wins.
|
|
9
9
|
//
|
|
10
10
|
// dna_scripts is deliberately not a parent: this layer calls exactly one
|
|
11
|
-
// of its scripts — `delete-feature-branch.js` from the /cleanup skill —
|
|
11
|
+
// of its scripts — `delete-feature-branch.js` from the /gg-cleanup skill —
|
|
12
12
|
// and carries its own copy of it under dna/scripts/ instead. A consumer
|
|
13
13
|
// that wants the full script set lists dna_scripts itself; the copies
|
|
14
14
|
// here are byte-identical, so having both layers changes nothing.
|
package/dna/_generated.json
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"ecosystem": null,
|
|
32
32
|
"resolvedVersion": null,
|
|
33
33
|
"via": null,
|
|
34
|
-
"hash": "
|
|
34
|
+
"hash": "0x80c6dc9dbb7e23c3"
|
|
35
35
|
}
|
|
36
36
|
],
|
|
37
37
|
"claude": {
|
|
@@ -42,32 +42,36 @@
|
|
|
42
42
|
"baseHash": "0x6883da335b415f9d",
|
|
43
43
|
"instances": [
|
|
44
44
|
{
|
|
45
|
-
"path": ".claude/skills/cleanup/SKILL.md",
|
|
46
|
-
"hash": "
|
|
45
|
+
"path": ".claude/skills/gg-cleanup/SKILL.md",
|
|
46
|
+
"hash": "0x4a6903a51168486a"
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
|
-
"path": ".claude/skills/commit/SKILL.md",
|
|
50
|
-
"hash": "
|
|
49
|
+
"path": ".claude/skills/gg-commit/SKILL.md",
|
|
50
|
+
"hash": "0xd2e82c49f737093b"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
|
-
"path": ".claude/skills/
|
|
54
|
-
"hash": "
|
|
53
|
+
"path": ".claude/skills/gg-publish/SKILL.md",
|
|
54
|
+
"hash": "0xaa7d82e9b407f561"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
|
-
"path": ".claude/skills/
|
|
58
|
-
"hash": "
|
|
57
|
+
"path": ".claude/skills/gg-push/SKILL.md",
|
|
58
|
+
"hash": "0x140e1b8d6cbe222e"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"path": ".claude/skills/gg-ticket/SKILL.md",
|
|
62
|
+
"hash": "0x06f83f4f73c9fb42"
|
|
59
63
|
},
|
|
60
64
|
{
|
|
61
|
-
"path": ".claude/skills/
|
|
62
|
-
"hash": "
|
|
65
|
+
"path": ".claude/skills/gg/SKILL.md",
|
|
66
|
+
"hash": "0x0e643054f49cf6a2"
|
|
63
67
|
},
|
|
64
68
|
{
|
|
65
|
-
"path": ".claude/skills/
|
|
66
|
-
"hash": "
|
|
69
|
+
"path": ".claude/skills/index/SKILL.md",
|
|
70
|
+
"hash": "0xc47429e51622cd7b"
|
|
67
71
|
},
|
|
68
72
|
{
|
|
69
|
-
"path": ".claude/skills/
|
|
70
|
-
"hash": "
|
|
73
|
+
"path": ".claude/skills/install/SKILL.md",
|
|
74
|
+
"hash": "0x29c4ded946b50053"
|
|
71
75
|
},
|
|
72
76
|
{
|
|
73
77
|
"path": ".github/workflows/quick_check.yaml",
|
|
@@ -75,7 +79,7 @@
|
|
|
75
79
|
},
|
|
76
80
|
{
|
|
77
81
|
"path": "doc/guides/develop-guide.md",
|
|
78
|
-
"hash": "
|
|
82
|
+
"hash": "0xc31d5f25f496a9d6"
|
|
79
83
|
},
|
|
80
84
|
{
|
|
81
85
|
"path": "doc/guides/develop-without-ai-guide.md",
|
|
@@ -83,7 +87,7 @@
|
|
|
83
87
|
},
|
|
84
88
|
{
|
|
85
89
|
"path": "doc/guides/for-ai/ai-dev-guide.md",
|
|
86
|
-
"hash": "
|
|
90
|
+
"hash": "0xbbaf82081767678b"
|
|
87
91
|
},
|
|
88
92
|
{
|
|
89
93
|
"path": "doc/guides/index-guide.md",
|
|
@@ -27,15 +27,17 @@ claude
|
|
|
27
27
|
Start the development in Claude
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
/ticket
|
|
30
|
+
/gg-ticket
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Use the following skills in Claude
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
/commit
|
|
37
|
-
/push
|
|
36
|
+
/gg-commit
|
|
37
|
+
/gg-push
|
|
38
38
|
/review
|
|
39
|
-
/publish
|
|
40
|
-
/cleanup
|
|
39
|
+
/gg-publish
|
|
40
|
+
/gg-cleanup
|
|
41
41
|
```
|
|
42
|
+
|
|
43
|
+
`/gg` lists the skills of the workflow and says which one comes next.
|
|
@@ -10,6 +10,10 @@ found in the LICENSE file in the root of this package.
|
|
|
10
10
|
|
|
11
11
|
## Ask the developer for the ticket infos
|
|
12
12
|
|
|
13
|
+
Ask for these one after the other and give the developer a single input
|
|
14
|
+
field per answer — one question per field, never all of them in one
|
|
15
|
+
question and never as a plain prose question:
|
|
16
|
+
|
|
13
17
|
- Ask for the ticket ID
|
|
14
18
|
- Ask for the ticket title
|
|
15
19
|
- Ask for the ticket description
|
|
@@ -29,26 +33,32 @@ gg do create ticket dnaJiraPrefix-145 -m"Fix issue abc"
|
|
|
29
33
|
cd tickets/dnaJiraPrefix-145
|
|
30
34
|
```
|
|
31
35
|
|
|
32
|
-
## Choose the project management repo
|
|
36
|
+
## Choose the project management repo — or work without one
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
decisions and blog posts of a project, but no code.
|
|
38
|
+
A ticket may belong to a project management repo. It holds the plans,
|
|
39
|
+
decisions and blog posts of a project, but no code. It is optional: ask the
|
|
40
|
+
user whether this ticket uses one. Write "project management repo" whenever
|
|
41
|
+
you write to the user, never "PM repo".
|
|
36
42
|
|
|
37
|
-
|
|
38
|
-
ticket belongs to
|
|
39
|
-
planning, not about code. If one fits, propose
|
|
40
|
-
ask the user which repo to use, or whether to
|
|
43
|
+
With a project management repo: look at the `index.jsonc` of each repo in
|
|
44
|
+
.ocean and find the one the ticket belongs to — its summary or domain talks
|
|
45
|
+
about project management or planning, not about code. If one fits, propose
|
|
46
|
+
it to the user. If none fits, ask the user which repo to use, or whether to
|
|
47
|
+
create a new one.
|
|
41
48
|
|
|
42
|
-
After the user's confirmation, add
|
|
43
|
-
|
|
49
|
+
After the user's confirmation, add it to the ticket **before** any other
|
|
50
|
+
repo:
|
|
44
51
|
|
|
45
52
|
```bash
|
|
46
53
|
gg do add pm_repo
|
|
47
54
|
```
|
|
48
55
|
|
|
49
|
-
If
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
If it has `doc/guides/pm-repo-guide.md`, read it: it describes how the repo
|
|
57
|
+
is structured and how planning works there. If the file does not exist,
|
|
58
|
+
follow the guides that repo has.
|
|
59
|
+
|
|
60
|
+
Without a project management repo: skip this step and continue with the git
|
|
61
|
+
repositories. The ticket then carries no plan of its own.
|
|
52
62
|
|
|
53
63
|
## Add git repositories
|
|
54
64
|
|
|
@@ -61,8 +71,8 @@ Ask the user about this. Also explain to the user what you roughly want to
|
|
|
61
71
|
change in which repo to implement the ticket and let them confirm that the
|
|
62
72
|
corresponding repos are added to the ticket.
|
|
63
73
|
|
|
64
|
-
If the ticket is only planned (see below), the
|
|
65
|
-
of the ticket.
|
|
74
|
+
If the ticket is only planned (see below), the project management repo may
|
|
75
|
+
be the only repo of the ticket.
|
|
66
76
|
|
|
67
77
|
After the user's confirmation, add the repos to the ticket:
|
|
68
78
|
|
|
@@ -80,9 +90,10 @@ gg do code
|
|
|
80
90
|
|
|
81
91
|
Ask the user whether the ticket is planned before it is implemented.
|
|
82
92
|
|
|
83
|
-
If yes, write the plan into the
|
|
93
|
+
If yes, write the plan into the project management repo, following its
|
|
84
94
|
`doc/guides/pm-repo-guide.md` if present, otherwise its other guides: the
|
|
85
|
-
goal, the affected repos, the rough steps and open questions.
|
|
95
|
+
goal, the affected repos, the rough steps and open questions. Without a
|
|
96
|
+
project management repo, put the plan into the ticket itself. Let the user
|
|
86
97
|
review the plan and revise it until they confirm it.
|
|
87
98
|
|
|
88
99
|
## Implement (optional)
|
|
@@ -92,8 +103,8 @@ planned. Some tickets are only planned; the implementation follows in a later
|
|
|
92
103
|
ticket.
|
|
93
104
|
|
|
94
105
|
- Implement: implement your features based on the guides
|
|
95
|
-
- Plan only: skip this step. The following steps then apply to the
|
|
96
|
-
only.
|
|
106
|
+
- Plan only: skip this step. The following steps then apply to the project
|
|
107
|
+
management repo only.
|
|
97
108
|
|
|
98
109
|
## Commit
|
|
99
110
|
|
|
@@ -101,6 +112,15 @@ ticket.
|
|
|
101
112
|
gg do commit
|
|
102
113
|
```
|
|
103
114
|
|
|
115
|
+
`gg do commit` and `gg can commit` act on all repos of the ticket. When you
|
|
116
|
+
are inside a single repo instead of the ticket folder, use the standalone
|
|
117
|
+
form on that repo:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
gg one can commit
|
|
121
|
+
gg one do commit
|
|
122
|
+
```
|
|
123
|
+
|
|
104
124
|
## Push
|
|
105
125
|
|
|
106
126
|
```bash
|
|
@@ -125,7 +145,7 @@ Afterwards load the review-light skill and execute it.
|
|
|
125
145
|
- Create a blog post for the current ticket
|
|
126
146
|
- Update the index.jsonc and README.md
|
|
127
147
|
- Create the configuration for gg do publish
|
|
128
|
-
- If the ticket was only planned, publish the
|
|
148
|
+
- If the ticket was only planned, publish the project management repo only
|
|
129
149
|
|
|
130
150
|
Ask the user to run the following command **manually**:
|
|
131
151
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gg
|
|
3
|
+
description: Lists the skills of the gg workflow and says which one comes next. Use when the user says "/gg", asks which gg skills exist, or asks how the gg workflow continues.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# The gg workflow skills
|
|
7
|
+
|
|
8
|
+
Every skill of this workflow carries the `gg-` prefix. Print the list
|
|
9
|
+
below, in this order — it is the order of a ticket's life.
|
|
10
|
+
|
|
11
|
+
- `/gg-ticket` — creates a ticket and adds the repos it needs
|
|
12
|
+
- `/gg-commit` — proposes a message and commits through `gg do commit`,
|
|
13
|
+
or `gg one do commit` inside a single repo
|
|
14
|
+
- `/gg-push` — pushes the ticket branches with `gg do push`
|
|
15
|
+
- `/gg-publish` — prepares the release and hands `gg do publish` over to
|
|
16
|
+
the user
|
|
17
|
+
- `/gg-cleanup` — removes what the published ticket left behind
|
|
18
|
+
|
|
19
|
+
A repo may carry more `gg-` skills than these. Look at
|
|
20
|
+
`.claude/skills/gg-*` and add what you find there, with the `description`
|
|
21
|
+
of its `SKILL.md` as the text.
|
|
22
|
+
|
|
23
|
+
## Say which skill comes next
|
|
24
|
+
|
|
25
|
+
Read the state of the current ticket and name the next step:
|
|
26
|
+
|
|
27
|
+
- No ticket folder yet → `/gg-ticket`
|
|
28
|
+
- Uncommitted work → `/gg-commit`
|
|
29
|
+
- Committed, not pushed → `/gg-push`
|
|
30
|
+
- Pushed and the pull requests are green → `/gg-publish`
|
|
31
|
+
- Published → `/gg-cleanup`
|
|
32
|
+
|
|
33
|
+
The review between push and publish is `gg do review` plus the
|
|
34
|
+
`/review-light` skill, not a `gg-` skill of this layer.
|
|
35
|
+
|
|
36
|
+
## Important
|
|
37
|
+
|
|
38
|
+
- Only list the skills, never run one of them unasked.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: cleanup
|
|
3
|
-
description: Removes what a published ticket left behind — feature branches, the ticket folder, and a stale workspace. Use when the user says "/cleanup" or asks to clean up after a release.
|
|
2
|
+
name: gg-cleanup
|
|
3
|
+
description: Removes what a published ticket left behind — feature branches, the ticket folder, and a stale workspace. Use when the user says "/gg-cleanup" or asks to clean up after a release.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Clean up after the publish
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: commit
|
|
3
|
-
description: Commits the ticket's work
|
|
2
|
+
name: gg-commit
|
|
3
|
+
description: Commits the ticket's work with `gg do commit`, or a standalone repo with `gg one do commit`. Use when the user says "/gg-commit" or asks to commit the current changes.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Commit
|
|
@@ -8,13 +8,23 @@ description: Commits the ticket's work in every repo with `gg do commit`. Use wh
|
|
|
8
8
|
`gg do commit` runs the checks of each repo and commits only when they are
|
|
9
9
|
green. The message also becomes the `CHANGELOG.md` entry.
|
|
10
10
|
|
|
11
|
-
## 1.
|
|
11
|
+
## 1. Pick the command for where you are
|
|
12
|
+
|
|
13
|
+
- **In the ticket folder** — `gg can commit` and `gg do commit` act on
|
|
14
|
+
every repo of the ticket.
|
|
15
|
+
- **Inside a single repo**, a standalone one or one repo of a ticket —
|
|
16
|
+
`gg one can commit` and `gg one do commit` act on that repo alone.
|
|
17
|
+
|
|
18
|
+
The rest of this skill writes `gg do commit`; use the `gg one` form
|
|
19
|
+
whenever you are inside a repo.
|
|
20
|
+
|
|
21
|
+
## 2. Propose a message
|
|
12
22
|
|
|
13
23
|
Look at `git status` and `git diff` in the repos of the ticket. Propose one
|
|
14
24
|
imperative one-liner that says what the step does, not which files changed.
|
|
15
25
|
Let the user confirm it.
|
|
16
26
|
|
|
17
|
-
##
|
|
27
|
+
## 3. Commit
|
|
18
28
|
|
|
19
29
|
From the ticket folder:
|
|
20
30
|
|
|
@@ -22,9 +32,15 @@ From the ticket folder:
|
|
|
22
32
|
gg do commit -m"<message>"
|
|
23
33
|
```
|
|
24
34
|
|
|
35
|
+
From a single repo:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
gg one do commit -m"<message>"
|
|
39
|
+
```
|
|
40
|
+
|
|
25
41
|
Add `-l` when the message must not land in `CHANGELOG.md`.
|
|
26
42
|
|
|
27
|
-
##
|
|
43
|
+
## 4. On a failing check
|
|
28
44
|
|
|
29
45
|
`gg do commit` stops at the first red check. Fix the cause, never the check,
|
|
30
46
|
then run the command again. Files generated by the DNA are committed
|
|
@@ -34,4 +50,4 @@ its source under `dna/` instead.
|
|
|
34
50
|
## Important
|
|
35
51
|
|
|
36
52
|
- Never commit without the confirmed message.
|
|
37
|
-
- Never push here — that is `/push`.
|
|
53
|
+
- Never push here — that is `/gg-push`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: publish
|
|
3
|
-
description: Prepares the release of a reviewed ticket and hands `gg do publish` over to the user. Use when the user says "/publish" or asks to release the ticket.
|
|
2
|
+
name: gg-publish
|
|
3
|
+
description: Prepares the release of a reviewed ticket and hands `gg do publish` over to the user. Use when the user says "/gg-publish" or asks to release the ticket.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Publish
|
|
@@ -31,7 +31,7 @@ gg do publish
|
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
It asks whether the ticket and the remote feature branches may be deleted.
|
|
34
|
-
If the user declines, run `/cleanup` afterwards.
|
|
34
|
+
If the user declines, run `/gg-cleanup` afterwards.
|
|
35
35
|
|
|
36
36
|
## Important
|
|
37
37
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: push
|
|
3
|
-
description: Pushes the ticket's commits with `gg do push`. Use when the user says "/push" or asks to push the current ticket.
|
|
2
|
+
name: gg-push
|
|
3
|
+
description: Pushes the ticket's commits with `gg do push`. Use when the user says "/gg-push" or asks to push the current ticket.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Push
|
|
@@ -13,7 +13,7 @@ gg do push
|
|
|
13
13
|
|
|
14
14
|
`gg do push` pushes the repos of the ticket in dependency order and refuses
|
|
15
15
|
repos that still carry uncommitted work. If it reports such a repo, run
|
|
16
|
-
`/commit` first and push again.
|
|
16
|
+
`/gg-commit` first and push again.
|
|
17
17
|
|
|
18
18
|
## Important
|
|
19
19
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gg-ticket
|
|
3
|
+
description: Creates a gg ticket and adds the repos it needs. Use when the user says "/gg-ticket", "new ticket", "fix bug X", or "implement feature Y".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create a ticket
|
|
7
|
+
|
|
8
|
+
All `gg do` commands run inside the workspace. Ask for the workspace
|
|
9
|
+
directory if none is known.
|
|
10
|
+
|
|
11
|
+
## 1. Ask for the ticket data
|
|
12
|
+
|
|
13
|
+
Ask for these three, one after the other, and give the user a single input
|
|
14
|
+
field per answer — one question per field, never all three in one question
|
|
15
|
+
and never as a plain prose question:
|
|
16
|
+
|
|
17
|
+
- Ticket ID, e.g. `DnaJiraPrefix-145`
|
|
18
|
+
- Title, one imperative line, e.g. `Fix issue abc`
|
|
19
|
+
- Description, one or two sentences on what the ticket changes
|
|
20
|
+
|
|
21
|
+
## 2. Create the ticket
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
cd ~/dev/ # workspace
|
|
25
|
+
gg do create ticket DnaJiraPrefix-145 -m"Fix issue abc"
|
|
26
|
+
cd tickets/DnaJiraPrefix-145
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## 3. Choose the project management repo — or work without one
|
|
30
|
+
|
|
31
|
+
A ticket may belong to a project management repo: plans, decisions and blog
|
|
32
|
+
posts of a project, no code. It is optional, so ask the user which way this
|
|
33
|
+
ticket runs:
|
|
34
|
+
|
|
35
|
+
- **with a project management repo** — read the `index.md` of the repos in
|
|
36
|
+
`.ocean`, propose the one the ticket belongs to, and after the
|
|
37
|
+
confirmation add it **before** any other repo:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
gg do add pm_repo
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Read `doc/guides/pm-repo-guide.md` of that repo if it exists: it says how
|
|
44
|
+
the repo is structured and how planning works there. If none of the repos
|
|
45
|
+
fits, ask whether to create one.
|
|
46
|
+
|
|
47
|
+
- **without a project management repo** — skip this step and go straight to
|
|
48
|
+
the code repos. The ticket then carries no plan of its own.
|
|
49
|
+
|
|
50
|
+
Call it the "project management repo" whenever you write to the user, never
|
|
51
|
+
"PM repo".
|
|
52
|
+
|
|
53
|
+
## 4. Choose the code repos
|
|
54
|
+
|
|
55
|
+
Read the `index.md` of the candidate repos in `.ocean`. Tell the user which
|
|
56
|
+
repos the ticket needs and what you roughly want to change in each one. If a
|
|
57
|
+
part belongs to a domain that has no repo yet, say so and ask whether to
|
|
58
|
+
create one. A ticket that is only planned may need no code repo at all.
|
|
59
|
+
|
|
60
|
+
After the confirmation:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
gg do add repo1 repo2
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 5. Open the workspace
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
gg do code
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 6. Plan or implement
|
|
73
|
+
|
|
74
|
+
Ask the user whether the ticket is planned first. If yes, write the plan
|
|
75
|
+
into the project management repo as its `pm-repo-guide.md` describes (or as
|
|
76
|
+
its other guides do) and let the user confirm it. Without a project
|
|
77
|
+
management repo, put the plan into the ticket itself and let the user
|
|
78
|
+
confirm it there. Then ask whether the ticket is implemented now or only
|
|
79
|
+
planned — in the latter case the ticket ends with the project management
|
|
80
|
+
repo alone.
|
|
81
|
+
|
|
82
|
+
## Important
|
|
83
|
+
|
|
84
|
+
- Never add repos without confirmation. Rather too few than too many — more
|
|
85
|
+
can be added later.
|
|
86
|
+
- 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.5.0",
|
|
4
4
|
"description": "DNA layer: gg CLI workflow guides, repo setup scripts and CI check",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dna",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"@ggdna/dna-install": "^0.1.1"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/node": "^26.6.
|
|
36
|
-
"prettier": "^3.9.
|
|
35
|
+
"@types/node": "^26.6.2",
|
|
36
|
+
"prettier": "^3.9.8"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"test:dart": "dart test",
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ticket
|
|
3
|
-
description: Creates a gg ticket and adds the repos it needs. Use when the user says "/ticket", "new ticket", "fix bug X", or "implement feature Y".
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Create a ticket
|
|
7
|
-
|
|
8
|
-
All `gg do` commands run inside the workspace. Ask for the workspace
|
|
9
|
-
directory if none is known.
|
|
10
|
-
|
|
11
|
-
## 1. Ask for the ticket data
|
|
12
|
-
|
|
13
|
-
- Ticket ID, e.g. `DnaJiraPrefix-145`
|
|
14
|
-
- Title, one imperative line, e.g. `Fix issue abc`
|
|
15
|
-
|
|
16
|
-
## 2. Create the ticket
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
cd ~/dev/ # workspace
|
|
20
|
-
gg do create ticket DnaJiraPrefix-145 -m"Fix issue abc"
|
|
21
|
-
cd tickets/DnaJiraPrefix-145
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## 3. Choose the project management repo
|
|
25
|
-
|
|
26
|
-
Every ticket belongs to a project management (PM) repo: plans, decisions and
|
|
27
|
-
blog posts of a project, no code. Read the `index.md` of the repos in
|
|
28
|
-
`.ocean` and propose the PM repo the ticket belongs to. If none fits, ask
|
|
29
|
-
which repo to use or whether to create one.
|
|
30
|
-
|
|
31
|
-
After the confirmation, add it **before** any other repo:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
gg do add pm_repo
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Read `doc/guides/pm-repo-guide.md` of the PM repo if it exists: it says how
|
|
38
|
-
the PM repo is structured and how planning works there.
|
|
39
|
-
|
|
40
|
-
## 4. Choose the code repos
|
|
41
|
-
|
|
42
|
-
Read the `index.md` of the candidate repos in `.ocean`. Tell the user which
|
|
43
|
-
repos the ticket needs and what you roughly want to change in each one. If a
|
|
44
|
-
part belongs to a domain that has no repo yet, say so and ask whether to
|
|
45
|
-
create one. A ticket that is only planned may need no code repo at all.
|
|
46
|
-
|
|
47
|
-
After the confirmation:
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
gg do add repo1 repo2
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## 5. Open the workspace
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
gg do code
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## 6. Plan or implement
|
|
60
|
-
|
|
61
|
-
Ask the user whether the ticket is planned first. If yes, write the plan into
|
|
62
|
-
the PM repo as its `pm-repo-guide.md` describes (or as its other guides do)
|
|
63
|
-
and let the user confirm it. Then ask whether the ticket is
|
|
64
|
-
implemented now or only planned — in the latter case the ticket ends with
|
|
65
|
-
the PM repo alone.
|
|
66
|
-
|
|
67
|
-
## Important
|
|
68
|
-
|
|
69
|
-
- Never add repos without confirmation. Rather too few than too many — more
|
|
70
|
-
can be added later.
|
|
71
|
-
- Do not start the implementation unasked.
|