@arjunkhera/atlas 0.3.22 → 0.3.25

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.
@@ -8,7 +8,7 @@ Rules:
8
8
 
9
9
  1. List the states a thing moves through.
10
10
  2. Say what moves it from each state to the next.
11
- 3. Draw it as a state figure.
11
+ 3. Draw it as a state figure. The check fails the part with no figure.
12
12
 
13
13
  Example, in a file of its own:
14
14
 
@@ -18,6 +18,22 @@ part: states
18
18
  ---
19
19
  # States
20
20
 
21
+ ```woodcut wc-state-machine
22
+ {
23
+ "label": "A test run",
24
+ "viewBox": [440, 90],
25
+ "states": [
26
+ { "id": "waiting", "x": 10, "y": 30, "w": 100, "h": 32, "label": "Waiting" },
27
+ { "id": "running", "x": 170, "y": 30, "w": 100, "h": 32, "label": "Running" },
28
+ { "id": "red", "x": 330, "y": 30, "w": 100, "h": 32, "label": "Red", "terminal": true }
29
+ ],
30
+ "transitions": [
31
+ { "id": "start", "path": "M 110 46 L 168 46", "tip": [168, 46], "tipDir": [1, 0], "label": "tests start", "labelAt": [139, 22] },
32
+ { "id": "fail", "path": "M 270 46 L 328 46", "tip": [328, 46], "tipDir": [1, 0], "label": "a test fails", "labelAt": [299, 22] }
33
+ ]
34
+ }
35
+ ```
36
+
21
37
  | From | Event | To |
22
38
  |---|---|---|
23
39
  | Waiting | The tests start | Running |
@@ -6,9 +6,18 @@ Needs: Decide: optional, Flow: needed, Contract: optional, Initiative: none.
6
6
 
7
7
  Rules:
8
8
 
9
- 1. Write one walkthrough for each story, step by step.
10
- 2. Each step has a title and one or two sentences.
11
- 3. Give each story a code, such as `US-1`, and put the code in the Key.
9
+ 1. Write each story under its own heading, with a code, such as `US-1`.
10
+ Put the code in the Key.
11
+ 2. Give each story a walkthrough figure. The reader steps through it and
12
+ sees what moves at each step. Use a woodcut figure with a scenario. Give
13
+ each step a title and one or two sentences. A figure of your own also
14
+ counts. The check fails a story with no walkthrough figure.
15
+ 3. Give each story a worked example with real values: an `Input:` line, the
16
+ steps, and an `Output:` line. The check fails a story with no worked
17
+ example.
18
+ 4. Pick the figure by the question it answers: `wc-sequence` for "in what
19
+ order", `wc-swimlane` for "who does it", `wc-flowchart` for "which
20
+ way", `wc-state-machine` for "what state is it in".
12
21
 
13
22
  Example, in a file of its own:
14
23
 
@@ -20,7 +29,36 @@ part: stories
20
29
 
21
30
  ### US-1: a test goes red
22
31
 
23
- 1. The lead opens a pull request.
24
- 2. The gate runs the tests, and one goes red.
32
+ **Input:** pull request 88 changes `src/pay.mjs`. The test `pay rounds down` fails on it.
33
+
34
+ ```woodcut wc-sequence
35
+ {
36
+ "label": "US-1: a test goes red",
37
+ "viewBox": [460, 190],
38
+ "actors": [
39
+ { "id": "lead", "x": 70, "label": "Lead" },
40
+ { "id": "gate", "x": 230, "label": "Gate" },
41
+ { "id": "owner", "x": 390, "label": "Owner" }
42
+ ],
43
+ "messages": [
44
+ { "id": "open", "from": "lead", "to": "gate", "y": 70, "label": "open pull request 88" },
45
+ { "id": "red", "from": "gate", "to": "lead", "y": 110, "label": "1 test red", "kind": "return" },
46
+ { "id": "block", "from": "gate", "to": "owner", "y": 150, "label": "merge blocked" }
47
+ ],
48
+ "scenarios": [{
49
+ "name": "US-1",
50
+ "steps": [
51
+ { "title": "The lead opens a pull request", "body": "Pull request 88 changes src/pay.mjs.", "active": ["lead", "open"] },
52
+ { "title": "The gate runs the tests", "body": "The test pay rounds down fails.", "active": ["gate", "red"] },
53
+ { "title": "The owner sees the block", "body": "The merge button stays grey and names the failing check.", "active": ["owner", "block"] }
54
+ ]
55
+ }]
56
+ }
57
+ ```
58
+
59
+ 1. The lead opens pull request 88.
60
+ 2. The gate runs the tests, and `pay rounds down` goes red.
25
61
  3. The merge button stays blocked, and the owner sees the failing check.
62
+
63
+ **Output:** the merge button is grey. The check list shows `pay rounds down: failed`.
26
64
  ````
@@ -7,7 +7,8 @@ Needs: Decide: needed, Flow: needed, Contract: needed, Initiative: needed.
7
7
  Rules:
8
8
 
9
9
  1. Lead with the answer: what changes, for whom, and why now.
10
- 2. Keep it to two short paragraphs and one picture.
10
+ 2. Keep it to two short paragraphs and one picture. The check fails a
11
+ Summary with no figure.
11
12
  3. A reader who stops here knows the whole design.
12
13
 
13
14
  Example, in a file of its own:
@@ -12,6 +12,13 @@
12
12
  # none the kind does not use it
13
13
  # shared needed when design.yaml says `shared: true`, optional when not
14
14
  #
15
+ # A part may say what picture it needs (owner, 21 October 2026: "any user is
16
+ # a visual person, they need to see things flowing to make sense of it"):
17
+ # picture: one the part holds at least one figure that draws
18
+ # picture: each-story each story holds a walkthrough figure and a worked
19
+ # example, with an Input line and an Output line
20
+ # The check reads it whenever the part is in the folder.
21
+ #
15
22
  # A design keeps no state. The tracker parts at the end are read from the
16
23
  # tracker at build time. No part file may hold them.
17
24
 
@@ -50,6 +57,7 @@ parts:
50
57
  name: Summary
51
58
  group: start
52
59
  holds: The answer in a few lines, and one picture.
60
+ picture: one
53
61
  decide: needed
54
62
  flow: needed
55
63
  contract: needed
@@ -75,6 +83,7 @@ parts:
75
83
  name: Problem today
76
84
  group: decide
77
85
  holds: What happens today, with a real example.
86
+ picture: one
78
87
  decide: needed
79
88
  flow: optional
80
89
  contract: optional
@@ -91,6 +100,7 @@ parts:
91
100
  name: Proposal
92
101
  group: decide
93
102
  holds: The option we pick, and how it works.
103
+ picture: one
94
104
  decide: needed
95
105
  flow: none
96
106
  contract: none
@@ -132,6 +142,7 @@ parts:
132
142
  name: Stories
133
143
  group: flow
134
144
  holds: One walkthrough for each story, step by step.
145
+ picture: each-story
135
146
  decide: optional
136
147
  flow: needed
137
148
  contract: optional
@@ -156,6 +167,7 @@ parts:
156
167
  name: States
157
168
  group: flow
158
169
  holds: The states a thing moves through, and what moves it.
170
+ picture: one
159
171
  decide: none
160
172
  flow: optional
161
173
  contract: none