@solaqua/ghosts 0.2.2 → 0.3.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/engineering/skills/write-adr/README.md +17 -0
- package/engineering/skills/write-adr/SKILL.md +70 -0
- package/engineering/skills/write-adr/templates/adr.md +4 -0
- package/engineering/skills/write-glossary/README.md +14 -0
- package/engineering/skills/write-glossary/SKILL.md +60 -0
- package/engineering/skills/write-glossary/templates/glossary.md +9 -0
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Write ADR
|
|
2
|
+
|
|
3
|
+
Write a compact decision record about architecture, technology, infrastructure,
|
|
4
|
+
security, engineering practices, or domain design. Starts with a title and a
|
|
5
|
+
short paragraph; adds status, alternatives, or consequences when useful.
|
|
6
|
+
Works independently of a glossary.
|
|
7
|
+
|
|
8
|
+
New records default to `/tmp/write-adr-<safe-decision-slug>.md`. A supplied
|
|
9
|
+
destination takes precedence, and requests to revise a specific record edit
|
|
10
|
+
that file.
|
|
11
|
+
|
|
12
|
+
## Credits
|
|
13
|
+
|
|
14
|
+
Shout-out to [Matt Pocock](https://github.com/mattpocock) for the ADR format in
|
|
15
|
+
[domain-modeling](https://github.com/mattpocock/skills/blob/main/skills/engineering/domain-modeling/ADR-FORMAT.md).
|
|
16
|
+
This skill adapts that format for standalone ADR writing across engineering
|
|
17
|
+
decisions.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: write-adr
|
|
3
|
+
description: Create or revise Architecture Decision Records (ADRs) that explain a decision, its context, and its rationale. Use when the user asks to document a decision about architecture, technology, infrastructure, security, engineering practices, or domain design.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Write ADR
|
|
8
|
+
|
|
9
|
+
Record a decision so a future reader can understand what was chosen and why.
|
|
10
|
+
ADRs can cover system structure, technology, deployment, security, engineering
|
|
11
|
+
practices, or domain boundaries. A glossary or domain-modeling session is not
|
|
12
|
+
a prerequisite.
|
|
13
|
+
|
|
14
|
+
## Gather context
|
|
15
|
+
|
|
16
|
+
Read the relevant discussion, existing ADRs, and supporting documentation or
|
|
17
|
+
code. Identify the decision, the constraints that shaped it, the reason for
|
|
18
|
+
the choice, and any material trade-off.
|
|
19
|
+
|
|
20
|
+
Separate a proposal from an agreed decision, and an agreed decision from its
|
|
21
|
+
implementation. Code can show what exists; it does not establish the original
|
|
22
|
+
rationale. Do not invent alternatives, evidence, or agreement. Ask only when
|
|
23
|
+
a missing choice or reason prevents an accurate record; otherwise state
|
|
24
|
+
material uncertainty explicitly.
|
|
25
|
+
|
|
26
|
+
## Write
|
|
27
|
+
|
|
28
|
+
Save a new record to the path the user supplies; otherwise use
|
|
29
|
+
`/tmp/write-adr-<safe-decision-slug>.md`, appending a timestamp when needed to
|
|
30
|
+
avoid a collision. This default applies even when the repository already has
|
|
31
|
+
an ADR directory. Create a repository directory only when the user specifies
|
|
32
|
+
it as the destination.
|
|
33
|
+
|
|
34
|
+
When the user asks to revise a specific record, edit that file. When saving a
|
|
35
|
+
new record to a user-specified ADR directory, follow its filename conventions;
|
|
36
|
+
if it uses sequential numbers, take the highest existing number plus one.
|
|
37
|
+
Do not renumber records or overwrite an unrelated file.
|
|
38
|
+
|
|
39
|
+
Follow an established document format when one exists. Otherwise use
|
|
40
|
+
[templates/adr.md](templates/adr.md). Write in the user's language. A title
|
|
41
|
+
and one short paragraph are sufficient when they explain:
|
|
42
|
+
|
|
43
|
+
- the situation or constraint that required a choice;
|
|
44
|
+
- the chosen approach and its scope;
|
|
45
|
+
- the reason for choosing it, including the key accepted trade-off.
|
|
46
|
+
|
|
47
|
+
Add only what helps a future reader assess the decision:
|
|
48
|
+
|
|
49
|
+
- **Status:** distinguish a proposal, an accepted decision, or a retired or
|
|
50
|
+
replaced record when that distinction matters. Use `proposed` for an
|
|
51
|
+
unsettled choice; do not mark it accepted without evidence of agreement.
|
|
52
|
+
- **Considered options:** explain alternatives actually considered when their
|
|
53
|
+
rejection is worth preserving.
|
|
54
|
+
- **Consequences:** state material costs, limits, or downstream effects that
|
|
55
|
+
the short paragraph cannot explain clearly.
|
|
56
|
+
|
|
57
|
+
Keep one decision per record. Edit an existing record for corrections or
|
|
58
|
+
clarifications when requested. When a new decision replaces an accepted one,
|
|
59
|
+
write a new ADR and link to the earlier record to make the replacement clear.
|
|
60
|
+
Update the earlier record only when requested. Documenting a decision does
|
|
61
|
+
not implement it or establish that implementation is complete.
|
|
62
|
+
|
|
63
|
+
## Verify and deliver
|
|
64
|
+
|
|
65
|
+
Reread the record without the preceding conversation. Check that the choice,
|
|
66
|
+
scope, rationale, and decision state are understandable, claims match the
|
|
67
|
+
available evidence, and referenced files or records exist.
|
|
68
|
+
|
|
69
|
+
Report the file path, the recorded decision, and any open questions or
|
|
70
|
+
proposal status.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Write Glossary
|
|
2
|
+
|
|
3
|
+
Create or update a project's vocabulary with short definitions, canonical
|
|
4
|
+
terms, and names to avoid. Respects existing document formats.
|
|
5
|
+
|
|
6
|
+
New glossaries default to `/tmp/write-glossary-<safe-project-slug>.md`. A
|
|
7
|
+
supplied destination takes precedence, and requests to revise a specific
|
|
8
|
+
glossary edit that file.
|
|
9
|
+
|
|
10
|
+
## Credits
|
|
11
|
+
|
|
12
|
+
Shout-out to [Matt Pocock](https://github.com/mattpocock) for the glossary format
|
|
13
|
+
in [domain-modeling](https://github.com/mattpocock/skills/blob/main/skills/engineering/domain-modeling/GLOSSARY-FORMAT.md).
|
|
14
|
+
This skill adapts that format for standalone glossary writing.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: write-glossary
|
|
3
|
+
description: Create or update a project's GLOSSARY.md with precise definitions and canonical terminology. Use when the user asks to write a glossary, document project vocabulary, or revise existing definitions.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Write Glossary
|
|
8
|
+
|
|
9
|
+
Write a glossary that gives the project a shared vocabulary. Capture the
|
|
10
|
+
meaning of terms; keep implementation choices and decision rationale in
|
|
11
|
+
their own documents.
|
|
12
|
+
|
|
13
|
+
## Gather context
|
|
14
|
+
|
|
15
|
+
Read the relevant discussion, documentation, and existing glossary. Inspect
|
|
16
|
+
code when it helps establish how a term is currently used. Distinguish current
|
|
17
|
+
usage from an intended definition; surface material contradictions instead of
|
|
18
|
+
silently treating either as authoritative.
|
|
19
|
+
|
|
20
|
+
Choose a canonical term for each concept. If a word names several concepts,
|
|
21
|
+
separate their definitions and make their scope clear. Ask only when the
|
|
22
|
+
available context cannot resolve a distinction that changes the meaning.
|
|
23
|
+
Do not invent agreement or turn unresolved terminology into a settled entry.
|
|
24
|
+
|
|
25
|
+
## Write
|
|
26
|
+
|
|
27
|
+
Save a new glossary to the path the user supplies; otherwise use
|
|
28
|
+
`/tmp/write-glossary-<safe-project-slug>.md`, appending a timestamp when needed
|
|
29
|
+
to avoid a collision. This default applies even when the repository already
|
|
30
|
+
has a glossary. When the user asks to revise a specific glossary, edit that
|
|
31
|
+
file. Create a repository directory only when the user specifies it as the
|
|
32
|
+
destination. Write once there is a resolved term to record. A single glossary
|
|
33
|
+
can group terms by area and qualify names whose meaning varies by area.
|
|
34
|
+
|
|
35
|
+
Follow an established document format when one exists. Otherwise use
|
|
36
|
+
[templates/glossary.md](templates/glossary.md). Write in the user's language
|
|
37
|
+
and preserve canonical names used by the project.
|
|
38
|
+
|
|
39
|
+
- Keep each definition to one or two sentences explaining the concept and
|
|
40
|
+
the boundary that distinguishes it from nearby concepts.
|
|
41
|
+
- Include vocabulary with a specific meaning in this project. Omit generic
|
|
42
|
+
programming definitions unless the project gives them a distinct meaning.
|
|
43
|
+
- List competing names under `_Avoid_` when they refer to the same concept or
|
|
44
|
+
would mislead readers. Omit the line when there are none.
|
|
45
|
+
- Group entries only when it helps readers find or distinguish terms.
|
|
46
|
+
- Keep schemas, algorithms, storage choices, and decision histories out of
|
|
47
|
+
glossary entries. Include conceptual relationships only when they clarify
|
|
48
|
+
the definition.
|
|
49
|
+
|
|
50
|
+
Update the relevant entries without rewriting unrelated content. This skill
|
|
51
|
+
produces the glossary; it does not rename code or create decision records.
|
|
52
|
+
|
|
53
|
+
## Verify and deliver
|
|
54
|
+
|
|
55
|
+
Reread the definitions without the preceding conversation. Check that each
|
|
56
|
+
term has a clear meaning within its stated scope, nearby concepts remain
|
|
57
|
+
distinct, and no entry presents an unresolved assumption as fact.
|
|
58
|
+
|
|
59
|
+
Report the file path, the vocabulary added or changed, and any unresolved
|
|
60
|
+
definitions left out.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# <Project or area name>
|
|
2
|
+
|
|
3
|
+
<One or two sentences describing the scope of this vocabulary.>
|
|
4
|
+
|
|
5
|
+
## Language
|
|
6
|
+
|
|
7
|
+
**<Canonical term>**:
|
|
8
|
+
<One or two sentences defining the concept and its distinguishing boundary.>
|
|
9
|
+
_Avoid_: <Competing or misleading names; omit this line when none apply.>
|